konokenj.cdk-api-mcp-server 0.43.0__py3-none-any.whl → 0.44.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of konokenj.cdk-api-mcp-server might be problematic. Click here for more details.

Files changed (27) hide show
  1. cdk_api_mcp_server/__about__.py +1 -1
  2. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-alpha/README.md +1 -1
  3. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/README.md +8 -0
  4. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api.ts +4 -0
  5. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/README.md +34 -0
  6. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.ecs-exec-batch-job.ts +148 -0
  7. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/README.md +1 -0
  8. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-docker-server.ts +44 -0
  9. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts +22 -16
  10. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/README.md +4 -0
  11. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md +2 -0
  12. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/README.md +3 -3
  13. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-bun-lock.ts +50 -0
  14. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md +20 -0
  15. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-endpoint.ts +36 -0
  16. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.notifications-scoped-permissions.ts +71 -0
  17. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-parallel.ts +82 -0
  18. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-redrive.ts +130 -0
  19. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-with-catch.ts +1 -0
  20. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/README.md +27 -0
  21. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-browser-type.ts +35 -0
  22. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md +2 -2
  23. {konokenj_cdk_api_mcp_server-0.43.0.dist-info → konokenj_cdk_api_mcp_server-0.44.0.dist-info}/METADATA +2 -2
  24. {konokenj_cdk_api_mcp_server-0.43.0.dist-info → konokenj_cdk_api_mcp_server-0.44.0.dist-info}/RECORD +27 -19
  25. {konokenj_cdk_api_mcp_server-0.43.0.dist-info → konokenj_cdk_api_mcp_server-0.44.0.dist-info}/WHEEL +0 -0
  26. {konokenj_cdk_api_mcp_server-0.43.0.dist-info → konokenj_cdk_api_mcp_server-0.44.0.dist-info}/entry_points.txt +0 -0
  27. {konokenj_cdk_api_mcp_server-0.43.0.dist-info → konokenj_cdk_api_mcp_server-0.44.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2025-present Kenji Kono <konoken@amazon.co.jp>
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "0.43.0"
4
+ __version__ = "0.44.0"
@@ -150,7 +150,7 @@ new iot.AccountAuditConfiguration(this, 'AuditConfiguration', {
150
150
  checkConfiguration: {
151
151
  deviceCertificateAgeCheck: true,
152
152
  // The default value is 365 days
153
- // Valid values range from 30 days (minimum) to 3652 days (10 years, maximum)
153
+ // Valid values range from 30 days (minimum) to 3650 days (10 years, maximum)
154
154
  deviceCertificateAgeCheckDuration: Duration.days(365),
155
155
  },
156
156
  });
@@ -524,6 +524,14 @@ const arn = api.arnForExecuteApiV2('$connect', 'dev');
524
524
 
525
525
  For a detailed explanation of this function, including usage and examples, please refer to the [Generating ARN for Execute API](#generating-arn-for-execute-api) section under HTTP API.
526
526
 
527
+ To disable schema validation, set `disableSchemaValidation` to true.
528
+
529
+ ```ts
530
+ new apigwv2.WebSocketApi(this, 'api', {
531
+ disableSchemaValidation: true,
532
+ });
533
+ ```
534
+
527
535
  You can configure IP address type for the API endpoint using `ipAddressType` property.
528
536
  Valid values are `IPV4` (default) and `DUAL_STACK`.
529
537
 
@@ -8,6 +8,10 @@ const stack = new cdk.Stack(app, 'aws-cdk-aws-apigatewayv2');
8
8
 
9
9
  new apigw.WebSocketApi(stack, 'WebSocketApi');
10
10
 
11
+ new apigw.WebSocketApi(stack, 'WebSocketApiWithProps', {
12
+ disableSchemaValidation: true,
13
+ });
14
+
11
15
  new IntegTest(app, 'web-socket-api', {
12
16
  testCases: [stack],
13
17
  });
@@ -532,6 +532,40 @@ const jobDefn = new batch.EcsJobDefinition(this, 'JobDefn', {
532
532
  });
533
533
  ```
534
534
 
535
+ ### Enable Execute Command (ECS Exec)
536
+
537
+ You can enable [ECS Exec](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html) for interactive debugging and troubleshooting by setting `enableExecuteCommand` to `true`.
538
+ When enabled, you'll be able to execute commands interactively in running containers.
539
+
540
+ ```ts
541
+ const jobDefn = new batch.EcsJobDefinition(this, 'JobDefn', {
542
+ container: new batch.EcsEc2ContainerDefinition(this, 'Ec2Container', {
543
+ image: ecs.ContainerImage.fromRegistry('public.ecr.aws/amazonlinux/amazonlinux:latest'),
544
+ memory: cdk.Size.mebibytes(2048),
545
+ cpu: 256,
546
+ enableExecuteCommand: true, // Enable ECS Exec
547
+ }),
548
+ });
549
+ ```
550
+
551
+ The same functionality is available for Fargate containers:
552
+
553
+ ```ts
554
+ const jobDefn = new batch.EcsJobDefinition(this, 'JobDefn', {
555
+ container: new batch.EcsFargateContainerDefinition(this, 'FargateContainer', {
556
+ image: ecs.ContainerImage.fromRegistry('public.ecr.aws/amazonlinux/amazonlinux:latest'),
557
+ memory: cdk.Size.mebibytes(2048),
558
+ cpu: 256,
559
+ enableExecuteCommand: true, // Enable ECS Exec for Fargate
560
+ }),
561
+ });
562
+ ```
563
+
564
+ When `enableExecuteCommand` is set to `true`:
565
+
566
+ - If no `jobRole` is provided, a new IAM role will be automatically created with the required SSM permissions
567
+ - If a `jobRole` is already provided, the necessary SSM permissions will be added to the existing role
568
+
535
569
  ### Secrets
536
570
 
537
571
  You can expose SecretsManager Secret ARNs or SSM Parameters to your container as environment variables.
@@ -0,0 +1,148 @@
1
+ import * as batch from 'aws-cdk-lib/aws-batch';
2
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
3
+ import * as ecs from 'aws-cdk-lib/aws-ecs';
4
+ import * as cdk from 'aws-cdk-lib';
5
+ import { IntegTest, ExpectedResult } from '@aws-cdk/integ-tests-alpha';
6
+
7
+ class EcsExecBatchStack extends cdk.Stack {
8
+ public readonly ec2ComputeEnvironment: batch.ManagedEc2EcsComputeEnvironment;
9
+ public readonly fargateComputeEnvironment: batch.FargateComputeEnvironment;
10
+ public readonly ec2JobQueue: batch.JobQueue;
11
+ public readonly fargateJobQueue: batch.JobQueue;
12
+ public readonly ec2JobDefinition: batch.EcsJobDefinition;
13
+ public readonly fargateJobDefinition: batch.EcsJobDefinition;
14
+
15
+ constructor(scope: cdk.App, id: string, props: cdk.StackProps = {}) {
16
+ super(scope, id, props);
17
+
18
+ const vpc = new ec2.Vpc(this, 'Vpc', {
19
+ maxAzs: 2,
20
+ });
21
+
22
+ this.ec2ComputeEnvironment = new batch.ManagedEc2EcsComputeEnvironment(this, 'ComputeEnv', {
23
+ vpc,
24
+ instanceTypes: [ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.LARGE)],
25
+ minvCpus: 0,
26
+ maxvCpus: 256,
27
+ });
28
+
29
+ this.ec2JobQueue = new batch.JobQueue(this, 'JobQueue', {
30
+ computeEnvironments: [
31
+ {
32
+ order: 1,
33
+ computeEnvironment: this.ec2ComputeEnvironment,
34
+ },
35
+ ],
36
+ });
37
+
38
+ this.ec2JobDefinition = new batch.EcsJobDefinition(this, 'EcsExecEc2JobDefinition', {
39
+ jobDefinitionName: 'EcsExecEc2TestJob',
40
+ container: new batch.EcsEc2ContainerDefinition(this, 'Ec2Container', {
41
+ image: ecs.ContainerImage.fromRegistry('public.ecr.aws/amazonlinux/amazonlinux:latest'),
42
+ cpu: 2,
43
+ memory: cdk.Size.mebibytes(2048),
44
+ enableExecuteCommand: true,
45
+ command: ['sh', '-c', 'echo "Job started with ECS Exec enabled"; sleep 300'], // Keep container running
46
+ }),
47
+ });
48
+
49
+ this.fargateJobDefinition = new batch.EcsJobDefinition(this, 'EcsExecFargateJobDefinition', {
50
+ container: new batch.EcsFargateContainerDefinition(this, 'FargateContainer', {
51
+ image: ecs.ContainerImage.fromRegistry('public.ecr.aws/amazonlinux/amazonlinux:latest'),
52
+ cpu: 0.25,
53
+ memory: cdk.Size.gibibytes(1),
54
+ enableExecuteCommand: true, // Enable ECS Exec
55
+ command: ['sh', '-c', 'echo "Fargate Job started with ECS Exec enabled"; sleep 300'], // Keep container running
56
+ }),
57
+ });
58
+
59
+ // Create Fargate compute environment
60
+ this.fargateComputeEnvironment = new batch.FargateComputeEnvironment(this, 'FargateComputeEnv', {
61
+ vpc,
62
+ });
63
+
64
+ this.fargateJobQueue = new batch.JobQueue(this, 'FargateJobQueue', {
65
+ computeEnvironments: [
66
+ {
67
+ order: 1,
68
+ computeEnvironment: this.fargateComputeEnvironment,
69
+ },
70
+ ],
71
+ });
72
+ }
73
+ }
74
+
75
+ const app = new cdk.App();
76
+ const stack = new EcsExecBatchStack(app, 'EcsExecBatchStack');
77
+
78
+ const integ = new IntegTest(app, 'EcsExecBatchTest', {
79
+ testCases: [stack],
80
+ });
81
+
82
+ // Helper function to test ECS Exec for a job
83
+ function testEcsExecForJob(
84
+ jobName: string,
85
+ jobQueue: batch.JobQueue,
86
+ jobDefinition: batch.EcsJobDefinition,
87
+ computeEnvironment: batch.IManagedComputeEnvironment,
88
+ ) {
89
+ // Get cluster ARN from compute environment
90
+ const describeComputeEnv = integ.assertions.awsApiCall('Batch', 'describeComputeEnvironments', {
91
+ computeEnvironments: [computeEnvironment.computeEnvironmentArn],
92
+ });
93
+
94
+ const clusterArn = describeComputeEnv.getAttString('computeEnvironments.0.ecsClusterArn');
95
+
96
+ // Submit the job
97
+ const submitJobResult = describeComputeEnv.next(
98
+ integ.assertions.awsApiCall('Batch', 'submitJob', {
99
+ jobName,
100
+ jobQueue: jobQueue.jobQueueArn,
101
+ jobDefinition: jobDefinition.jobDefinitionArn,
102
+ }),
103
+ ).waitForAssertions();
104
+
105
+ // Get the job ID from the submit response
106
+ const jobId = submitJobResult.getAttString('jobId');
107
+
108
+ // Wait for job to reach RUNNING state and have a task ARN
109
+ const waitForJobRunning = integ.assertions.awsApiCall('Batch', 'describeJobs', {
110
+ jobs: [jobId],
111
+ }).assertAtPath('jobs.0.status', ExpectedResult.stringLikeRegexp('RUNNING'))
112
+ .waitForAssertions({
113
+ totalTimeout: cdk.Duration.minutes(10),
114
+ interval: cdk.Duration.seconds(30),
115
+ });
116
+
117
+ const taskArn = waitForJobRunning.getAttString('jobs.0.container.taskArn');
118
+
119
+ // Execute ECS command to verify ECS Exec is enabled
120
+ waitForJobRunning.next(
121
+ integ.assertions.awsApiCall('ECS', 'executeCommand', {
122
+ cluster: clusterArn,
123
+ task: taskArn,
124
+ container: 'default',
125
+ interactive: true,
126
+ command: '/bin/bash',
127
+ }).waitForAssertions({
128
+ totalTimeout: cdk.Duration.minutes(10),
129
+ interval: cdk.Duration.seconds(30),
130
+ }),
131
+ );
132
+ }
133
+
134
+ // Test EC2 job
135
+ testEcsExecForJob(
136
+ 'test-ecs-exec-ec2-job',
137
+ stack.ec2JobQueue,
138
+ stack.ec2JobDefinition,
139
+ stack.ec2ComputeEnvironment,
140
+ );
141
+
142
+ // Test Fargate job
143
+ testEcsExecForJob(
144
+ 'test-ecs-exec-fargate-job',
145
+ stack.fargateJobQueue,
146
+ stack.fargateJobDefinition,
147
+ stack.fargateComputeEnvironment,
148
+ );
@@ -376,6 +376,7 @@ can use the `environment` property to customize the build environment:
376
376
  details on how to define build images.
377
377
  * `certificate` defines the location of a PEM encoded certificate to import.
378
378
  * `computeType` defines the instance type used for the build.
379
+ * `dockerServer` defines the docker server used for the build.
379
380
  * `privileged` can be set to `true` to allow privileged access.
380
381
  * `environmentVariables` can be set at this level (and also at the project
381
382
  level).
@@ -0,0 +1,44 @@
1
+ import { App, Stack } from 'aws-cdk-lib';
2
+ import { Project, BuildSpec, DockerServerComputeType, Source, ComputeType } from 'aws-cdk-lib/aws-codebuild';
3
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
4
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
5
+
6
+ const app = new App();
7
+ const stack = new Stack(app, 'codebuild-project-docker-server');
8
+
9
+ const vpc = new ec2.Vpc(stack, 'Vpc', { restrictDefaultSecurityGroup: false });
10
+ const sg = new ec2.SecurityGroup(stack, 'SecurityGroup', { vpc });
11
+
12
+ const project = new Project(stack, 'MyProject', {
13
+ source: Source.gitHub({
14
+ owner: 'dockersamples',
15
+ repo: 'helloworld-demo-python',
16
+ }),
17
+ buildSpec: BuildSpec.fromObject({
18
+ version: '0.2',
19
+ phases: {
20
+ build: {
21
+ commands: [
22
+ 'cd sample',
23
+ 'docker buildx build .',
24
+ ],
25
+ },
26
+ },
27
+ }),
28
+ environment: {
29
+ computeType: ComputeType.SMALL,
30
+ dockerServer: {
31
+ computeType: DockerServerComputeType.SMALL,
32
+ securityGroups: [sg],
33
+ },
34
+ },
35
+ });
36
+
37
+ const integ = new IntegTest(app, 'codebuild-project-docker-server-integ', {
38
+ testCases: [stack],
39
+ });
40
+
41
+ // Execute the `startBuild` API to confirm that the build can be done correctly.
42
+ integ.assertions.awsApiCall('CodeBuild', 'startBuild', {
43
+ projectName: project.projectName,
44
+ }).waitForAssertions();
@@ -2,11 +2,13 @@ import * as path from 'path';
2
2
  import * as codepipeline from 'aws-cdk-lib/aws-codepipeline';
3
3
  import * as elasticbeanstalk from 'aws-cdk-lib/aws-elasticbeanstalk';
4
4
  import * as iam from 'aws-cdk-lib/aws-iam';
5
+ import { IManagedPolicy, ManagedPolicyReference } from 'aws-cdk-lib/aws-iam';
5
6
  import * as s3 from 'aws-cdk-lib/aws-s3';
6
7
  import * as deploy from 'aws-cdk-lib/aws-s3-deployment';
7
- import { App, Fn, RemovalPolicy, Stack } from 'aws-cdk-lib';
8
+ import { App, Fn, RemovalPolicy, Stack, UnscopedValidationError } from 'aws-cdk-lib';
8
9
  import * as integ from '@aws-cdk/integ-tests-alpha';
9
10
  import * as cpactions from 'aws-cdk-lib/aws-codepipeline-actions';
11
+ import { Node } from 'constructs';
10
12
 
11
13
  /**
12
14
  * To validate that the deployment actually succeeds, perform the following actions:
@@ -43,16 +45,26 @@ const artifact = new deploy.BucketDeployment(stack, 'DeployApp', {
43
45
  extract: false,
44
46
  });
45
47
 
48
+ function makePolicy(arn: string): IManagedPolicy {
49
+ return {
50
+ managedPolicyArn: arn,
51
+ get managedPolicyRef(): ManagedPolicyReference {
52
+ return {
53
+ policyArn: this.managedPolicyArn,
54
+ };
55
+ },
56
+ get node(): Node {
57
+ throw new UnscopedValidationError('The result of fromAwsManagedPolicyName can not be used in this API');
58
+ },
59
+ };
60
+ }
61
+
46
62
  const serviceRole = new iam.Role(stack, 'service-role', {
47
63
  roleName: 'codepipeline-elasticbeanstalk-action-test-serivce-role',
48
64
  assumedBy: new iam.ServicePrincipal('elasticbeanstalk.amazonaws.com'),
49
65
  managedPolicies: [
50
- {
51
- managedPolicyArn: 'arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkEnhancedHealth',
52
- },
53
- {
54
- managedPolicyArn: 'arn:aws:iam::aws:policy/AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy',
55
- },
66
+ makePolicy('arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkEnhancedHealth'),
67
+ makePolicy('arn:aws:iam::aws:policy/AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy'),
56
68
  ],
57
69
  });
58
70
 
@@ -60,15 +72,9 @@ const instanceProfileRole = new iam.Role(stack, 'instance-profile-role', {
60
72
  roleName: 'codepipeline-elasticbeanstalk-action-test-instance-profile-role',
61
73
  assumedBy: new iam.ServicePrincipal('ec2.amazonaws.com'),
62
74
  managedPolicies: [
63
- {
64
- managedPolicyArn: 'arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier',
65
- },
66
- {
67
- managedPolicyArn: 'arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker',
68
- },
69
- {
70
- managedPolicyArn: 'arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier',
71
- },
75
+ makePolicy('arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier'),
76
+ makePolicy('arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker'),
77
+ makePolicy('arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier'),
72
78
  ],
73
79
  });
74
80
 
@@ -163,6 +163,10 @@ This will instruct the toolkit to add the tarball as a file asset. During deploy
163
163
  from `local-image.tar`, push it to an Amazon ECR repository and wire the name of the repository as CloudFormation parameters
164
164
  to your stack.
165
165
 
166
+ Similar to `DockerImageAsset`, you can set the `CDK_DOCKER` environment variable to provide a custom Docker executable
167
+ command or path. This may be needed when building in environments where the standard docker cannot be executed or when
168
+ using alternative container runtimes like Finch.
169
+
166
170
  ## Publishing images to ECR repositories
167
171
 
168
172
  `DockerImageAsset` is designed for seamless build & consumption of image assets by CDK code deployed to multiple environments
@@ -1591,6 +1591,8 @@ it in the constructor. Then add the Capacity Provider to the cluster. Finally,
1591
1591
  you can refer to the Provider by its name in your service's or task's Capacity
1592
1592
  Provider strategy.
1593
1593
 
1594
+ > **Note**: Cross-stack capacity provider registration is not supported. The ECS cluster and its capacity providers must be created in the same stack to avoid circular dependency issues.
1595
+
1594
1596
  By default, Auto Scaling Group Capacity Providers will manage the scale-in and
1595
1597
  scale-out behavior of the auto scaling group based on the load your tasks put on
1596
1598
  the cluster, this is called [Managed Scaling](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling). If you'd
@@ -108,8 +108,8 @@ With the `@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion` disabled, the runt
108
108
 
109
109
  ## Lock file
110
110
 
111
- The `NodejsFunction` requires a dependencies lock file (`yarn.lock`, `pnpm-lock.yaml`, `bun.lockb` or
112
- `package-lock.json`). When bundling in a Docker container, the path containing this lock file is
111
+ The `NodejsFunction` requires a dependencies lock file (`yarn.lock`, `pnpm-lock.yaml`, `bun.lockb`,
112
+ `bun.lock` or `package-lock.json`). When bundling in a Docker container, the path containing this lock file is
113
113
  used as the source (`/asset-input`) for the volume mounted in the container.
114
114
 
115
115
  By default, the construct will try to automatically determine your project lock file.
@@ -201,7 +201,7 @@ new nodejs.NodejsFunction(this, 'my-handler', {
201
201
 
202
202
  The modules listed in `nodeModules` must be present in the `package.json`'s dependencies or
203
203
  installed. The same version will be used for installation. The lock file (`yarn.lock`,
204
- `pnpm-lock.yaml`, `bun.lockb` or `package-lock.json`) will be used along with the right installer (`yarn`,
204
+ `pnpm-lock.yaml`, `bun.lockb`, `bun.lock` or `package-lock.json`) will be used along with the right installer (`yarn`,
205
205
  `pnpm`, `bun` or `npm`).
206
206
 
207
207
  When working with `nodeModules` using native dependencies, you might want to force bundling in a
@@ -0,0 +1,50 @@
1
+ import * as path from 'path';
2
+ import { Runtime } from 'aws-cdk-lib/aws-lambda';
3
+ import * as cdk from 'aws-cdk-lib';
4
+ import { ExpectedResult, IntegTest } from '@aws-cdk/integ-tests-alpha';
5
+ import * as lambda from 'aws-cdk-lib/aws-lambda-nodejs';
6
+
7
+ const app = new cdk.App({
8
+ postCliContext: {
9
+ '@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
10
+ },
11
+ });
12
+
13
+ const stack = new cdk.Stack(app, 'TestStack');
14
+
15
+ const handler = new lambda.NodejsFunction(stack, 'Function', {
16
+ entry: path.join(__dirname, 'integ-handlers/bun_lock/dependencies-bun.ts'),
17
+ runtime: Runtime.NODEJS_22_X,
18
+ bundling: {
19
+ minify: true,
20
+ // Will be installed, not bundled
21
+ // (axios is a package with sub-dependencies,
22
+ // will be used to ensure bun bundling works as expected)
23
+ nodeModules: ['axios'],
24
+ forceDockerBundling: true,
25
+ },
26
+
27
+ // To (re-)generate this lockfile:
28
+ // 1. Ensure your local version of bun matches the version in packages/aws-cdk-lib/aws-lambda-nodejs/lib/Dockerfile
29
+ // 2. `cd` to `packages/@aws-cdk-testing/framework-integ/test/aws-lambda-nodejs/test/integ-handlers/bun`
30
+ // 3. Rename the `_package.json` file to `package.json`
31
+ // 4. Run `bun install`
32
+ depsLockFilePath: path.join(__dirname, 'integ-handlers/bun_lock/bun.lock'),
33
+ });
34
+
35
+ const integ = new IntegTest(app, 'BunTest', {
36
+ testCases: [stack],
37
+ stackUpdateWorkflow: false, // this will tell the runner to not check in assets.
38
+ });
39
+
40
+ const response = integ.assertions.invokeFunction({
41
+ functionName: handler.functionName,
42
+ });
43
+ response.expect(
44
+ ExpectedResult.objectLike({
45
+ // expect invoking without error
46
+ StatusCode: 200,
47
+ ExecutedVersion: '$LATEST',
48
+ Payload: 'null',
49
+ }),
50
+ );
@@ -1166,6 +1166,26 @@ const proxy = dbInstance.addProxy('proxy', {
1166
1166
  });
1167
1167
  ```
1168
1168
 
1169
+ ### Proxy Endpoint
1170
+ The following example add additional endpoint to RDS Proxy.
1171
+
1172
+ ```ts
1173
+ declare const vpc: ec2.Vpc;
1174
+ declare const secrets: secretsmanager.Secret[];
1175
+ declare const dbInstance: rds.DatabaseInstance;
1176
+
1177
+ const proxy = dbInstance.addProxy('Proxy', {
1178
+ secrets,
1179
+ vpc,
1180
+ });
1181
+
1182
+ // Add a reader endpoint
1183
+ proxy.addEndpoint('ProxyEndpoint', {
1184
+ vpc,
1185
+ targetRole: rds.ProxyEndpointTargetRole.READ_ONLY,
1186
+ });
1187
+ ```
1188
+
1169
1189
  ## Exporting Logs
1170
1190
 
1171
1191
  You can publish database logs to Amazon CloudWatch Logs. With CloudWatch Logs, you can perform real-time analysis of the log data,
@@ -0,0 +1,36 @@
1
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
+ import { App, RemovalPolicy, Stack } from 'aws-cdk-lib';
3
+ import * as integ from '@aws-cdk/integ-tests-alpha';
4
+ import * as rds from 'aws-cdk-lib/aws-rds';
5
+
6
+ const app = new App();
7
+ const stack = new Stack(app, 'cdk-rds-proxy-endpoint');
8
+
9
+ const vpc = new ec2.Vpc(stack, 'vpc', { maxAzs: 2, restrictDefaultSecurityGroup: false });
10
+
11
+ const dbInstance = new rds.DatabaseInstance(stack, 'dbInstance', {
12
+ engine: rds.DatabaseInstanceEngine.postgres({
13
+ version: rds.PostgresEngineVersion.VER_17_5,
14
+ }),
15
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.MEDIUM),
16
+ vpc,
17
+ removalPolicy: RemovalPolicy.DESTROY,
18
+ });
19
+
20
+ const dbProxy = new rds.DatabaseProxy(stack, 'dbProxy', {
21
+ secrets: [dbInstance.secret!],
22
+ proxyTarget: rds.ProxyTarget.fromInstance(dbInstance),
23
+ vpc,
24
+ });
25
+
26
+ const securityGroup = ec2.SecurityGroup.fromSecurityGroupId(stack, 'SecurityGroup', vpc.vpcDefaultSecurityGroup);
27
+
28
+ dbProxy.addEndpoint('dbProxyEndpoint', {
29
+ vpc,
30
+ targetRole: rds.ProxyEndpointTargetRole.READ_ONLY,
31
+ securityGroups: [securityGroup],
32
+ });
33
+
34
+ new integ.IntegTest(app, 'cdk-rds-proxy-endpoint-integ', {
35
+ testCases: [stack],
36
+ });
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env node
2
+ import * as cdk from 'aws-cdk-lib';
3
+ import * as integ from '@aws-cdk/integ-tests-alpha';
4
+ import * as s3 from 'aws-cdk-lib/aws-s3';
5
+ import * as sns from 'aws-cdk-lib/aws-sns';
6
+ import * as sqs from 'aws-cdk-lib/aws-sqs';
7
+ import * as s3n from 'aws-cdk-lib/aws-s3-notifications';
8
+ import { Match, Template } from 'aws-cdk-lib/assertions';
9
+
10
+ const app = new cdk.App();
11
+
12
+ const stack = new cdk.Stack(app, 'aws-cdk-s3-notifications-scoped-permissions');
13
+
14
+ // Create multiple buckets to test consolidated policy with scoped permissions
15
+ const bucket1 = new s3.Bucket(stack, 'Bucket1', {
16
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
17
+ });
18
+
19
+ const bucket2 = new s3.Bucket(stack, 'Bucket2', {
20
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
21
+ });
22
+
23
+ const topic = new sns.Topic(stack, 'Topic');
24
+ const queue = new sqs.Queue(stack, 'Queue', {
25
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
26
+ });
27
+
28
+ // Add notifications to multiple buckets with different event types - this should create scoped IAM permissions
29
+ bucket1.addEventNotification(s3.EventType.OBJECT_CREATED_PUT, new s3n.SnsDestination(topic));
30
+ bucket1.addEventNotification(s3.EventType.OBJECT_CREATED_POST, new s3n.SqsDestination(queue));
31
+ bucket2.addEventNotification(s3.EventType.OBJECT_REMOVED_DELETE, new s3n.SnsDestination(topic));
32
+ bucket2.addEventNotification(s3.EventType.OBJECT_REMOVED_DELETE_MARKER_CREATED, new s3n.SnsDestination(topic));
33
+
34
+ // Create integration test with snapshot comparison enabled
35
+ new integ.IntegTest(app, 'ScopedPermissionsTest', {
36
+ testCases: [stack],
37
+ diffAssets: true,
38
+ });
39
+
40
+ // Add assertions to verify IAM policies are scoped to specific bucket ARNs
41
+ const template = Template.fromStack(stack);
42
+
43
+ // Verify that IAM policies do not contain wildcard permissions
44
+ template.hasResourceProperties('AWS::IAM::Policy', {
45
+ PolicyDocument: {
46
+ Statement: Match.arrayWith([
47
+ Match.objectLike({
48
+ Effect: 'Allow',
49
+ Action: 's3:PutBucketNotification',
50
+ Resource: Match.not('*'), // Ensure no wildcard permissions
51
+ }),
52
+ ]),
53
+ },
54
+ });
55
+
56
+ // Verify that the IAM policy contains specific bucket ARNs
57
+ template.hasResourceProperties('AWS::IAM::Policy', {
58
+ PolicyDocument: {
59
+ Statement: Match.arrayWith([
60
+ Match.objectLike({
61
+ Effect: 'Allow',
62
+ Action: 's3:PutBucketNotification',
63
+ Resource: Match.arrayWith([
64
+ Match.objectLike({
65
+ 'Fn::GetAtt': Match.arrayWith([Match.stringLikeRegexp('Bucket[12]'), 'Arn']),
66
+ }),
67
+ ]),
68
+ }),
69
+ ]),
70
+ },
71
+ });
@@ -0,0 +1,82 @@
1
+ import * as s3 from 'aws-cdk-lib/aws-s3';
2
+ import * as cdk from 'aws-cdk-lib/core';
3
+ import * as integ from '@aws-cdk/integ-tests-alpha';
4
+ import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
5
+
6
+ const CSV_KEY = 'my-key.csv';
7
+
8
+ class DistributedMapParallelStack extends cdk.Stack {
9
+ readonly bucket: s3.Bucket;
10
+ readonly stateMachine: sfn.StateMachine;
11
+
12
+ constructor(scope: cdk.App, id: string) {
13
+ super(scope, id);
14
+
15
+ this.bucket = new s3.Bucket(this, 'Bucket', {
16
+ autoDeleteObjects: true,
17
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
18
+ });
19
+
20
+ const parallel = new sfn.Parallel(this, 'Parallel');
21
+
22
+ const distributedMap = new sfn.DistributedMap(this, 'DistributedMap', {
23
+ itemReader: new sfn.S3CsvItemReader({
24
+ bucket: this.bucket,
25
+ key: CSV_KEY,
26
+ csvHeaders: sfn.CsvHeaders.useFirstRow(),
27
+ }),
28
+ }).itemProcessor(new sfn.Pass(this, 'Pass'));
29
+
30
+ this.stateMachine = new sfn.StateMachine(this, 'StateMachine', {
31
+ definitionBody: sfn.ChainDefinitionBody.fromChainable(parallel.branch(distributedMap)),
32
+ });
33
+ }
34
+ }
35
+
36
+ function setupAssertions(testCaseStack: DistributedMapParallelStack, assertions: integ.IDeployAssert) {
37
+ const waitForStateMachineActive = assertions
38
+ .awsApiCall('StepFunctions', 'describeStateMachine', {
39
+ stateMachineArn: testCaseStack.stateMachine.stateMachineArn,
40
+ })
41
+ .expect(integ.ExpectedResult.objectLike({ status: 'ACTIVE' }))
42
+ .waitForAssertions({
43
+ interval: cdk.Duration.seconds(10),
44
+ totalTimeout: cdk.Duration.minutes(5),
45
+ });
46
+
47
+ // Upload the input to the DistributedMap
48
+ const uploadInput = assertions.awsApiCall('S3', 'putObject', {
49
+ Bucket: testCaseStack.bucket.bucketName,
50
+ Key: CSV_KEY,
51
+ Body: 'a,b,c\n1,2,3\n4,5,6',
52
+ });
53
+
54
+ // Start an execution
55
+ const startExecution = assertions.awsApiCall('StepFunctions', 'startExecution', {
56
+ stateMachineArn: testCaseStack.stateMachine.stateMachineArn,
57
+ });
58
+
59
+ const executionArn = startExecution.getAttString('executionArn');
60
+
61
+ const expectSucceededExecution = assertions
62
+ .awsApiCall('StepFunctions', 'describeExecution', { executionArn: executionArn })
63
+ .expect(integ.ExpectedResult.objectLike({ status: 'SUCCEEDED' }))
64
+ .waitForAssertions({
65
+ interval: cdk.Duration.seconds(10),
66
+ totalTimeout: cdk.Duration.minutes(1),
67
+ });
68
+
69
+ waitForStateMachineActive
70
+ .next(uploadInput)
71
+ .next(startExecution)
72
+ .next(expectSucceededExecution);
73
+ }
74
+
75
+ const app = new cdk.App();
76
+ const parallelStack = new DistributedMapParallelStack(app, 'DistributedMapParallelStack');
77
+
78
+ const testCase = new integ.IntegTest(app, 'DistributedMapParallel', {
79
+ testCases: [parallelStack],
80
+ });
81
+
82
+ setupAssertions(parallelStack, testCase.assertions);
@@ -0,0 +1,130 @@
1
+ import * as s3 from 'aws-cdk-lib/aws-s3';
2
+ import * as cdk from 'aws-cdk-lib/core';
3
+ import * as integ from '@aws-cdk/integ-tests-alpha';
4
+ import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
5
+ import * as aws_stepfunction_tasks from 'aws-cdk-lib/aws-stepfunctions-tasks';
6
+
7
+ const CSV_KEY = 'my-key.csv';
8
+ const SUCCESS_MARKER_KEY = 'pass-flag.txt';
9
+
10
+ interface DistributedMapRedriveStackProps extends cdk.StackProps {
11
+ readonly mapRunLabel?: string;
12
+ }
13
+
14
+ class DistributedMapRedriveStack extends cdk.Stack {
15
+ readonly bucket: s3.Bucket;
16
+ readonly stateMachine: sfn.StateMachine;
17
+
18
+ constructor(scope: cdk.App, id: string, props?: DistributedMapRedriveStackProps) {
19
+ super(scope, id, props);
20
+
21
+ this.bucket = new s3.Bucket(this, 'Bucket', {
22
+ autoDeleteObjects: true,
23
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
24
+ });
25
+
26
+ const distributedMap = new sfn.DistributedMap(this, 'DistributedMap', {
27
+ label: props?.mapRunLabel,
28
+ itemReader: new sfn.S3CsvItemReader({
29
+ bucket: this.bucket,
30
+ key: CSV_KEY,
31
+ csvHeaders: sfn.CsvHeaders.useFirstRow(),
32
+ }),
33
+ });
34
+
35
+ // Existence of the success marker object determines if the distributed map succeeds or fails
36
+ const getSuccessMarker = new aws_stepfunction_tasks.CallAwsService(this, 'GetData', {
37
+ action: 'getObject',
38
+ iamResources: [this.bucket.arnForObjects('*')],
39
+ parameters: {
40
+ Bucket: this.bucket.bucketName,
41
+ Key: SUCCESS_MARKER_KEY,
42
+ },
43
+ service: 's3',
44
+ });
45
+
46
+ distributedMap.itemProcessor(getSuccessMarker);
47
+
48
+ this.stateMachine = new sfn.StateMachine(this, 'StateMachine', {
49
+ definitionBody: sfn.ChainDefinitionBody.fromChainable(distributedMap),
50
+ });
51
+ }
52
+ }
53
+
54
+ function setupAssertions(testCaseStack: DistributedMapRedriveStack, assertions: integ.IDeployAssert) {
55
+ const waitForStateMachineActive = assertions
56
+ .awsApiCall('StepFunctions', 'describeStateMachine', {
57
+ stateMachineArn: testCaseStack.stateMachine.stateMachineArn,
58
+ })
59
+ .expect(integ.ExpectedResult.objectLike({ status: 'ACTIVE' }))
60
+ .waitForAssertions({
61
+ interval: cdk.Duration.seconds(10),
62
+ totalTimeout: cdk.Duration.minutes(5),
63
+ });
64
+
65
+ // Upload the input to the DistributedMap
66
+ const uploadInput = assertions.awsApiCall('S3', 'putObject', {
67
+ Bucket: testCaseStack.bucket.bucketName,
68
+ Key: CSV_KEY,
69
+ Body: 'a,b,c\n1,2,3\n4,5,6',
70
+ });
71
+
72
+ // Start an execution
73
+ const startExecution = assertions.awsApiCall('StepFunctions', 'startExecution', {
74
+ stateMachineArn: testCaseStack.stateMachine.stateMachineArn,
75
+ });
76
+
77
+ const executionArn = startExecution.getAttString('executionArn');
78
+
79
+ // describe the results of the execution
80
+ const expectFailedExecution = assertions
81
+ .awsApiCall('StepFunctions', 'describeExecution', {
82
+ executionArn: executionArn,
83
+ })
84
+ .expect(integ.ExpectedResult.objectLike({ status: 'FAILED' }))
85
+ .waitForAssertions({
86
+ interval: cdk.Duration.seconds(10),
87
+ totalTimeout: cdk.Duration.minutes(1),
88
+ });
89
+
90
+ // Upload the success marker, so that the next execution succeeds
91
+ const uploadSucceedMarker = assertions.awsApiCall('S3', 'putObject', {
92
+ Bucket: testCaseStack.bucket.bucketName,
93
+ Key: SUCCESS_MARKER_KEY,
94
+ Body: '',
95
+ });
96
+
97
+ const redriveExecution = assertions.awsApiCall('StepFunctions', 'redriveExecution', {
98
+ executionArn: executionArn,
99
+ });
100
+
101
+ const expectRedrivenExecution = assertions
102
+ .awsApiCall('StepFunctions', 'describeExecution', { executionArn: executionArn })
103
+ .expect(integ.ExpectedResult.objectLike({ status: 'SUCCEEDED' }))
104
+ .waitForAssertions({
105
+ interval: cdk.Duration.seconds(10),
106
+ totalTimeout: cdk.Duration.minutes(1),
107
+ });
108
+
109
+ waitForStateMachineActive
110
+ .next(uploadInput)
111
+ .next(startExecution)
112
+ .next(expectFailedExecution)
113
+ .next(uploadSucceedMarker)
114
+ .next(redriveExecution)
115
+ .next(expectRedrivenExecution);
116
+ }
117
+
118
+ const app = new cdk.App();
119
+
120
+ const unlabeledDistributedMapStack = new DistributedMapRedriveStack(app, 'UnlabeledDistributedMapRedrive');
121
+ const labeledDistributedMapStack = new DistributedMapRedriveStack(app, 'LabeledDistributedMapRedrive', {
122
+ mapRunLabel: 'myLabel',
123
+ });
124
+
125
+ const testCase = new integ.IntegTest(app, 'DistributedMap', {
126
+ testCases: [unlabeledDistributedMapStack, labeledDistributedMapStack],
127
+ });
128
+
129
+ setupAssertions(labeledDistributedMapStack, testCase.assertions);
130
+ setupAssertions(unlabeledDistributedMapStack, testCase.assertions);
@@ -13,6 +13,7 @@ class DistributedMapStack extends cdk.Stack {
13
13
  super(scope, id, props);
14
14
 
15
15
  this.bucket = new s3.Bucket(this, 'Bucket', {
16
+ autoDeleteObjects: true,
16
17
  removalPolicy: cdk.RemovalPolicy.DESTROY,
17
18
  });
18
19
 
@@ -165,6 +165,33 @@ const canary = new synthetics.Canary(this, 'MyCanary', {
165
165
  });
166
166
  ```
167
167
 
168
+ ### Browser Type Configuration
169
+
170
+ You can configure which browsers your canary uses for testing by specifying the `browserConfigs` property. This allows you to test your application across different browsers to ensure compatibility.
171
+
172
+ Available browser types:
173
+ - `BrowserType.CHROME` - Google Chrome browser
174
+ - `BrowserType.FIREFOX` - Mozilla Firefox browser
175
+
176
+ You can specify up to 2 browser configurations. When multiple browsers are configured, the canary will run tests on each browser sequentially.
177
+
178
+ ```ts
179
+ const canary = new synthetics.Canary(this, 'MyCanary', {
180
+ schedule: synthetics.Schedule.rate(Duration.minutes(5)),
181
+ test: synthetics.Test.custom({
182
+ code: synthetics.Code.fromAsset(path.join(__dirname, 'canary')),
183
+ handler: 'index.handler',
184
+ }),
185
+ runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_9_1,
186
+ browserConfigs: [
187
+ synthetics.BrowserType.CHROME,
188
+ synthetics.BrowserType.FIREFOX,
189
+ ],
190
+ });
191
+ ```
192
+
193
+ > **Note:** Firefox support is available for Node.js runtimes (Puppeteer and Playwright) but not for Python Selenium runtimes. When using Firefox, ensure your runtime version supports it.
194
+
168
195
  ### Deleting underlying resources on canary deletion
169
196
 
170
197
  When you delete a lambda, the following underlying resources are isolated in your AWS account:
@@ -0,0 +1,35 @@
1
+ import * as path from 'node:path';
2
+ import { App, Duration, Size, Stack, StackProps } from 'aws-cdk-lib/core';
3
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
4
+ import { Construct } from 'constructs';
5
+ import * as synthetics from 'aws-cdk-lib/aws-synthetics';
6
+
7
+ class TestStack extends Stack {
8
+ public canary: synthetics.Canary;
9
+
10
+ constructor(scope: Construct, id: string, props?: StackProps) {
11
+ super(scope, id, props);
12
+
13
+ this.canary = new synthetics.Canary(this, 'BrowserTypeCanary', {
14
+ runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_11_0,
15
+ test: synthetics.Test.custom({
16
+ handler: 'canary.handler',
17
+ code: synthetics.Code.fromAsset(path.join(__dirname, 'canaries')),
18
+ }),
19
+ memory: Size.mebibytes(2048),
20
+ timeout: Duration.minutes(4),
21
+ maxRetries: 2,
22
+ browserConfigs: [
23
+ synthetics.BrowserType.CHROME,
24
+ synthetics.BrowserType.FIREFOX,
25
+ ],
26
+ });
27
+ }
28
+ }
29
+
30
+ const app = new App();
31
+ const testStack = new TestStack(app, 'SyntheticsCanaryBrowserTypeStack');
32
+
33
+ new IntegTest(app, 'SyntheticsCanaryBrowserType', {
34
+ testCases: [testStack],
35
+ });
@@ -106,7 +106,7 @@ Flags come in three types:
106
106
  | [@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal](#aws-cdkaws-kmsapplyimportedaliaspermissionstoprincipal) | Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition | 2.202.0 | fix |
107
107
  | [@aws-cdk/core:explicitStackTags](#aws-cdkcoreexplicitstacktags) | When enabled, stack tags need to be assigned explicitly on a Stack. | 2.205.0 | new default |
108
108
  | [@aws-cdk/aws-signer:signingProfileNamePassedToCfn](#aws-cdkaws-signersigningprofilenamepassedtocfn) | Pass signingProfileName to CfnSigningProfile | 2.212.0 | fix |
109
- | [@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener](#aws-cdkaws-ecs-patternssecgroupsdisablesimplicitopenlistener) | Disable implicit openListener when custom security groups are provided | V2NEXT | new default |
109
+ | [@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener](#aws-cdkaws-ecs-patternssecgroupsdisablesimplicitopenlistener) | Disable implicit openListener when custom security groups are provided | 2.214.0 | new default |
110
110
 
111
111
  <!-- END table -->
112
112
 
@@ -2272,7 +2272,7 @@ override this behavior.
2272
2272
  | Since | Unset behaves like | Recommended value |
2273
2273
  | ----- | ----- | ----- |
2274
2274
  | (not in v1) | | |
2275
- | V2NEXT | `false` | `true` |
2275
+ | 2.214.0 | `false` | `true` |
2276
2276
 
2277
2277
  **Compatibility with old behavior:** You can pass `openListener: true` explicitly to maintain the old behavior.
2278
2278
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: konokenj.cdk-api-mcp-server
3
- Version: 0.43.0
3
+ Version: 0.44.0
4
4
  Summary: An MCP server provides AWS CDK API Reference
5
5
  Project-URL: Documentation, https://github.com/konokenj/cdk-api-mcp-server#readme
6
6
  Project-URL: Issues, https://github.com/konokenj/cdk-api-mcp-server/issues
@@ -26,7 +26,7 @@ Description-Content-Type: text/markdown
26
26
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/konokenj.cdk-api-mcp-server.svg)](https://pypi.org/project/konokenj.cdk-api-mcp-server)
27
27
 
28
28
  <!-- DEP-VERSIONS-START -->
29
- [![aws-cdk](https://img.shields.io/badge/aws%20cdk-v2.213.0-blue.svg)](https://github.com/konokenj/cdk-api-mcp-server/blob/main/current-versions/aws-cdk.txt)
29
+ [![aws-cdk](https://img.shields.io/badge/aws%20cdk-v2.214.0-blue.svg)](https://github.com/konokenj/cdk-api-mcp-server/blob/main/current-versions/aws-cdk.txt)
30
30
  <!-- DEP-VERSIONS-END -->
31
31
 
32
32
  ---
@@ -1,4 +1,4 @@
1
- cdk_api_mcp_server/__about__.py,sha256=J0c2HrXg9dyFAKTyr2698KteIztCE_Pz3dgUq80oj7I,129
1
+ cdk_api_mcp_server/__about__.py,sha256=zSXca0LQuRXtsIUwkxRgFOt_fIveUC3LZ_328urbr2k,129
2
2
  cdk_api_mcp_server/__init__.py,sha256=yJA6yIEhJviC-qNlB-nC6UR1JblQci_d84i-viHZkc0,187
3
3
  cdk_api_mcp_server/models.py,sha256=cMS1Hi29M41YjuBxqqrzNrNvyG3MgnUBb1SqYpMCJ30,692
4
4
  cdk_api_mcp_server/resources.py,sha256=R7LVwn29I4BJzU5XAwKbX8j6uy-3ZxcB1b0HzZ_Z2PI,6689
@@ -19,7 +19,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/README
19
19
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-gamelift-alpha/README.md,sha256=pZqlGXpIekT05CmRYo99QPI-7S1iGtKoNESGryLQFxQ,28324
20
20
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-glue-alpha/README.md,sha256=BCr7YEJ6Ht3oYR21NMCH3t1N738QjQ9Sh_dL_DUhECQ,32235
21
21
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-actions-alpha/README.md,sha256=R6vkGxu-JjfB1IfGVquiD6Gcn4RQQpgbGo36njBdJe4,11947
22
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-alpha/README.md,sha256=SNJKBHDT3O6Xq-G0MHBzjkaUIsYFhA4g3bUU_LXX0AA,6909
22
+ cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-alpha/README.md,sha256=18MkQScFBUO_qZnfYj9wfsdY_vRvvEyar2OT_QbO_N4,6909
23
23
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iotevents-actions-alpha/README.md,sha256=0Al2K5gHcEce_cH07YM1GuFFrJ0mrr85ZWGVrj2cs9s,4477
24
24
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iotevents-alpha/README.md,sha256=VV3S1skroh5LRVWWPeRo_MhYb6f29ee6ScmmuLVd8v4,3835
25
25
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-ivs-alpha/README.md,sha256=kIlsBFM-sL7IAMtRHR1v1trFVi7K55yvit2GXN57Ue8,8722
@@ -90,12 +90,12 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ
90
90
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.token-authorizer.ts,sha256=aSoN0khMwpURVvR7U2fUsjJOubZ_zUhG8b2rgkjSp2M,3597
91
91
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.usage-plan.multikey.ts,sha256=9njyhYXRAQr-yHR4zvG0CYKS0MXHSoq4bJwZDWa_bAM,556
92
92
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.usage-plan.sharing.ts,sha256=_SSf6j8I-B4neywqtUikOWwvfoTU2Ph9IlDnuJllsbY,998
93
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/README.md,sha256=0CV55A4LWnYYyTu_wHu1EfHTTwJKNLWKIS2TWkLx7y0,30324
93
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/README.md,sha256=2cq_39qk6-6puyrQfFw1KChuI6pWBunohD4C4ZS94hY,30482
94
94
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-apikey.ts,sha256=_hI2T1TIom2UmrXqX9oWSkFLb0QNPAuIb3d-wR2YmpY,370
95
95
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-domain-name.ts,sha256=il_sIMzx1KgsYstJrcxz2XYVq8DlpTj8oViQX_PLiDk,1960
96
96
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-dualstack.ts,sha256=BFbAzMWIdS5w4Bcp30Ow9YSRo8qJWhL18w9PQo4U6rU,440
97
97
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-grant-invoke.ts,sha256=oleJiGqC5-cJWoEIIJlvpqnIc3_QsKZ5JP3GbIYuTDI,996
98
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api.ts,sha256=FmeK1cJiFYTvmQsAbVX5OhA_Qx6m_EwgGuKCC5NCevA,372
98
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api.ts,sha256=2zmU04diShE0ZSMqI1PFMJ7K0zMJC7tQbxb6uKqw7GQ,467
99
99
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.stage.ts,sha256=g3YJqt3ZJ2EG7XsDZk6IXZWkH8sbUyYOoDyU4RPzma8,513
100
100
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.usage-plan.ts,sha256=J3kLq2yD4lKR7y3B6XZjtIUxEmbGS6HhrKei6EtaNR8,1956
101
101
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/README.md,sha256=O5FyfQtU2qhYokDH9MZbgFejKz7zD6UTwSeX1pcLky4,13049
@@ -199,8 +199,9 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling-hook
199
199
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/README.md,sha256=fQ0VqirtiyA1y2P_jXCTojMGQyxO1r6S9WYk-ge29Zo,9640
200
200
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/integ.backup-selection.ts,sha256=kaNB9DQen9nrE5Gj5XZkuP2LaAd53gndrPJGjjYwnaU,2160
201
201
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/integ.backup.ts,sha256=amNqCqf3dCzUrxLBBKm0zSEbsS--h7BMSNQZ_b7sQ68,2473
202
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/README.md,sha256=L7mM5_xx3cKK_ZvDBzWqB1S3emFna6wfC2ZckYj9-ns,29560
202
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/README.md,sha256=vVlmXPnktdF7efpLETROA-J6G7f_FkYgClvTuJpZJiU,30924
203
203
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.batch-unique-name.ts,sha256=3tirUUq3KUiJVTnz7dhtEYSmDlUoLb3azlP9wzFZR2k,1171
204
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.ecs-exec-batch-job.ts,sha256=srHnG37mt_2ePCp0xjle83_q2f8zIz81h8b6hlgjS1o,4984
204
205
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.ecs-job-definition.ts,sha256=KW_7UN8nM62AJ_GKM6CnsqTp5ONuBaxRs9MGEk7B6ho,3894
205
206
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.eks-job-definition.ts,sha256=KJ5HxnLxcqLFsRksMlaNB-Ry425uwsz-MF2L6-jmlG4,1701
206
207
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.grants.ts,sha256=ErBE6_LfFjNUEPNihdjQaRMCyrTHMMx1sfo2lJF_U00,1088
@@ -322,7 +323,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch-actio
322
323
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch-actions/integ.lambda-alarm-action.ts,sha256=onNZET1IofzJ-_LmnlREFQ3O7MkISTW2OrLrCkJ2qBA,4614
323
324
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch-actions/integ.lambda-alarm-multiple-stepscalingpolicy.ts,sha256=gPLnWcaoTAAlmDYKyHsZz_55lpEDjG92xTNdjEc3IPk,2722
324
325
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch-actions/integ.ssm-incident-alarm-action.ts,sha256=X5iWnwQcAbLQnDkrxd5_rKL-jfw4s60kEQMVFLnCTRk,1895
325
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/README.md,sha256=TWs42s1wNvGhZegpsjAYJ_GwL14MeQZv3jCHcHHwwCE,34341
326
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/README.md,sha256=pKI0s8e1zzvjz4LvKZga20AJxS6kpUEpsysTAP3N9ls,34404
326
327
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.asset-build-spec.ts,sha256=APwn0Tzph1El4XowRux9zXXlZO3eXJMFbp3bbovs-AM,1850
327
328
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.aws-deep-learning-container-build-image.ts,sha256=hSyb2cy-zu1rEkNiPybncQaV-Gh63REI95WBpuXeL-Y,488
328
329
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.breakpoint.ts,sha256=ezkSR2Ne1erXri4XV_kMwS4-DUhR5m3EMG1nxzbKZs4,838
@@ -339,6 +340,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.
339
340
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-auto-retry-limit.ts,sha256=VXVyOLwKPeXunONIHn19dXRJvqZJS0f-86eoJB3U1Jk,895
340
341
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-bucket.ts,sha256=uL0WCHHAYRihoyQGV3DlNYeYcGlVKf2FCXr51Wj3aGM,591
341
342
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-buildspec-artifacts.ts,sha256=3Fx_jwCa5HW0Dsat2B5hMXrZw_CVldbITSTZRbSGRjo,693
343
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-docker-server.ts,sha256=n-TtyWQmaxiI-dWyWe6nZgCDtdn_gvqZAigIT_ugFPI,1301
342
344
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-file-system-location.ts,sha256=t1I6uabPbfoaQ7lzP2EJIbvB3_5vkTrr_oQRh69_HQk,1060
343
345
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-attribute-based-compute.ts,sha256=ttHvMAKsoo0zEF4f82x6cSyI_2QA0se6zrXoN64A2WY,2303
344
346
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet.ts,sha256=kCXeV4i_mq2JFzvTDox6rv10no6LOZ-bb_Gk6aSa7A4,1913
@@ -402,7 +404,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-act
402
404
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecr-source.ts,sha256=iL19rhSPBw3a74vVKNnbyFZqHSsGPNmbtkl9W7BpiFU,3117
403
405
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecs-deploy.ts,sha256=S0sQQE01EtB9eGRdh0CMjKMq9y1iA2_JZMgoAJ9KJpc,3296
404
406
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecs-separate-source.lit.ts,sha256=4gzbdTFIVxqlvl4VJPxJ-5mg3tXdvu9jCAiMzMxlzyg,8314
405
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts,sha256=uefXbdpNwaUP_5zaXtkT0JHqHpo6ei80r3WdKwHPmJ8,5073
407
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts,sha256=AmGcJlGuIo9dx38c4wLPvPlJPO-kVYrQVhdgNbxy1FM,5470
406
408
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-events.ts,sha256=GlIigr-IQ80xWtanSq06gRxPvNVtRbh7kR0X09b8YBA,2224
407
409
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-invoke-action.ts,sha256=mLIohxRn-3Lx1HUTvQTjsoLnWu63kucyvpqqQwAvgQo,3486
408
410
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-jenkins.ts,sha256=OIG2DO7Nc8mVT9wfFaZqgWjOHKkc_SJAHwfGXohT_bw,1827
@@ -573,12 +575,12 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.grant.
573
575
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.imagescan.ts,sha256=MfLBVQc3qTDx5LDS15EqUdqtJrK64g5i7GEoFLsRMCA,547
574
576
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.repository-auto-delete-images.ts,sha256=3GYqoRSUUJ53ZpAvfypp0IOd7Z-uWTGGQ3aJgqsfKyg,577
575
577
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.repository-lookup.ts,sha256=UQZz00DFMZaFnvbT2FWqk5uBeZGl9MY3IUIKyUFukkY,1424
576
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/README.md,sha256=7p9gpQzEwpNftDAt40X5Ja57qpMl2su4AksWKvlbf44,8856
578
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/README.md,sha256=nwDqg2M2NMEqMcI2-b1yIMjyZgnBGaIHSbiq-6PGG1s,9146
577
579
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.assets-docker.ts,sha256=EF_hWgLhIKucTjMe6G7VyxixpQgm82ElvunshuWoEhA,2570
578
580
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.assets-tarball.ts,sha256=pSbNMWSorKT7lUTXxnzkxpcRumKPYWUmcbqRSwwWOgI,937
579
581
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.nested-stacks-docker.ts,sha256=4hDobse34oIG2r0mjbYXzsEXXLEqv077jUh3pjoYmcc,981
580
582
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/CONTRIBUTING.md,sha256=TlNwpeYemLdYq4jdo24v7nwDIj3RmZ7u2j_LCQiQR74,2634
581
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md,sha256=DfmYOqqlztsT7EsTc8bgIs9-rV8exdcX2V0kUTK9oJE,75620
583
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md,sha256=3x7qZzMSZhlUITrPhNTscpSQbBQV34cDMADTqmOA7uc,75808
582
584
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.add-docker-label.ts,sha256=avHktilCBVPuVelquVaY2ylRkSLraWn7vUIIIFPsbyI,1375
583
585
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.add-environment-variable.ts,sha256=sIdwJl7LYh5wlv_EDLPSGCavC2OF6W8IBwZ_hMOnCfw,1143
584
586
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.app-mesh-proxy-config.ts,sha256=vWr45An7W7lgW9Ws_yPFhapf9DXyJP-D0fhTNg5fZC0,1717
@@ -929,9 +931,10 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sou
929
931
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.sqs-with-filter-criteria.ts,sha256=13527TPdCrdmDIRP-kPRHi3txZpbwfhj-g2yZyJ2HJU,1351
930
932
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.sqs-with-metrics-config.ts,sha256=Wcun2xnL5TWYPfmS6dMRb-_Ufngc2w2ECA1AzgLHKzo,1047
931
933
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.sqs.ts,sha256=YPYqJaZfsMQIPIoHuTwndGFPNn-HiDpKZxFtJbDP0ko,811
932
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/README.md,sha256=1XeSAPtsvL9yBb9Hpq2cacJM8mEdAGIl_EhB8vhoZDA,17514
934
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/README.md,sha256=2y_50EsA_zFZCzKWytYvp4Mvb47bThQKqMnOcFqfG24,17538
933
935
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.bundling-user.ts,sha256=-umdYSlL1QdPFDvMtO86skELo3S0D4iWhPiGWxCg7Pk,1114
934
936
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.compilations.ts,sha256=7WI75gNeuylXBfjjOpjT9UjJFu2z5bkd8ZGPmhDASkQ,1315
937
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-bun-lock.ts,sha256=2BB7wp-mYsSWHWjl0Wom32jlOawPlO2-1s1P7GF8i5g,1671
935
938
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-bun.ts,sha256=Si4MRfxmq9JG_YbUnmDjJqllBjGHKOiJUyxXF43Uq3Y,1647
936
939
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-pnpm.ts,sha256=NJONlVzcrVWbR6IVKi5NnUV4n4z1BlJzhRDh9J8bY_4,1310
937
940
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies.ts,sha256=n2xTUIe7tWTqoPawtcnccXYzprCfTTdPeVx-rL_hsxA,2977
@@ -983,7 +986,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservic
983
986
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.unsignedbasicauth.ts,sha256=B13diAjHunM-L1w1FHgpDRup-j4Xnnb-rpn171bbjpw,925
984
987
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.vpc.ts,sha256=92FvTQd0U190KN53A8UU4eV3ggwm1GeVn4f3nRE56T0,1400
985
988
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.without-logs-resource-policy.ts,sha256=CTj7BjTXc_Q4J_NnK8C62vXGl3ZIWMbmcuPHjvW01vU,1971
986
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md,sha256=7pvsYF9R4Vy_4JdpueKBKSphs-x_MlHnlQA_BGy_JTk,67620
989
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md,sha256=rqBg1xfmVlFm9Y8cQTFquBImwL7-fcbabF73ngCvgUY,68030
987
990
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/aurora-serverless-v2.md,sha256=D4_EKB6d62nNN0LwL3XGX0YFjwdSBXE8namaBUqU9qw,10484
988
991
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-applyimmediately.ts,sha256=UB7bdVX6UD63SYroZRXs5V493f1lUX_3lD5W7EeU5AQ,1135
989
992
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-availability-zone.ts,sha256=59DvW_-fFQ2NPddJdbayEu7V-NVBAPvm3A05IvbBOAA,1765
@@ -1032,6 +1035,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instan
1032
1035
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-with-metric.ts,sha256=oQJbFQH5yFC9X3MHr8wu2O6vvBBcHcJS0AW51q9BBrQ,1330
1033
1036
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-with-parameter-group.ts,sha256=BELAKjpQc5Rlu2kjpJk8PUhQk2UySlkPhuHdVRiwUpQ,1158
1034
1037
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance.lit.ts,sha256=n8XH1sJD_y2vAMXy2JlOEY4Pg58qA-IpurwwA6NQMpU,4182
1038
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-endpoint.ts,sha256=DBXydbhQkqKYcwS7EHoBu0AG-FSJ5NdD6RP3r6cxlo4,1186
1035
1039
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-mariadb.ts,sha256=h9qrowwmonRVBW53bJVz3wneeErmrHjPdqAoV31WFfY,1391
1036
1040
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-sql-server.ts,sha256=8168nOsK3O0H9OCyZe3vdqj3ZwB9LUo8c_yOiGM7IZg,1607
1037
1041
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy.ts,sha256=fOSRczUyk_S8fSUKVdj0bag3oyFtntGBHYhShSFLuOE,2890
@@ -1095,6 +1099,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-
1095
1099
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-sharing.ts,sha256=nYSPtRf6SKG_dxFnSSqB4_7zhOfScxcTDdVA1HAWpoc,1106
1096
1100
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.domain-name.ts,sha256=IOODtf2ASGbeF_jxGj0HTfCdv4chvTo5HA8jJrOGf8s,801
1097
1101
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.inventory.ts,sha256=_OKna9IpkYKTNJoQQIdKBKMYF9nRrsAnv6yx0FYGx-I,780
1102
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.notifications-scoped-permissions.ts,sha256=YHhgShsLeNBEl7cS8f177_6kb1VPk8SLczRbUoZ3LCA,2501
1098
1103
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.notifications.ts,sha256=NZPX1K5ISU7DGM7Woe09x44Q27VfVVJ_BuYyUFXwOT8,649
1099
1104
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.server-access-logs.ts,sha256=8c7QCODFMds7tkmT8JhmHiwJ8JQGnzzvvqj2e_jr3hU,1613
1100
1105
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.ts,sha256=r8GwRCwau5Zti8SSf8SBX6Sku8a4yb1DCPxhYLZ4ySs,838
@@ -1220,6 +1225,8 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/in
1220
1225
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-csv-delimiter-with-result-writer-v2.ts,sha256=9sUCYE3Rn9OJsCc8GLWS3qTUYPDv1vH6iRHuMmG386Y,2670
1221
1226
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-csv-delimiter.ts,sha256=f_ZUPr3pI1Cymj5NEBNiqJTeQPF7SJeI0wRTdB5L78Y,2476
1222
1227
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-execution-type.ts,sha256=40y3RbELYFd9Zkxq85Ks3SSRJWsl2Y8sHMt909XVCFs,957
1228
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-parallel.ts,sha256=bK9sA_udJde3-LrHSluGnAhpXiCJteH6DBbLh3eXadE,2723
1229
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-redrive.ts,sha256=o5F4_VDK5WTm2MWwbA66SYTsLXUDf2O0g6ojF76YG8o,4458
1223
1230
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-with-result-writer-v2-having-writer-config.ts,sha256=lNKChVAFp-mODWftWuyz6Wx7P_zuvOZt9MPFXe3awn8,2866
1224
1231
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-with-result-writer-v2.ts,sha256=4RuzzXWqyxlf31SsMiUYiM_AVeEfNdPcxYnqNTBOTl0,2612
1225
1232
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map.ts,sha256=Bp5ufmzXP0yALAqqPrSWSeFXtBHsGKxZOOoRv-RpuNQ,2418
@@ -1232,7 +1239,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/in
1232
1239
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-inline.ts,sha256=vzCMkfobIPqMd94tOD2uxCi7CxEhxG9Po07LnrfV_q0,971
1233
1240
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-itemselector.ts,sha256=n_Ovy855kjSCK-GFrNzhaz7T0cVHUXUeSt8QNngYz98,1115
1234
1241
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-jsonata-itemselector.ts,sha256=_azQApIjXjJUDTTDrJHMqui_E3wOx2RR5_dkYn8AFPE,1113
1235
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-with-catch.ts,sha256=Y1gMyakUFuB4k5UCMfvwPHZcwfN3k9syBzeVLAPHJBU,2793
1242
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-with-catch.ts,sha256=qs8xSUob6jZzeLTgKZmGGU5gY7Z7m-ZUcstI3AhNHNc,2824
1236
1243
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.parallel-parameters.ts,sha256=xseArfY0EBjgh4X96w7yi7Xq4sWGzzzLwB2JAw9JXsk,1739
1237
1244
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.s3-json-item-reader.ts,sha256=69K8O1x1sUkzGFfcf-KEmzzo19yvrdl0Po59k2grxXI,5773
1238
1245
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.s3-objects-item-reader.ts,sha256=g-0WEsKg0jkI8OSBw6bmK-yAhioFSZgDkg1DcnZd1oc,5916
@@ -1318,9 +1325,10 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-ta
1318
1325
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.submit-job-queue-jsonpath.ts,sha256=xOerJeeBfCEpEBPYLnYh-Naycr-a9GqXLdxs6G-hPHs,2136
1319
1326
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.submit-job.d.ts,sha256=jmCbtxwguFjHfw6fkLsTGduEd7E_n5ZfGh4YUkv1CIE,11
1320
1327
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.submit-job.ts,sha256=e0cd9QvnR01q6F6XgoRXqJRnCVmhU_q2teRsKQtI4UE,2834
1321
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/README.md,sha256=9EUOE1mnm8ZPBI_UXGkkXVo9eBGWOT9cfkRZDYLkFyA,17456
1328
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/README.md,sha256=_2XIElNLx63VCpEn0Be-yH399hen5qBAX2bORsLmpjw,18572
1322
1329
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-artifact-s3-encryption.ts,sha256=vtDZDYpMfnRftpjBhSwl9GpjiqQ7_m55iidSJPzTuhs,2628
1323
1330
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-auto-delete-lambda.ts,sha256=epAsfPC1zL0Kb0RKv9msG2gkCvV83ka6Lvpj1nupd84,2360
1331
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-browser-type.ts,sha256=v_b25HY2WKN93qiwmrwyb5jvqLu2Gvzq7iS3K7JRrq4,1124
1324
1332
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-dryrun-update.ts,sha256=9eSxOnfd0-nhkd3wUByAb8hfqfZEwCcEzlEL6yThctI,1049
1325
1333
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-provisioned-resource-cleanup.ts,sha256=6Y6sDsl88gyAJItkXlye8mjTN9n1tU61LqWusp_K0lo,1892
1326
1334
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-resources-to-replicate-tags.ts,sha256=M9Hk4ySI9PdQPUFcn8-DxtwwoAY-9mkhyLHOXJZ-9es,1324
@@ -1368,7 +1376,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/int
1368
1376
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.provider-with-waiter-state-machine-custom-role.ts,sha256=60mjzf_2NI9zO30B2Guye5sA7kxIl4yrLMXUEWIDO9I,2401
1369
1377
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.provider-with-waiter-state-machine.ts,sha256=6Ci2_ABcu5azSj1f0EzY1VD4lQUg9KI5l1Q7ieejI-0,2058
1370
1378
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.provider.ts,sha256=u_YVV0YZk6hyIxo5JOOSwwUORbqS3BVbJU6DIAwxuk0,1814
1371
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md,sha256=Fdznt7hieEGIomniv5nJISrTQ-MDnP-uDG4SkJECQ5A,108224
1379
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md,sha256=qqX6oPxATHDokRlX57eVXImcygnHbRpHQKwKq7bO950,108226
1372
1380
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/NESTED_ASSEMBLIES.md,sha256=P8PNyr4hIC_i-9aUxa301-5-N4tLcoHYnELBp3C6SQQ,4949
1373
1381
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/README.md,sha256=2wOjXn0IClEfFoaThPxpqKmwpgX-9KMilIjVIq2wn40,26377
1374
1382
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/lambda-layer-awscli/README.md,sha256=kMrrptXZcAiK_TXRQD4XcaNRa3RXaIoIUQRZYi29b30,681
@@ -1399,8 +1407,8 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipe
1399
1407
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/region-info/README.md,sha256=vewWkV3ds9o9iyyYaJBNTkaKJ2XA6K2yF17tAxUnujg,2718
1400
1408
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/README.md,sha256=hYIx7DbG_7p4LYLUfxDwgIQjw9UNdz1GLrqDe8_Dbko,4132
1401
1409
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/integ.triggers.ts,sha256=4OHplMoBOgHGkktAzoU-TuNmJQS5wGAUvBfj5bGSe_Y,2807
1402
- konokenj_cdk_api_mcp_server-0.43.0.dist-info/METADATA,sha256=Lj9SqjucjkxiWUzxFMgiiSYufKa8oPUVV1c2oMfVx9c,2646
1403
- konokenj_cdk_api_mcp_server-0.43.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1404
- konokenj_cdk_api_mcp_server-0.43.0.dist-info/entry_points.txt,sha256=bVDhMdyCC1WNMPOMbmB82jvWII2CIrwTZDygdCf0cYQ,79
1405
- konokenj_cdk_api_mcp_server-0.43.0.dist-info/licenses/LICENSE.txt,sha256=5OIAASeg1HM22mVZ1enz9bgZ7TlsGfWXnj02P9OgFyk,1098
1406
- konokenj_cdk_api_mcp_server-0.43.0.dist-info/RECORD,,
1410
+ konokenj_cdk_api_mcp_server-0.44.0.dist-info/METADATA,sha256=OXn8V3X4rk55UBX0ZQofvPod7bd1mvVqN0cwqhVvLRc,2646
1411
+ konokenj_cdk_api_mcp_server-0.44.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1412
+ konokenj_cdk_api_mcp_server-0.44.0.dist-info/entry_points.txt,sha256=bVDhMdyCC1WNMPOMbmB82jvWII2CIrwTZDygdCf0cYQ,79
1413
+ konokenj_cdk_api_mcp_server-0.44.0.dist-info/licenses/LICENSE.txt,sha256=5OIAASeg1HM22mVZ1enz9bgZ7TlsGfWXnj02P9OgFyk,1098
1414
+ konokenj_cdk_api_mcp_server-0.44.0.dist-info/RECORD,,