konokenj.cdk-api-mcp-server 0.61.0__py3-none-any.whl → 0.63.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 (57) hide show
  1. cdk_api_mcp_server/__about__.py +1 -1
  2. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-agentcore-alpha/README.md +35 -0
  3. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-glue-alpha/README.md +3 -3
  4. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-imagebuilder-alpha/README.md +216 -11
  5. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/mixins-preview/README.md +11 -11
  6. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appconfig/integ.configuration.ts +2 -2
  7. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-instance-termination-policy.ts +1 -1
  8. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-node-18.ts +0 -2
  9. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources.ts +0 -2
  10. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.nested-stack.ts +0 -2
  11. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.nested-stacks-assets.ts +0 -2
  12. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.nested-stacks-multi.ts +0 -2
  13. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-attribute-based-compute.ts +1 -1
  14. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-custom-instance-type.ts +1 -1
  15. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-code-commit-build.ts +1 -1
  16. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-code-commit-custom-event.ts +10 -10
  17. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecs-deploy.ts +1 -1
  18. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/README.md +8 -8
  19. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/TABLE_V1_API.md +6 -6
  20. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.policy.ts +9 -1
  21. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.ts +1 -0
  22. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md +34 -7
  23. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-metadata-options.ts +51 -0
  24. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-dual-stack-ec2.ts +0 -1
  25. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.fargate-with-efs.ts +1 -1
  26. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs-filesystem-policy.ts +1 -1
  27. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs.ts +1 -1
  28. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancing/integ.instanceTarget.elb.ts +1 -1
  29. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-globalaccelerator/integ.globalaccelerator-endpoints.ts +6 -6
  30. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-globalaccelerator/integ.globalaccelerator-unique-name.ts +1 -1
  31. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md +210 -0
  32. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.capacity-provider-all-fields.ts +61 -0
  33. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.capacity-provider-defaults.ts +34 -0
  34. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.durable-config.ts +19 -0
  35. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.function-capacity-provider-all-fields.ts +57 -0
  36. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.function-capacity-provider-minimal.ts +42 -0
  37. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda.filesystem.ts +1 -1
  38. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.version-scaling-config-all-fields.ts +48 -0
  39. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts +1 -0
  40. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md +30 -0
  41. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.failover-record.ts +48 -0
  42. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.appsync-target.ts +1 -1
  43. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region.ts +7 -7
  44. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-v2-policy.ts +1 -1
  45. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-codebuild-logging.ts +1 -1
  46. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-codestar-connection.ts +1 -1
  47. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-cross-region-replication-buckets.ts +1 -1
  48. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-vpc.ts +1 -1
  49. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline.ts +1 -1
  50. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-with-artifact-bucket.ts +1 -1
  51. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-with-variables.ts +1 -1
  52. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-without-prepare.ts +1 -1
  53. {konokenj_cdk_api_mcp_server-0.61.0.dist-info → konokenj_cdk_api_mcp_server-0.63.0.dist-info}/METADATA +2 -2
  54. {konokenj_cdk_api_mcp_server-0.61.0.dist-info → konokenj_cdk_api_mcp_server-0.63.0.dist-info}/RECORD +57 -49
  55. {konokenj_cdk_api_mcp_server-0.61.0.dist-info → konokenj_cdk_api_mcp_server-0.63.0.dist-info}/WHEEL +1 -1
  56. {konokenj_cdk_api_mcp_server-0.61.0.dist-info → konokenj_cdk_api_mcp_server-0.63.0.dist-info}/entry_points.txt +0 -0
  57. {konokenj_cdk_api_mcp_server-0.61.0.dist-info → konokenj_cdk_api_mcp_server-0.63.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.61.0"
4
+ __version__ = "0.63.0"
@@ -249,6 +249,41 @@ const runtimeInstance = new agentcore.Runtime(this, "MyAgentRuntime", {
249
249
  });
250
250
  ```
251
251
 
252
+ #### Option 4: Use an ECR container image URI
253
+
254
+ Reference an ECR container image directly by its URI. This is useful when you have a pre-existing ECR image URI from CloudFormation parameters or cross-stack references. No IAM permissions are automatically granted - you must ensure the runtime has ECR pull permissions.
255
+
256
+ ```typescript fixture=default
257
+ // Direct URI reference
258
+ const agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromImageUri(
259
+ "123456789012.dkr.ecr.us-east-1.amazonaws.com/my-agent:v1.0.0"
260
+ );
261
+
262
+ const runtime = new agentcore.Runtime(this, "MyAgentRuntime", {
263
+ runtimeName: "myAgent",
264
+ agentRuntimeArtifact: agentRuntimeArtifact,
265
+ });
266
+ ```
267
+
268
+ You can also use CloudFormation parameters or references:
269
+
270
+ ```typescript fixture=default
271
+ // Using a CloudFormation parameter
272
+ const imageUriParam = new cdk.CfnParameter(this, "ImageUri", {
273
+ type: "String",
274
+ description: "Container image URI for the agent runtime",
275
+ });
276
+
277
+ const agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromImageUri(
278
+ imageUriParam.valueAsString
279
+ );
280
+
281
+ const runtime = new agentcore.Runtime(this, "MyAgentRuntime", {
282
+ runtimeName: "myAgent",
283
+ agentRuntimeArtifact: agentRuntimeArtifact,
284
+ });
285
+ ```
286
+
252
287
  ### Granting Permissions to Invoke Bedrock Models or Inference Profiles
253
288
 
254
289
  To grant the runtime permissions to invoke Bedrock models or inference profiles:
@@ -113,7 +113,7 @@ new glue.PySparkEtlJob(stack, 'PySparkETLJob', {
113
113
  description: 'This is a description',
114
114
  role,
115
115
  script,
116
- glueVersion: glue.GlueVersion.V3_0,
116
+ glueVersion: glue.GlueVersion.V5_1,
117
117
  continuousLogging: { enabled: false },
118
118
  workerType: glue.WorkerType.G_2X,
119
119
  maxConcurrentRuns: 100,
@@ -169,7 +169,7 @@ new glue.PySparkStreamingJob(stack, 'PySparkStreamingJob', {
169
169
  description: 'This is a description',
170
170
  role,
171
171
  script,
172
- glueVersion: glue.GlueVersion.V3_0,
172
+ glueVersion: glue.GlueVersion.V5_1,
173
173
  continuousLogging: { enabled: false },
174
174
  workerType: glue.WorkerType.G_2X,
175
175
  maxConcurrentRuns: 100,
@@ -222,7 +222,7 @@ new glue.PySparkEtlJob(stack, 'pySparkEtlJob', {
222
222
  description: 'This is a description',
223
223
  role,
224
224
  script,
225
- glueVersion: glue.GlueVersion.V3_0,
225
+ glueVersion: glue.GlueVersion.V5_1,
226
226
  continuousLogging: { enabled: false },
227
227
  workerType: glue.WorkerType.G_2X,
228
228
  maxConcurrentRuns: 100,
@@ -38,7 +38,10 @@ test phase during the test stage.
38
38
 
39
39
  ### Image Pipeline
40
40
 
41
- An image pipeline provides the automation framework for building secure AMIs and container images. The pipeline orchestrates the entire image creation process by combining an image recipe or container recipe with infrastructure configuration and distribution configuration. Pipelines can run on a schedule or be triggered manually, and they manage the build, test, and distribution phases automatically.
41
+ An image pipeline provides the automation framework for building secure AMIs and container images. The pipeline
42
+ orchestrates the entire image creation process by combining an image recipe or container recipe with infrastructure
43
+ configuration and distribution configuration. Pipelines can run on a schedule or be triggered manually, and they manage
44
+ the build, test, and distribution phases automatically.
42
45
 
43
46
  #### Image Pipeline Basic Usage
44
47
 
@@ -139,7 +142,7 @@ const advancedSchedulePipeline = new imagebuilder.ImagePipeline(this, 'AdvancedS
139
142
 
140
143
  #### Image Pipeline Configuration
141
144
 
142
- ##### Infrastructure and Distribution
145
+ ##### Infrastructure and Distribution in Image Pipelines
143
146
 
144
147
  Configure custom infrastructure and distribution settings:
145
148
 
@@ -177,7 +180,7 @@ const pipelineLogGroup = new logs.LogGroup(this, 'PipelineLogGroup', {
177
180
  });
178
181
 
179
182
  const imageLogGroup = new logs.LogGroup(this, 'ImageLogGroup', {
180
- logGroupName: '/custom/imagebuilder/image/logs',
183
+ logGroupName: '/custom/imagebuilder/image/logs',
181
184
  retention: logs.RetentionDays.ONE_WEEK
182
185
  });
183
186
 
@@ -188,7 +191,7 @@ const loggedPipeline = new imagebuilder.ImagePipeline(this, 'LoggedPipeline', {
188
191
  });
189
192
  ```
190
193
 
191
- ##### Workflow Integration
194
+ ##### Workflow Integration in Image Pipelines
192
195
 
193
196
  Use AWS-managed workflows for common pipeline phases:
194
197
 
@@ -215,7 +218,7 @@ const containerWorkflowPipeline = new imagebuilder.ImagePipeline(this, 'Containe
215
218
  });
216
219
  ```
217
220
 
218
- ##### Advanced Features
221
+ ##### Advanced Features in Image Pipelines
219
222
 
220
223
  Configure image scanning for container pipelines:
221
224
 
@@ -286,6 +289,204 @@ existingPipelineByName.grantStartExecution(automationRole);
286
289
  existingPipelineByArn.grantRead(lambdaRole);
287
290
  ```
288
291
 
292
+ ### Image
293
+
294
+ An image is the output resource created by Image Builder, consisting of an AMI or container image plus metadata such as
295
+ version, platform, and creation details. Images are used as base images for future builds and can be shared across AWS
296
+ accounts. While images are the output from image pipeline executions, they can also be created in an ad-hoc manner
297
+ outside a pipeline, defined as a standalone resource.
298
+
299
+ #### Image Basic Usage
300
+
301
+ Create a simple AMI-based image from an image recipe:
302
+
303
+ ```ts
304
+ const imageRecipe = new imagebuilder.ImageRecipe(this, 'MyImageRecipe', {
305
+ baseImage: imagebuilder.BaseImage.fromSsmParameterName(
306
+ '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'
307
+ )
308
+ });
309
+
310
+ const amiImage = new imagebuilder.Image(this, 'MyAmiImage', {
311
+ recipe: imageRecipe
312
+ });
313
+ ```
314
+
315
+ Create a simple container image from a container recipe:
316
+
317
+ ```ts
318
+ const containerRecipe = new imagebuilder.ContainerRecipe(this, 'MyContainerRecipe', {
319
+ baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),
320
+ targetRepository: imagebuilder.Repository.fromEcr(
321
+ ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')
322
+ )
323
+ });
324
+
325
+ const containerImage = new imagebuilder.Image(this, 'MyContainerImage', {
326
+ recipe: containerRecipe
327
+ });
328
+ ```
329
+
330
+ #### AWS-Managed Images
331
+
332
+ ##### Pre-defined OS Images
333
+
334
+ Use AWS-managed images for common operating systems:
335
+
336
+ ```ts
337
+ // Amazon Linux 2023 AMI for x86_64
338
+ const amazonLinux2023Ami = imagebuilder.AmazonManagedImage.amazonLinux2023(this, 'AmazonLinux2023', {
339
+ imageType: imagebuilder.ImageType.AMI,
340
+ imageArchitecture: imagebuilder.ImageArchitecture.X86_64
341
+ });
342
+
343
+ // Ubuntu 22.04 AMI for ARM64
344
+ const ubuntu2204Ami = imagebuilder.AmazonManagedImage.ubuntuServer2204(this, 'Ubuntu2204', {
345
+ imageType: imagebuilder.ImageType.AMI,
346
+ imageArchitecture: imagebuilder.ImageArchitecture.ARM64
347
+ });
348
+
349
+ // Windows Server 2022 Full AMI
350
+ const windows2022Ami = imagebuilder.AmazonManagedImage.windowsServer2022Full(this, 'Windows2022', {
351
+ imageType: imagebuilder.ImageType.AMI,
352
+ imageArchitecture: imagebuilder.ImageArchitecture.X86_64
353
+ });
354
+
355
+ // Use as base image in recipe
356
+ const managedImageRecipe = new imagebuilder.ImageRecipe(this, 'ManagedImageRecipe', {
357
+ baseImage: amazonLinux2023Ami.toBaseImage()
358
+ });
359
+ ```
360
+
361
+ ##### Custom AWS-Managed Images
362
+
363
+ Import AWS-managed images by name or attributes:
364
+
365
+ ```ts
366
+ // Import by name
367
+ const managedImageByName = imagebuilder.AmazonManagedImage.fromAmazonManagedImageName(
368
+ this,
369
+ 'ManagedImageByName',
370
+ 'amazon-linux-2023-x86'
371
+ );
372
+
373
+ // Import by attributes with specific version
374
+ const managedImageByAttributes = imagebuilder.AmazonManagedImage.fromAmazonManagedImageAttributes(this, 'ManagedImageByAttributes', {
375
+ imageName: 'ubuntu-server-22-lts-x86',
376
+ imageVersion: '2024.11.25'
377
+ });
378
+ ```
379
+
380
+ #### Image Configuration
381
+
382
+ ##### Infrastructure and Distribution in Images
383
+
384
+ Configure custom infrastructure and distribution settings:
385
+
386
+ ```ts
387
+ const infrastructureConfiguration = new imagebuilder.InfrastructureConfiguration(this, 'Infrastructure', {
388
+ infrastructureConfigurationName: 'production-infrastructure',
389
+ instanceTypes: [
390
+ ec2.InstanceType.of(ec2.InstanceClass.COMPUTE7_INTEL, ec2.InstanceSize.LARGE)
391
+ ],
392
+ vpc: vpc,
393
+ subnetSelection: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }
394
+ });
395
+
396
+ const distributionConfiguration = new imagebuilder.DistributionConfiguration(this, 'Distribution');
397
+ distributionConfiguration.addAmiDistributions({
398
+ amiName: 'production-ami-{{ imagebuilder:buildDate }}',
399
+ amiTargetAccountIds: ['123456789012', '098765432109']
400
+ });
401
+
402
+ const productionImage = new imagebuilder.Image(this, 'ProductionImage', {
403
+ recipe: exampleImageRecipe,
404
+ infrastructureConfiguration: infrastructureConfiguration,
405
+ distributionConfiguration: distributionConfiguration
406
+ });
407
+ ```
408
+
409
+ ##### Logging Configuration
410
+
411
+ Configure custom CloudWatch log groups for image builds:
412
+
413
+ ```ts
414
+ const logGroup = new logs.LogGroup(this, 'ImageLogGroup', {
415
+ logGroupName: '/custom/imagebuilder/image/logs',
416
+ retention: logs.RetentionDays.ONE_MONTH
417
+ });
418
+
419
+ const loggedImage = new imagebuilder.Image(this, 'LoggedImage', {
420
+ recipe: exampleImageRecipe,
421
+ logGroup: logGroup
422
+ });
423
+ ```
424
+
425
+ ##### Workflow Integration in Images
426
+
427
+ Use workflows for custom build, test, and distribution processes:
428
+
429
+ ```ts
430
+ const imageWithWorkflows = new imagebuilder.Image(this, 'ImageWithWorkflows', {
431
+ recipe: exampleImageRecipe,
432
+ workflows: [
433
+ { workflow: imagebuilder.AwsManagedWorkflow.buildImage(this, 'BuildWorkflow') },
434
+ { workflow: imagebuilder.AwsManagedWorkflow.testImage(this, 'TestWorkflow') }
435
+ ]
436
+ });
437
+ ```
438
+
439
+ ##### Advanced Features in Images
440
+
441
+ Configure image scanning, metadata collection, and testing:
442
+
443
+ ```ts
444
+ const scanningRepository = new ecr.Repository(this, 'ScanningRepository');
445
+
446
+ const advancedContainerImage = new imagebuilder.Image(this, 'AdvancedContainerImage', {
447
+ recipe: exampleContainerRecipe,
448
+ imageScanningEnabled: true,
449
+ imageScanningEcrRepository: scanningRepository,
450
+ imageScanningEcrTags: ['security-scan', 'latest'],
451
+ enhancedImageMetadataEnabled: true,
452
+ imageTestsEnabled: false // Skip testing for faster builds
453
+ });
454
+ ```
455
+
456
+ #### Importing Images
457
+
458
+ Reference existing images created outside CDK:
459
+
460
+ ```ts
461
+ // Import by name
462
+ const existingImageByName = imagebuilder.Image.fromImageName(
463
+ this,
464
+ 'ExistingImageByName',
465
+ 'my-existing-image'
466
+ );
467
+
468
+ // Import by ARN
469
+ const existingImageByArn = imagebuilder.Image.fromImageArn(
470
+ this,
471
+ 'ExistingImageByArn',
472
+ 'arn:aws:imagebuilder:us-east-1:123456789012:image/imported-image/1.0.0'
473
+ );
474
+
475
+ // Import by attributes
476
+ const existingImageByAttributes = imagebuilder.Image.fromImageAttributes(this, 'ExistingImageByAttributes', {
477
+ imageName: 'shared-base-image',
478
+ imageVersion: '2024.11.25'
479
+ });
480
+
481
+ // Grant permissions to imported images
482
+ const role = new iam.Role(this, 'ImageAccessRole', {
483
+ assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com')
484
+ });
485
+
486
+ existingImageByName.grantRead(role);
487
+ existingImageByArn.grant(role, 'imagebuilder:GetImage', 'imagebuilder:ListImagePackages');
488
+ ```
489
+
289
490
  ### Image Recipe
290
491
 
291
492
  #### Image Recipe Basic Usage
@@ -396,7 +597,7 @@ const imageRecipe = new imagebuilder.ImageRecipe(this, 'ComponentImageRecipe', {
396
597
  Use pre-built AWS components:
397
598
 
398
599
  ```ts
399
- const imageRecipe = new imagebuilder.ImageRecipe(this, 'AwsManagedImageRecipe', {
600
+ const imageRecipe = new imagebuilder.ImageRecipe(this, 'AmazonManagedImageRecipe', {
400
601
  baseImage: imagebuilder.BaseImage.fromSsmParameterName(
401
602
  '/aws/service/ami-amazon-linux-latest/al2023-ami-minimal-kernel-default-x86_64'
402
603
  ),
@@ -1103,7 +1304,8 @@ containerDistributionConfiguration.addContainerDistributions({
1103
1304
 
1104
1305
  ### Workflow
1105
1306
 
1106
- Workflows define the sequence of steps that Image Builder performs during image creation. There are three workflow types: BUILD (image building), TEST (testing images), and DISTRIBUTION (distributing container images).
1307
+ Workflows define the sequence of steps that Image Builder performs during image creation. There are three workflow
1308
+ types: BUILD (image building), TEST (testing images), and DISTRIBUTION (distributing container images).
1107
1309
 
1108
1310
  #### Basic Workflow Usage
1109
1311
 
@@ -1264,7 +1466,8 @@ const workflowFromS3 = new imagebuilder.Workflow(this, 'S3Workflow', {
1264
1466
 
1265
1467
  #### Encrypt workflow data with a KMS key
1266
1468
 
1267
- You can encrypt workflow data with a KMS key, so that only principals with access to decrypt with the key are able to access the workflow data.
1469
+ You can encrypt workflow data with a KMS key, so that only principals with access to decrypt with the key are able to
1470
+ access the workflow data.
1268
1471
 
1269
1472
  ```ts
1270
1473
  const workflow = new imagebuilder.Workflow(this, 'EncryptedWorkflow', {
@@ -1327,7 +1530,9 @@ const distributeContainerWorkflow = imagebuilder.AwsManagedWorkflow.distributeCo
1327
1530
 
1328
1531
  ### Lifecycle Policy
1329
1532
 
1330
- Lifecycle policies help you manage the retention and cleanup of Image Builder resources automatically. These policies define rules for deprecating or deleting old image versions, managing AMI snapshots, and controlling resource costs by removing unused images based on age, count, or other criteria.
1533
+ Lifecycle policies help you manage the retention and cleanup of Image Builder resources automatically. These policies
1534
+ define rules for deprecating or deleting old image versions, managing AMI snapshots, and controlling resource costs by
1535
+ removing unused images based on age, count, or other criteria.
1331
1536
 
1332
1537
  #### Lifecycle Policy Basic Usage
1333
1538
 
@@ -1642,7 +1847,7 @@ const disabledPolicy = new imagebuilder.LifecyclePolicy(this, 'DisabledPolicy',
1642
1847
 
1643
1848
  ##### Importing Lifecycle Policies
1644
1849
 
1645
- Reference lifecycle policies created outside of CDK:
1850
+ Reference lifecycle policies created outside CDK:
1646
1851
 
1647
1852
  ```ts
1648
1853
  // Import by name
@@ -1660,5 +1865,5 @@ const importedByArn = imagebuilder.LifecyclePolicy.fromLifecyclePolicyArn(
1660
1865
  );
1661
1866
 
1662
1867
  importedByName.grantRead(lambdaRole);
1663
- importedByArn.grant(lambdaRole, 'imagebuilder:PutLifecyclePolicy');
1868
+ importedByArn.grant(lambdaRole, 'imagebuilder:UpdateLifecyclePolicy');
1664
1869
  ```
@@ -95,11 +95,11 @@ Mixins operate on construct trees and can be applied selectively:
95
95
  Mixins.of(scope).apply(new EncryptionAtRest());
96
96
 
97
97
  // Apply to specific resource types
98
- Mixins.of(scope, ConstructSelector.resourcesOfType(s3.CfnBucket))
98
+ Mixins.of(scope, ConstructSelector.resourcesOfType(s3.CfnBucket.CFN_RESOURCE_TYPE_NAME))
99
99
  .apply(new EncryptionAtRest());
100
100
 
101
- // Apply to constructs matching a pattern
102
- Mixins.of(scope, ConstructSelector.byId(/.*-prod-.*/))
101
+ // Apply to constructs matching a path pattern
102
+ Mixins.of(scope, ConstructSelector.byPath("**/*-prod-*/**"))
103
103
  .apply(new ProductionSecurityMixin());
104
104
  ```
105
105
 
@@ -140,7 +140,7 @@ Configures vended logs delivery for supported resources to various destinations:
140
140
 
141
141
  ```typescript
142
142
  import '@aws-cdk/mixins-preview/with';
143
- import * as cloudfrontMixins from '@aws-cdk/mixins-preview/aws_cloudfront/mixins';
143
+ import * as cloudfrontMixins from '@aws-cdk/mixins-preview/aws-cloudfront/mixins';
144
144
 
145
145
  // Create CloudFront distribution
146
146
  declare const bucket: s3.Bucket;
@@ -197,9 +197,9 @@ Mixins.of(bucket).apply(new CfnBucketPropsMixin(
197
197
  Property mixins are available for all AWS services:
198
198
 
199
199
  ```typescript
200
- import { CfnLogGroupPropsMixin } from '@aws-cdk/mixins-preview/aws_logs/mixins';
201
- import { CfnFunctionPropsMixin } from '@aws-cdk/mixins-preview/aws_lambda/mixins';
202
- import { CfnTablePropsMixin } from '@aws-cdk/mixins-preview/aws_dynamodb/mixins';
200
+ import { CfnLogGroupPropsMixin } from '@aws-cdk/mixins-preview/aws-logs/mixins';
201
+ import { CfnFunctionPropsMixin } from '@aws-cdk/mixins-preview/aws-lambda/mixins';
202
+ import { CfnTablePropsMixin } from '@aws-cdk/mixins-preview/aws-dynamodb/mixins';
203
203
  ```
204
204
 
205
205
  ### Error Handling
@@ -225,7 +225,7 @@ CDK Mixins automatically generates typed EventBridge event patterns for AWS reso
225
225
  ### Event Patterns Basic Usage
226
226
 
227
227
  ```typescript
228
- import { BucketEvents } from '@aws-cdk/mixins-preview/aws_s3/events';
228
+ import { BucketEvents } from '@aws-cdk/mixins-preview/aws-s3/events';
229
229
  import * as events from 'aws-cdk-lib/aws-events';
230
230
  import * as targets from 'aws-cdk-lib/aws-events-targets';
231
231
 
@@ -259,7 +259,7 @@ new events.CfnRule(scope, 'CfnRule', {
259
259
  **Automatic Resource Injection**: Resource identifiers are automatically included in patterns
260
260
 
261
261
  ```typescript
262
- import { BucketEvents } from '@aws-cdk/mixins-preview/aws_s3/events';
262
+ import { BucketEvents } from '@aws-cdk/mixins-preview/aws-s3/events';
263
263
 
264
264
  declare const bucket: s3.Bucket;
265
265
  const bucketEvents = BucketEvents.fromBucket(bucket);
@@ -272,7 +272,7 @@ const pattern = bucketEvents.objectCreatedPattern();
272
272
  **Event Metadata Support**: Control EventBridge pattern metadata
273
273
 
274
274
  ```typescript
275
- import { BucketEvents } from '@aws-cdk/mixins-preview/aws_s3/events';
275
+ import { BucketEvents } from '@aws-cdk/mixins-preview/aws-s3/events';
276
276
 
277
277
  declare const bucket: s3.Bucket;
278
278
  const bucketEvents = BucketEvents.fromBucket(bucket);
@@ -299,5 +299,5 @@ Event patterns are generated for EventBridge events available in the AWS Event S
299
299
  Import events from service-specific modules:
300
300
 
301
301
  ```typescript
302
- import { BucketEvents } from '@aws-cdk/mixins-preview/aws_s3/events';
302
+ import { BucketEvents } from '@aws-cdk/mixins-preview/aws-s3/events';
303
303
  ```
@@ -24,13 +24,13 @@ import {
24
24
  import * as path from 'path';
25
25
 
26
26
  const SCHEMA_STR =
27
- `{
27
+ `{
28
28
  "$schema": "http://json-schema.org/draft-07/schema#",
29
29
  "type": "string"
30
30
  }`;
31
31
 
32
32
  const LAMBDA_CODE =
33
- `
33
+ `
34
34
  def handler(event, context):
35
35
  print('This is my dummy validator')
36
36
  `;
@@ -56,7 +56,7 @@ function asgHandler(_event: any, _context: any, callback: any) {
56
56
  json.Instances.forEach((instance: any) => {
57
57
  instanceIds.push(instance.InstanceId);
58
58
  });
59
- // eslint-disable-next-line quote-props
59
+ // eslint-disable-next-line @stylistic/quote-props
60
60
  const result = { 'InstanceIDs': instanceIds };
61
61
  return callback(undefined, result);
62
62
  }
@@ -10,8 +10,6 @@ import { App, CfnOutput, CustomResource, CustomResourceProvider, CustomResourceP
10
10
  import { Construct } from 'constructs';
11
11
  import { IntegTest } from '@aws-cdk/integ-tests-alpha';
12
12
 
13
- /* eslint-disable @cdklabs/no-core-construct */
14
-
15
13
  class TestStack extends Stack {
16
14
  constructor(scope: Construct, id: string) {
17
15
  super(scope, id);
@@ -10,8 +10,6 @@ import { App, CfnOutput, CustomResource, CustomResourceProvider, Stack, Token }
10
10
  import { Construct } from 'constructs';
11
11
  import { STANDARD_CUSTOM_RESOURCE_PROVIDER_RUNTIME } from '../../config';
12
12
 
13
- /* eslint-disable @cdklabs/no-core-construct */
14
-
15
13
  class TestStack extends Stack {
16
14
  constructor(scope: Construct, id: string) {
17
15
  super(scope, id);
@@ -6,8 +6,6 @@ import { App, CfnParameter, NestedStack, Stack } from 'aws-cdk-lib';
6
6
  import { Construct } from 'constructs';
7
7
  import { STANDARD_NODEJS_RUNTIME } from '../../config';
8
8
 
9
- /* eslint-disable @cdklabs/no-core-construct */
10
-
11
9
  interface MyNestedStackProps {
12
10
  readonly subscriber?: sqs.Queue;
13
11
  readonly siblingTopic?: sns.Topic; // a topic defined in a sibling nested stack
@@ -4,8 +4,6 @@ import { App, NestedStack, Stack } from 'aws-cdk-lib';
4
4
  import { Construct } from 'constructs';
5
5
  import { STANDARD_NODEJS_RUNTIME } from '../../config';
6
6
 
7
- /* eslint-disable @cdklabs/no-core-construct */
8
-
9
7
  class MyNestedStack extends NestedStack {
10
8
  constructor(scope: Construct, id: string) {
11
9
  super(scope, id);
@@ -2,8 +2,6 @@ import * as sns from 'aws-cdk-lib/aws-sns';
2
2
  import { App, NestedStack, Stack } from 'aws-cdk-lib';
3
3
  import { Construct } from 'constructs';
4
4
 
5
- /* eslint-disable @cdklabs/no-core-construct */
6
-
7
5
  class YourNestedStack extends NestedStack {
8
6
  constructor(scope: Construct, id: string) {
9
7
  super(scope, id);
@@ -9,7 +9,7 @@ type StackConfiguration = {
9
9
  vpcProps?: ec2.VpcProps;
10
10
  subnetSelection?: ec2.SubnetSelection;
11
11
  securityGroupProps?: Array<Omit<ec2.SecurityGroupProps, 'vpc'>>;
12
- }
12
+ };
13
13
  const configurations: Array<StackConfiguration> = [
14
14
  {
15
15
  computeConfiguration: {
@@ -9,7 +9,7 @@ type StackConfiguration = {
9
9
  vpcProps?: ec2.VpcProps;
10
10
  subnetSelection?: ec2.SubnetSelection;
11
11
  securityGroupProps?: Array<Omit<ec2.SecurityGroupProps, 'vpc'>>;
12
- }
12
+ };
13
13
  const configurations: Array<StackConfiguration> = [
14
14
  {
15
15
  computeConfiguration: {
@@ -4,7 +4,7 @@ import * as codepipeline from 'aws-cdk-lib/aws-codepipeline';
4
4
  import * as cdk from 'aws-cdk-lib';
5
5
  import * as cpactions from 'aws-cdk-lib/aws-codepipeline-actions';
6
6
 
7
- /* eslint-disable quote-props */
7
+ /* eslint-disable @stylistic/quote-props */
8
8
 
9
9
  const app = new cdk.App({
10
10
  postCliContext: {
@@ -24,16 +24,16 @@ const repo = new codecommit.Repository(stack, 'MyRepo', {
24
24
  });
25
25
 
26
26
  const eventPattern
27
- = {
28
- 'detail-type': ['CodeCommit Repository State Change'],
29
- 'resources': [repo.repositoryArn],
30
- 'source': ['aws.codecommit'],
31
- 'detail': {
32
- referenceType: ['branch'],
33
- event: ['referenceCreated', 'referenceUpdated'],
34
- referenceName: [branch],
35
- },
36
- };
27
+ = {
28
+ 'detail-type': ['CodeCommit Repository State Change'],
29
+ 'resources': [repo.repositoryArn],
30
+ 'source': ['aws.codecommit'],
31
+ 'detail': {
32
+ referenceType: ['branch'],
33
+ event: ['referenceCreated', 'referenceUpdated'],
34
+ referenceName: [branch],
35
+ },
36
+ };
37
37
 
38
38
  const pipeline = new codepipeline.Pipeline(stack, 'Pipeline', {
39
39
  pipelineName: 'IntegCustomEventPipeline',
@@ -7,7 +7,7 @@ import * as s3 from 'aws-cdk-lib/aws-s3';
7
7
  import * as cdk from 'aws-cdk-lib';
8
8
  import * as cpactions from 'aws-cdk-lib/aws-codepipeline-actions';
9
9
 
10
- /* eslint-disable quote-props */
10
+ /* eslint-disable @stylistic/quote-props */
11
11
 
12
12
  const app = new cdk.App({
13
13
  postCliContext: {
@@ -404,9 +404,9 @@ const table = new dynamodb.TableV2(this, 'Table', {
404
404
  });
405
405
  ```
406
406
 
407
- #### Compound Keys
407
+ #### Multi-attribute Keys
408
408
 
409
- Global secondary indexes support compound keys, allowing you to specify multiple partition keys and/or multiple sort keys. This enables more flexible query patterns for complex data models.
409
+ Global secondary indexes support multi-attribute keys, allowing you to specify multiple partition keys and/or multiple sort keys. This enables more flexible query patterns for complex data models.
410
410
 
411
411
  **Key Constraints:**
412
412
  - You can specify up to **4 partition keys** per global secondary index
@@ -417,14 +417,14 @@ Global secondary indexes support compound keys, allowing you to specify multiple
417
417
  - For multiple keys, you **must** use the plural parameters (`partitionKeys` and/or `sortKeys`)
418
418
  - **Keys cannot be added or modified after index creation** - attempting to add additional keys to an existing index will result in an error
419
419
 
420
- **Example with compound partition and sort keys:**
420
+ **Example with multi-attribute partition and sort keys:**
421
421
 
422
422
  ```ts
423
423
  const table = new dynamodb.TableV2(this, 'Table', {
424
424
  partitionKey: { name: 'pk', type: dynamodb.AttributeType.STRING },
425
425
  globalSecondaryIndexes: [
426
426
  {
427
- indexName: 'compound-gsi',
427
+ indexName: 'multi-attribute-gsi',
428
428
  partitionKeys: [
429
429
  { name: 'gsi_pk1', type: dynamodb.AttributeType.STRING },
430
430
  { name: 'gsi_pk2', type: dynamodb.AttributeType.NUMBER },
@@ -456,12 +456,12 @@ table.addGlobalSecondaryIndex({
456
456
  partitionKey: { name: 'pk', type: dynamodb.AttributeType.STRING },
457
457
  });
458
458
 
459
- // Add a GSI with compound keys
459
+ // Add a GSI with multi-attribute keys
460
460
  table.addGlobalSecondaryIndex({
461
- indexName: 'compound-gsi2',
461
+ indexName: 'multi-attribute-gsi2',
462
462
  partitionKeys: [
463
- { name: 'compound_pk1', type: dynamodb.AttributeType.STRING },
464
- { name: 'compound_pk2', type: dynamodb.AttributeType.NUMBER },
463
+ { name: 'multi-attribute_pk1', type: dynamodb.AttributeType.STRING },
464
+ { name: 'multi-attribute_pk2', type: dynamodb.AttributeType.NUMBER },
465
465
  ],
466
466
  sortKey: { name: 'sk', type: dynamodb.AttributeType.STRING },
467
467
  });