konokenj.cdk-api-mcp-server 0.61.0__py3-none-any.whl → 0.62.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.
Files changed (19) hide show
  1. cdk_api_mcp_server/__about__.py +1 -1
  2. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-glue-alpha/README.md +3 -3
  3. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-imagebuilder-alpha/README.md +216 -11
  4. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.policy.ts +9 -1
  5. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.ts +1 -0
  6. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md +34 -7
  7. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-metadata-options.ts +51 -0
  8. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md +190 -0
  9. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.capacity-provider-all-fields.ts +61 -0
  10. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.capacity-provider-defaults.ts +34 -0
  11. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.function-capacity-provider-all-fields.ts +57 -0
  12. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.function-capacity-provider-minimal.ts +42 -0
  13. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.version-scaling-config-all-fields.ts +48 -0
  14. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts +1 -0
  15. {konokenj_cdk_api_mcp_server-0.61.0.dist-info → konokenj_cdk_api_mcp_server-0.62.0.dist-info}/METADATA +2 -2
  16. {konokenj_cdk_api_mcp_server-0.61.0.dist-info → konokenj_cdk_api_mcp_server-0.62.0.dist-info}/RECORD +19 -13
  17. {konokenj_cdk_api_mcp_server-0.61.0.dist-info → konokenj_cdk_api_mcp_server-0.62.0.dist-info}/WHEEL +1 -1
  18. {konokenj_cdk_api_mcp_server-0.61.0.dist-info → konokenj_cdk_api_mcp_server-0.62.0.dist-info}/entry_points.txt +0 -0
  19. {konokenj_cdk_api_mcp_server-0.61.0.dist-info → konokenj_cdk_api_mcp_server-0.62.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.62.0"
@@ -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
  ```
@@ -33,10 +33,18 @@ class TestStack extends Stack {
33
33
  removalPolicy: RemovalPolicy.DESTROY,
34
34
  resourcePolicy: docu,
35
35
  });
36
+
37
+ const table = new dynamodb.TableV2(this, 'TableTestV2-2', {
38
+ partitionKey: {
39
+ name: 'id',
40
+ type: dynamodb.AttributeType.STRING,
41
+ },
42
+ });
43
+ table.grantReadData(new iam.AccountRootPrincipal());
36
44
  }
37
45
  }
38
46
 
39
- const stack = new TestStack(app, 'ResourcePolicyTest-v2', { env: { region: 'eu-west-1' } });
47
+ const stack = new TestStack(app, 'ResourcePolicyTest-v2');
40
48
 
41
49
  new IntegTest(app, 'table-v2-resource-policy-integ-test', {
42
50
  testCases: [stack],
@@ -147,6 +147,7 @@ tableWithCMK.grantStreamRead(role);
147
147
 
148
148
  const user = new iam.User(stack, 'User');
149
149
  table.grantReadData(user);
150
+ table.grantReadData(new iam.AccountRootPrincipal());
150
151
  tableWithGlobalAndLocalSecondaryIndex.grantReadData(user);
151
152
 
152
153
  app.synth();
@@ -1939,30 +1939,57 @@ The `volumeInitializationRate` must be:
1939
1939
 
1940
1940
  ### Configuring Instance Metadata Service (IMDS)
1941
1941
 
1942
- #### Toggling IMDSv1
1942
+ #### Comprehensive Metadata Options
1943
1943
 
1944
- You can configure [EC2 Instance Metadata Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) options to either
1945
- allow both IMDSv1 and IMDSv2 or enforce IMDSv2 when interacting with the IMDS.
1946
-
1947
- To do this for a single `Instance`, you can use the `requireImdsv2` property.
1948
- The example below demonstrates IMDSv2 being required on a single `Instance`:
1944
+ You can configure [EC2 Instance Metadata Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) options using individual properties. This provides comprehensive control over all metadata service settings:
1949
1945
 
1950
1946
  ```ts
1951
1947
  declare const vpc: ec2.Vpc;
1952
1948
  declare const instanceType: ec2.InstanceType;
1953
1949
  declare const machineImage: ec2.IMachineImage;
1954
1950
 
1951
+ // Example 1: Enforce IMDSv2 with comprehensive options
1955
1952
  new ec2.Instance(this, 'Instance', {
1956
1953
  vpc,
1957
1954
  instanceType,
1958
1955
  machineImage,
1956
+ httpEndpoint: true,
1957
+ httpProtocolIpv6: false,
1958
+ httpPutResponseHopLimit: 2,
1959
+ httpTokens: ec2.HttpTokens.REQUIRED,
1960
+ instanceMetadataTags: true,
1961
+ });
1959
1962
 
1960
- // ...
1963
+ // Example 2: Enforce IMDSv2 with minimal configuration
1964
+ new ec2.Instance(this, 'SecureInstance', {
1965
+ vpc,
1966
+ instanceType,
1967
+ machineImage,
1968
+ httpTokens: ec2.HttpTokens.REQUIRED,
1969
+ });
1970
+ ```
1971
+
1972
+ #### Simple IMDSv2 Enforcement
1973
+
1974
+ For simple IMDSv2 enforcement without additional configuration, you can use the `requireImdsv2` property:
1961
1975
 
1976
+ ```ts
1977
+ declare const vpc: ec2.Vpc;
1978
+ declare const instanceType: ec2.InstanceType;
1979
+ declare const machineImage: ec2.IMachineImage;
1980
+
1981
+ new ec2.Instance(this, 'Instance', {
1982
+ vpc,
1983
+ instanceType,
1984
+ machineImage,
1985
+
1986
+ // Simple IMDSv2 enforcement
1962
1987
  requireImdsv2: true,
1963
1988
  });
1964
1989
  ```
1965
1990
 
1991
+ #### Applying to Multiple Instances
1992
+
1966
1993
  You can also use the either the `InstanceRequireImdsv2Aspect` for EC2 instances or the `LaunchTemplateRequireImdsv2Aspect` for EC2 launch templates
1967
1994
  to apply the operation to multiple instances or launch templates, respectively.
1968
1995
 
@@ -0,0 +1,51 @@
1
+ import * as cdk from 'aws-cdk-lib';
2
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
3
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
4
+
5
+ const app = new cdk.App();
6
+
7
+ class TestStack extends cdk.Stack {
8
+ constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
9
+ super(scope, id, props);
10
+
11
+ const vpc = new ec2.Vpc(this, 'VPC', {
12
+ maxAzs: 3,
13
+ natGateways: 1,
14
+ });
15
+
16
+ // Test instance with comprehensive metadata options
17
+ new ec2.Instance(this, 'InstanceWithMetadataOptions', {
18
+ vpc,
19
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.NANO),
20
+ machineImage: new ec2.AmazonLinuxImage({ generation: ec2.AmazonLinuxGeneration.AMAZON_LINUX_2 }),
21
+ httpEndpoint: true,
22
+ httpProtocolIpv6: false,
23
+ httpPutResponseHopLimit: 2,
24
+ httpTokens: ec2.HttpTokens.REQUIRED,
25
+ instanceMetadataTags: true,
26
+ });
27
+
28
+ // Test instance with partial metadata options
29
+ new ec2.Instance(this, 'InstanceWithPartialMetadataOptions', {
30
+ vpc,
31
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.NANO),
32
+ machineImage: new ec2.AmazonLinuxImage({ generation: ec2.AmazonLinuxGeneration.AMAZON_LINUX_2 }),
33
+ httpTokens: ec2.HttpTokens.REQUIRED,
34
+ instanceMetadataTags: true,
35
+ });
36
+
37
+ // Test instance with backward compatibility (requireImdsv2)
38
+ new ec2.Instance(this, 'InstanceWithRequireImdsv2', {
39
+ vpc,
40
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.NANO),
41
+ machineImage: new ec2.AmazonLinuxImage({ generation: ec2.AmazonLinuxGeneration.AMAZON_LINUX_2 }),
42
+ requireImdsv2: true,
43
+ });
44
+ }
45
+ }
46
+
47
+ const testCase = new TestStack(app, 'integ-ec2-instance-metadata-options');
48
+
49
+ new IntegTest(app, 'instance-metadata-options-test', {
50
+ testCases: [testCase],
51
+ });
@@ -733,6 +733,196 @@ new lambda.LayerVersion(this, 'MyLayer', {
733
733
  });
734
734
  ```
735
735
 
736
+ ## Capacity Providers
737
+
738
+ Lambda capacity providers allow you to run Lambda functions on dedicated compute resources instead of the default serverless execution environment. Capacity providers can have multiple functions and function versions associated with them, but a function can be attached to at most one capacity provider.
739
+
740
+ ### Creating a Capacity Provider
741
+
742
+ To create a capacity provider, you need to specify the VPC configuration and optionally configure permissions, scaling, and instance requirements:
743
+
744
+ ```ts
745
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
746
+
747
+ // Create a VPC for the capacity provider
748
+ const vpc = new ec2.Vpc(this, 'MyVpc');
749
+ const securityGroup = new ec2.SecurityGroup(this, 'SecurityGroup', { vpc });
750
+
751
+ // Create a basic capacity provider
752
+ const capacityProvider = new lambda.CapacityProvider(this, 'MyCapacityProvider', {
753
+ capacityProviderName: 'my-capacity-provider',
754
+ subnets: vpc.privateSubnets,
755
+ securityGroups: [securityGroup],
756
+ });
757
+ ```
758
+
759
+ By default, permissions are granted to the capacity provider to manage instances using the AWS managed policy AWSLambdaManagedEC2ResourceOperator. You can also supply a custom role via the `operatorRole` parameter.
760
+
761
+ ### Configuring Scaling Policies
762
+
763
+ You can configure target tracking scaling policies to automatically scale your capacity provider based on CPU utilization:
764
+
765
+ ```ts
766
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
767
+
768
+ const vpc = new ec2.Vpc(this, 'MyVpc');
769
+ const securityGroup = new ec2.SecurityGroup(this, 'SecurityGroup', { vpc });
770
+
771
+ const capacityProvider = new lambda.CapacityProvider(this, 'MyCapacityProvider', {
772
+ subnets: vpc.privateSubnets,
773
+ securityGroups: [securityGroup],
774
+ scalingOptions: lambda.ScalingOptions.manual([
775
+ lambda.TargetTrackingScalingPolicy.cpuUtilization(70),
776
+ ]),
777
+ });
778
+ ```
779
+
780
+ ### Instance Type Configuration
781
+
782
+ You can control which EC2 instance types the capacity provider can use:
783
+
784
+ ```ts
785
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
786
+
787
+ const vpc = new ec2.Vpc(this, 'MyVpc');
788
+ const securityGroup = new ec2.SecurityGroup(this, 'SecurityGroup', { vpc });
789
+
790
+ // Allow only specific instance families
791
+ const allowCapacityProvider = new lambda.CapacityProvider(this, 'MyCapacityProviderAllowed', {
792
+ subnets: vpc.privateSubnets,
793
+ securityGroups: [securityGroup],
794
+ instanceTypeFilter: lambda.InstanceTypeFilter.allow([
795
+ ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.LARGE),
796
+ ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE),
797
+ ]),
798
+ });
799
+
800
+ // Or exclude specific instance types
801
+ const excludeCapacityProvider = new lambda.CapacityProvider(this, 'MyCapacityProviderExcluded', {
802
+ subnets: vpc.privateSubnets,
803
+ securityGroups: [securityGroup],
804
+ instanceTypeFilter: lambda.InstanceTypeFilter.exclude([
805
+ ec2.InstanceType.of(ec2.InstanceClass.T2, ec2.InstanceSize.MICRO),
806
+ ]),
807
+ });
808
+ ```
809
+
810
+ ### Using a Capacity Provider with Lambda Functions
811
+
812
+ Once you have a capacity provider, you can configure Lambda functions to use it:
813
+
814
+ ```ts
815
+ declare const capacityProvider: lambda.CapacityProvider;
816
+
817
+ const fn = new lambda.Function(this, 'MyFunction', {
818
+ // Runtime must be equal to or newer than NODEJS_22_X
819
+ runtime: lambda.Runtime.NODEJS_22_X,
820
+ handler: 'index.handler',
821
+ code: lambda.Code.fromAsset(path.join(__dirname, 'lambda-handler')),
822
+ });
823
+
824
+ // Associate the function with the capacity provider
825
+ capacityProvider.addFunction(fn, {
826
+ perExecutionEnvironmentMaxConcurrency: 10,
827
+ executionEnvironmentMemoryGiBPerVCpu: 4,
828
+ });
829
+ ```
830
+
831
+ Note that once you use a capacity provider in a function, it cannot be removed, only changed.
832
+
833
+ #### CapacityProviderFunctionOptions (addFunction method)
834
+
835
+ | Name | Type | Required | Description |
836
+ |------|------|----------|-------------|
837
+ | perExecutionEnvironmentMaxConcurrency | number | No | Maximum concurrent invokes per execution environment. |
838
+ | executionEnvironmentMemoryGiBPerVCpu | number | No | Memory per VCPU in GiB. |
839
+ | publishToLatestPublished | boolean | No | Whether to automatically publish to $LATEST.PUBLISHED version. |
840
+ | latestPublishedScalingConfig | LatestPublishedScalingConfig | No | Scaling configuration for $LATEST.PUBLISHED version. |
841
+
842
+ #### LatestPublishedScalingConfig
843
+
844
+ | Name | Type | Required | Description |
845
+ |------|------|----------|-------------|
846
+ | minExecutionEnvironments | number | No | Minimum execution environments for $LATEST.PUBLISHED version. |
847
+ | maxExecutionEnvironments | number | No | Maximum execution environments for $LATEST.PUBLISHED version. |
848
+
849
+ ### Capacity Provider Versions
850
+
851
+ When publishing Lambda versions that use capacity providers, you can configure scaling settings specific to each version.
852
+
853
+ To publish a permanent version with specific scaling properties, you can use the [`currentVersion`](#currentversion-updated-hashing-logic) property of the function:
854
+
855
+ ```ts
856
+ const fn = new lambda.Function(this, 'MyFunction', {
857
+ runtime: lambda.Runtime.NODEJS_22_X,
858
+ handler: 'index.handler',
859
+ code: lambda.Code.fromAsset(path.join(__dirname, 'lambda-handler')),
860
+ currentVersionOptions: {
861
+ minExecutionEnvironments: 3,
862
+ }
863
+ });
864
+
865
+ const version = fn.latestVersion
866
+ ```
867
+
868
+ You can also specify scaling properties for the special `$LATEST.PUBLISHED` version when attaching the function to the capacity provider.
869
+
870
+ `$LATEST.PUBLISHED` is a version that is automatically published when you deploy changes to your function.
871
+
872
+ ```ts
873
+ declare const capacityProvider: lambda.CapacityProvider;
874
+ declare const fn: lambda.Function;
875
+
876
+ capacityProvider.addFunction(fn, {
877
+ latestPublishedScalingConfig: {
878
+ minExecutionEnvironments: 5,
879
+ maxExecutionEnvironments: 25,
880
+ },
881
+ });
882
+ ```
883
+
884
+ #### VersionOptions (Capacity Provider Related Fields)
885
+
886
+ | Name | Type | Required | Description |
887
+ |------|------|----------|-------------|
888
+ | minExecutionEnvironments | number | No | Minimum execution environments to maintain for this version. |
889
+ | maxExecutionEnvironments | number | No | Maximum execution environments allowed for this version. |
890
+
891
+ ### Security and Encryption
892
+
893
+ Capacity providers support encryption using AWS KMS keys:
894
+
895
+ ```ts
896
+ import * as kms from 'aws-cdk-lib/aws-kms';
897
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
898
+
899
+ const vpc = new ec2.Vpc(this, 'MyVpc');
900
+ const securityGroup = new ec2.SecurityGroup(this, 'SecurityGroup', { vpc });
901
+ const kmsKey = new kms.Key(this, 'MyKey');
902
+
903
+ const capacityProvider = new lambda.CapacityProvider(this, 'MyCapacityProvider', {
904
+ subnets: vpc.privateSubnets,
905
+ securityGroups: [securityGroup],
906
+ kmsKey: kmsKey,
907
+ });
908
+ ```
909
+
910
+ ### Capacity Provider Configuration Reference
911
+
912
+ #### CapacityProviderProps
913
+
914
+ | Name | Type | Required | Description |
915
+ |------|------|----------|-------------|
916
+ | capacityProviderName | string | No | Name of the capacity provider. Must be unique within the AWS account and region. |
917
+ | securityGroups | ISecurityGroup[] | Yes | Security groups to associate with EC2 instances. Up to 5 allowed. |
918
+ | subnets | ISubnet[] | Yes | Subnets where the capacity provider can launch EC2 instances. 1-16 subnets supported. |
919
+ | operatorRole | IRole | No | IAM role for Lambda to manage the capacity provider. Uses AWS Managed Policy AWSLambdaManagedEC2ResourceOperator by default. |
920
+ | architectures | Architecture[] | No | Instruction set architecture for compute instances. |
921
+ | instanceTypeFilter | InstanceTypeFilter | No | Filter for allowed or excluded instance types. |
922
+ | maxVCpuCount | number | No | Maximum number of EC2 instances for scaling. |
923
+ | scalingOptions | ScalingOptions | No | Scaling configuration including policies. |
924
+ | kmsKey | IKey | No | KMS key for encrypting capacity provider data. |
925
+
736
926
  ## Lambda Insights
737
927
 
738
928
  Lambda functions can be configured to use CloudWatch [Lambda Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Lambda-Insights.html)
@@ -0,0 +1,61 @@
1
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
+ import * as iam from 'aws-cdk-lib/aws-iam';
3
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
4
+ import * as cdk from 'aws-cdk-lib/core';
5
+ import * as integ from '@aws-cdk/integ-tests-alpha';
6
+
7
+ const app = new cdk.App();
8
+ const stack = new cdk.Stack(app, 'CapacityProviderAllFieldsStack');
9
+
10
+ const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2 });
11
+ const securityGroup = new ec2.SecurityGroup(stack, 'SecurityGroup', { vpc });
12
+
13
+ const operatorRole = new iam.Role(stack, 'OperatorRole', {
14
+ assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com'),
15
+ managedPolicies: [iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonLambdaCapacityProviderOperatorRolePolicy')],
16
+ });
17
+
18
+ const capacityProvider = new lambda.CapacityProvider(stack, 'CapacityProvider', {
19
+ capacityProviderName: 'test-capacity-provider',
20
+ subnets: vpc.privateSubnets,
21
+ securityGroups: [securityGroup],
22
+ operatorRole: operatorRole,
23
+ architectures: [lambda.Architecture.X86_64],
24
+ instanceTypeFilter: lambda.InstanceTypeFilter.allow([ec2.InstanceType.of(ec2.InstanceClass.T2, ec2.InstanceSize.MICRO)]),
25
+ maxVCpuCount: 12,
26
+ scalingOptions: lambda.ScalingOptions.manual([
27
+ lambda.TargetTrackingScalingPolicy.cpuUtilization(70),
28
+ ]),
29
+ });
30
+
31
+ const testCase = new integ.IntegTest(app, 'CapacityProviderAllFieldsTest', {
32
+ testCases: [stack],
33
+ });
34
+
35
+ const getCapacityProvider = testCase.assertions.awsApiCall('Lambda', 'GetCapacityProvider', {
36
+ CapacityProviderName: capacityProvider.capacityProviderName,
37
+ });
38
+
39
+ getCapacityProvider.expect(integ.ExpectedResult.objectLike({
40
+ CapacityProviderArn: capacityProvider.capacityProviderArn,
41
+ State: 'Active',
42
+ CapacityProviderScalingConfig: {
43
+ MaxVCpuCount: 12,
44
+ ScalingMode: 'Manual',
45
+ ScalingPolicies: [{
46
+ PredefinedMetricType: 'LambdaCapacityProviderAverageCPUUtilization',
47
+ TargetValue: 70,
48
+ }],
49
+ },
50
+ PermissionsConfig: {
51
+ CapacityProviderOperatorRoleArn: operatorRole.roleArn,
52
+ },
53
+ VpcConfig: {
54
+ SubnetIds: vpc.privateSubnets.map(subnet => subnet.subnetId),
55
+ SecurityGroupIds: [securityGroup.securityGroupId],
56
+ },
57
+ InstanceRequirements: {
58
+ Architectures: ['x86_64'],
59
+ AllowedInstanceTypes: ['t2.micro'],
60
+ },
61
+ }));
@@ -0,0 +1,34 @@
1
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
3
+ import * as cdk from 'aws-cdk-lib/core';
4
+ import * as integ from '@aws-cdk/integ-tests-alpha';
5
+
6
+ const app = new cdk.App();
7
+ const stack = new cdk.Stack(app, 'CapacityProviderDefaultsStack');
8
+
9
+ const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2 });
10
+ const securityGroup = new ec2.SecurityGroup(stack, 'SecurityGroup', { vpc });
11
+
12
+ const capacityProvider = new lambda.CapacityProvider(stack, 'CapacityProvider', {
13
+ subnets: vpc.privateSubnets,
14
+ securityGroups: [securityGroup],
15
+ });
16
+
17
+ const testCase = new integ.IntegTest(app, 'CapacityProviderDefaultsTest', {
18
+ testCases: [stack],
19
+ });
20
+
21
+ const getCapacityProvider = testCase.assertions.awsApiCall('Lambda', 'GetCapacityProvider', {
22
+ CapacityProviderName: capacityProvider.capacityProviderName,
23
+ });
24
+
25
+ getCapacityProvider.expect(integ.ExpectedResult.objectLike({
26
+ State: 'Active',
27
+ PermissionsConfig: {
28
+ CapacityProviderOperatorRoleArn: integ.ExpectedResult.stringLikeRegexp('arn:aws:iam::\\d{12}:role/.+'),
29
+ },
30
+ VpcConfig: {
31
+ SubnetIds: vpc.privateSubnets.map(subnet => subnet.subnetId),
32
+ SecurityGroupIds: [securityGroup.securityGroupId],
33
+ },
34
+ }));
@@ -0,0 +1,57 @@
1
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
3
+ import * as cdk from 'aws-cdk-lib/core';
4
+ import * as integ from '@aws-cdk/integ-tests-alpha';
5
+
6
+ const app = new cdk.App();
7
+ const stack = new cdk.Stack(app, 'FunctionCapacityProviderAllFieldsStack');
8
+
9
+ const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2 });
10
+ const securityGroup = new ec2.SecurityGroup(stack, 'SecurityGroup', { vpc });
11
+
12
+ const capacityProvider = new lambda.CapacityProvider(stack, 'CapacityProvider', {
13
+ subnets: vpc.privateSubnets,
14
+ securityGroups: [securityGroup],
15
+ });
16
+
17
+ const fn = new lambda.Function(stack, 'Function', {
18
+ runtime: lambda.Runtime.NODEJS_LATEST,
19
+ handler: 'index.handler',
20
+ code: lambda.Code.fromInline('exports.handler = async () => ({ statusCode: 200 });'),
21
+ });
22
+
23
+ capacityProvider.addFunction(fn, {
24
+ perExecutionEnvironmentMaxConcurrency: 10,
25
+ executionEnvironmentMemoryGiBPerVCpu: 2,
26
+ publishToLatestPublished: true,
27
+ latestPublishedScalingConfig: {
28
+ minExecutionEnvironments: 1,
29
+ maxExecutionEnvironments: 5,
30
+ },
31
+ });
32
+
33
+ const testCase = new integ.IntegTest(app, 'FunctionCapacityProviderAllFieldsTest', {
34
+ testCases: [stack],
35
+ });
36
+
37
+ const getFunction = testCase.assertions.awsApiCall('Lambda', 'GetFunction', {
38
+ FunctionName: fn.functionName,
39
+ });
40
+
41
+ getFunction.expect(integ.ExpectedResult.objectLike({
42
+ Configuration: {
43
+ State: 'Active',
44
+ PublishToLatestPublished: true,
45
+ CapacityProviderConfig: {
46
+ LambdaManagedInstancesCapacityProviderConfig: {
47
+ CapacityProviderArn: capacityProvider.capacityProviderArn,
48
+ PerExecutionEnvironmentMaxConcurrency: 10,
49
+ ExecutionEnvironmentMemoryGiBPerVCpu: 2,
50
+ },
51
+ },
52
+ FunctionScalingConfig: {
53
+ MinExecutionEnvironments: 1,
54
+ MaxExecutionEnvironments: 5,
55
+ },
56
+ },
57
+ }));
@@ -0,0 +1,42 @@
1
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
3
+ import * as cdk from 'aws-cdk-lib/core';
4
+ import * as integ from '@aws-cdk/integ-tests-alpha';
5
+
6
+ const app = new cdk.App();
7
+ const stack = new cdk.Stack(app, 'FunctionCapacityProviderMinimalStack');
8
+
9
+ const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2 });
10
+ const securityGroup = new ec2.SecurityGroup(stack, 'SecurityGroup', { vpc });
11
+
12
+ const capacityProvider = new lambda.CapacityProvider(stack, 'CapacityProvider', {
13
+ subnets: vpc.privateSubnets,
14
+ securityGroups: [securityGroup],
15
+ });
16
+
17
+ const fn = new lambda.Function(stack, 'Function', {
18
+ runtime: lambda.Runtime.NODEJS_LATEST,
19
+ handler: 'index.handler',
20
+ code: lambda.Code.fromInline('exports.handler = async () => ({ statusCode: 200 });'),
21
+ });
22
+
23
+ capacityProvider.addFunction(fn);
24
+
25
+ const testCase = new integ.IntegTest(app, 'FunctionCapacityProviderMinimalTest', {
26
+ testCases: [stack],
27
+ });
28
+
29
+ const getFunction = testCase.assertions.awsApiCall('Lambda', 'GetFunction', {
30
+ FunctionName: fn.functionName,
31
+ });
32
+
33
+ getFunction.expect(integ.ExpectedResult.objectLike({
34
+ Configuration: {
35
+ State: 'Active',
36
+ CapacityProviderConfig: {
37
+ LambdaManagedInstancesCapacityProviderConfig: {
38
+ CapacityProviderArn: capacityProvider.capacityProviderArn,
39
+ },
40
+ },
41
+ },
42
+ }));
@@ -0,0 +1,48 @@
1
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
3
+ import * as cdk from 'aws-cdk-lib/core';
4
+ import * as integ from '@aws-cdk/integ-tests-alpha';
5
+
6
+ const app = new cdk.App();
7
+ const stack = new cdk.Stack(app, 'VersionScalingConfigAllFieldsStack');
8
+
9
+ const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2 });
10
+ const securityGroup = new ec2.SecurityGroup(stack, 'SecurityGroup', { vpc });
11
+
12
+ const capacityProvider = new lambda.CapacityProvider(stack, 'CapacityProvider', {
13
+ subnets: vpc.privateSubnets,
14
+ securityGroups: [securityGroup],
15
+ });
16
+
17
+ const fn = new lambda.Function(stack, 'Function', {
18
+ runtime: lambda.Runtime.NODEJS_LATEST,
19
+ handler: 'index.handler',
20
+ code: lambda.Code.fromInline('exports.handler = async () => ({ statusCode: 200 });'),
21
+ currentVersionOptions: {
22
+ minExecutionEnvironments: 1,
23
+ maxExecutionEnvironments: 5,
24
+ },
25
+ });
26
+
27
+ capacityProvider.addFunction(fn);
28
+
29
+ const version = fn.currentVersion;
30
+
31
+ const testCase = new integ.IntegTest(app, 'VersionScalingConfigAllFieldsTest', {
32
+ testCases: [stack],
33
+ });
34
+
35
+ const listVersionsByFunction = testCase.assertions.awsApiCall('Lambda', 'listVersionsByFunction', {
36
+ FunctionName: version.functionArn,
37
+ });
38
+
39
+ listVersionsByFunction.expect(integ.ExpectedResult.objectLike({
40
+ Versions: [
41
+ {
42
+ FunctionScalingConfig: {
43
+ MinExecutionEnvironments: 1,
44
+ MaxExecutionEnvironments: 5,
45
+ },
46
+ },
47
+ ],
48
+ }));
@@ -12,6 +12,7 @@ class TestStack extends Stack {
12
12
  opensearch.EngineVersion.OPENSEARCH_2_15,
13
13
  opensearch.EngineVersion.OPENSEARCH_2_17,
14
14
  opensearch.EngineVersion.OPENSEARCH_3_1,
15
+ opensearch.EngineVersion.OPENSEARCH_3_3,
15
16
  ];
16
17
 
17
18
  // deploy opensearch domain with minimal configuration
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: konokenj.cdk-api-mcp-server
3
- Version: 0.61.0
3
+ Version: 0.62.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.229.1-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.230.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=K0yl0BYcoJjpNacBBbmXpqgvDl9_hRNyLXsRo6FPirs,129
1
+ cdk_api_mcp_server/__about__.py,sha256=1HnEdNbIjvzh5HqPPiuiu3VNk_w_4fL-cAZh7lzUeCg,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,8 +19,8 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/MANUAL
19
19
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/README.md,sha256=QaTmJ96HpXe5Iu32NOzqzHWi85jD73aCfo9Rks9za28,46202
20
20
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-elasticache-alpha/README.md,sha256=5rwHuZ0rekBgrFzF1ig9rAxqufypWy8XN8-7y3De0dA,15152
21
21
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-gamelift-alpha/README.md,sha256=pZqlGXpIekT05CmRYo99QPI-7S1iGtKoNESGryLQFxQ,28324
22
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-glue-alpha/README.md,sha256=BCr7YEJ6Ht3oYR21NMCH3t1N738QjQ9Sh_dL_DUhECQ,32235
23
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-imagebuilder-alpha/README.md,sha256=9W9RsI0MNRbd4S0WTQxnrBGxxlRLP4mR18TppIEQITQ,50697
22
+ cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-glue-alpha/README.md,sha256=0DUUl5AU9qy-x3P4cCIStFMcav2hSQMwZuI3aTq9Q2Q,32235
23
+ cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-imagebuilder-alpha/README.md,sha256=twyVluzV90TomUEOoV77B6tLeBRh9iqsbuV-Km6Q7zE,56806
24
24
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-actions-alpha/README.md,sha256=R6vkGxu-JjfB1IfGVquiD6Gcn4RQQpgbGo36njBdJe4,11947
25
25
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-alpha/README.md,sha256=18MkQScFBUO_qZnfYj9wfsdY_vRvvEyar2OT_QbO_N4,6909
26
26
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iotevents-actions-alpha/README.md,sha256=0Al2K5gHcEce_cH07YM1GuFFrJ0mrr85ZWGVrj2cs9s,4477
@@ -489,7 +489,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.d
489
489
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.ondemand.ts,sha256=d-ltWpXABBdM-K3vtMrM2lciwr7FxsZ11eLWkONqT5k,1996
490
490
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.pitr.ts,sha256=CqQDwGeWoLTJ2Ls48EwmBY2JeC07hA6RtNB5dN2O8Mo,1051
491
491
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.policy-ff.ts,sha256=-JKTlVKwPcY0tUgTubiDv4c8uhgPU62JaC4QPEoQ0MM,1257
492
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.policy.ts,sha256=5fevoFd7tTTqIGliE_p3Q1BDpQqsGHAWgkSNNsWYaQI,1197
492
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.policy.ts,sha256=BTMc48qdl0ITSATzZm0NNaU6kS4XkTdhr8TbqgIrM54,1389
493
493
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.warm-throughput.ts,sha256=ehV4hj424r-8qGLZDubScpXvR8XVUcm_2Qjicez-mlE,1402
494
494
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.add-to-resource-policy.ts,sha256=xxGjEw7a3ZtqQVXkM_rMt297wfE4jaGnbxGwwTYkMHc,4203
495
495
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.alarm-metrics.ts,sha256=4hq2piVo7Kl_GdSfhQE7R48uLFXEqfsQN2wNJlODUa8,1321
@@ -503,7 +503,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.d
503
503
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.pitr.ts,sha256=2KMxFcbPQ6nSrTmGZISPvLGtgFTrya9XTJExKMpP-mo,847
504
504
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.policy.ts,sha256=p43hUlWISLo5slIxfAfH17n77bKiuxkjbcJYyC-yUqM,2580
505
505
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.sse.ts,sha256=yhj0Uv2zqqRGo7YoQgAeYb2pdXOOgD9RQ7Li2M4IqqE,5086
506
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.ts,sha256=k0OPrden3gGG4rTT6YmI8l16tiNsilhiMT6zdvx7Sdw,5330
506
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.ts,sha256=BNU9LISAUNgMEiHux_1AJhWuc_gty8aU67sLjsMRkHw,5383
507
507
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.warm-throughput.ts,sha256=BvuRnpHDCTS5xJEPuN-7Ns18sLsDLyuaT8l1w04W4s4,1129
508
508
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.global-replicas-provisioned.ts,sha256=Tu-UKTQ0FMx9iwKK05wW9dZxsWXJKDFG7f06d6zeD2A,1017
509
509
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.global.ts,sha256=S6FSXFuhFFzq1SZpkk97DElfIaS4O6E9lrorDvTM3jg,1280
@@ -514,7 +514,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.t
514
514
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-replica.ts,sha256=ZmN5tCVGuefUKdewkwcMC_vd1t8mYj0xowKTaAFq3P4,1613
515
515
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2.compound.ts,sha256=02z8ojStwkR4JEYiMHDD4VprWGuQQ2pKQMgq5_0rRmQ,1729
516
516
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-with-customized-role.ts,sha256=CDb1V4J2dg5-JCkFHBtF8wmMOoLaQ-6RDpZT9HnnTBg,2048
517
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md,sha256=1e2akJO6l0RjYAvdTtOS7A7Qll70rqJOVp4ibJEEkcw,103123
517
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md,sha256=jANhDBCatQGIdQ2kpH9OJyCuWoFFkKj1XdrDqqsHxK8,103790
518
518
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.bastion-host-arm-support.ts,sha256=zgJ4WxeOAsMmxDW_kgxCUw9-i-hGFeBRX3Xd0-EMuFI,786
519
519
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.bastion-host-disable-al2023-feature-flag.ts,sha256=9gX9xZZuubyUZxCAXqctMSymojJoh893yTgqD-Dfo-k,954
520
520
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.bastion-host-userdatacausesreplacement.ts,sha256=5Vv0q_dk3vtXkam1V9tvu6HcoIv-cUK9pwIHSZvX0ro,1377
@@ -533,6 +533,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instan
533
533
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-init-multiple.ts,sha256=Mf0ALf03J4isAX8E5w6FE6_Ir_4DIHlsrQLYjnSjpf4,2295
534
534
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-init.ts,sha256=oKX_YSUcVuB4qU-hkXEWs3r6O5K4vG_APomQ489TnGc,2428
535
535
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-ipv6-address-count.ts,sha256=Vn9vBCZcIdMNxJ3ufvZnyWGGtc948o-bZoVjZN4BVhs,1037
536
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-metadata-options.ts,sha256=8AMpsB0_XUv5mLJhG-lQwyi3-EAhdGw4s6pVNWoiymE,1817
536
537
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-multipart-userdata.ts,sha256=B6cNZbYG_C7_o_tXtQWe7riC1g1rgphNJhG4OaNXHao,2521
537
538
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-nitro-enclaves-hibernation.ts,sha256=hkKZmCPczWljgcrJH_qpj1w2SnmrA0l4z9iO5_NO_1U,1599
538
539
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-placement-group.ts,sha256=9vY1TekfxnmV8ck0YCDrVtl_DsCUMkCYN79TflvHqDg,1006
@@ -898,14 +899,18 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-mu
898
899
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-rotation.ts,sha256=-6eOCNkA5F6_1kRN5txoHlGQ7WYevvDy_uPl02uuM2w,488
899
900
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-sharing.lit.ts,sha256=qmYYu5-UgDr7lfWVvP__OjxAHDBhvhBYdAwRnpbj32s,955
900
901
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key.ts,sha256=9EHcuFYfdBIoJo4zAi6wSioW-_MfxomGNE6f69QHMQU,661
901
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md,sha256=WqOVjcGTUBeXEUJZKl_WrCbaAOhU_d1PeP49zLmc7G4,62726
902
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md,sha256=8mxvpKekedMBanwUo4Xj-JsFfSOF3qxQJKoP47GaiOY,70250
902
903
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.assets.file.ts,sha256=mtLyX3KoFZg6m9zPDlx7eX5CyErzv_CPCD5s9t-rRyk,623
903
904
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.assets.lit.ts,sha256=NvvrFrgp7vq8pYeNnfl1xOy79r1CgSddvcjlEESFcyw,624
904
905
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.autoscaling.lit.ts,sha256=OPWHIoRHXA1DbigKLWPea8pFhw0dRPLgSNmaB_rAurk,2184
905
906
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.binary-payload.ts,sha256=M1-iChWbjd1fw6J_YXLv9gN_jLKkTjSnu2lZmauMKUs,1694
906
907
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.bundling.docker-opts.ts,sha256=BkOTSKFleHPmaCxLYsCWyERu2AWPRdVTlMoE5Ao398s,1846
907
908
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.bundling.ts,sha256=0PZcrbNshX6xN_uP2ObYBal2Oyt-I6Zp9R_orEEnMA0,1754
909
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.capacity-provider-all-fields.ts,sha256=bM9eDbYmLwQgtlNdFoHiTjoCDa5LuOdrfHHKWJffIA4,2203
910
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.capacity-provider-defaults.ts,sha256=4SYvsSRrxrP2DfHu2r2D1VogF-TQhwmprldMfy69L8k,1197
908
911
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.current-version.ts,sha256=A8CzCftN7wAgWhffE8F2yk2TRENKbEnXrZDLMJY5z-Y,1074
912
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.function-capacity-provider-all-fields.ts,sha256=hllPEqKjkYDz8PlkdFYHcJTYe-dEM1DTASKAs-PlFmA,1800
913
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.function-capacity-provider-minimal.ts,sha256=YLPKZAptrYm0M4XU6ne6cpaYJoL4uZt1OIkTVOEiM0c,1322
909
914
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.function-url.ts,sha256=QID64PPyMLIQm3RqcLhZauK5tfA3rw2mXQuf-k9n_ro,2474
910
915
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-adot.ts,sha256=BtRNrYdnVCU3vsWAWImbqKYf696FNXQQkDuuikXcRZE,3382
911
916
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-allow-all-ipv6-outbound.ts,sha256=HV4hGID9Ju6yvEAZiEgokfIO2n-Vv_1aEm2I6tZn7Z4,742
@@ -936,6 +941,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.run
936
941
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.fromasset.ts,sha256=-GOWBQKCspzWUJ0xSQB1RUXPxhON5PS1MsxEEhJOuDk,1752
937
942
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.inlinecode.ts,sha256=lusXqrK9vdNzEhcRLddoQd23b-2oaKJUAk_mMCc-xrI,3569
938
943
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtimes.ts,sha256=z1IZZX3CzjLnBwzZXn4Ced1T0ppjtOxd7zKfS7M96pE,602
944
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.version-scaling-config-all-fields.ts,sha256=qMRagRrmUngXBYkoY5fxhlyVbHd_h_I-mz5hTcB2iPY,1423
939
945
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.vpc-lambda.ts,sha256=omZiVvKZ_W8vrHENnIyFGCnMq4GZWBb5k2dEb62B8z4,585
940
946
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-destinations/README.md,sha256=_6ZqM3kbkZCmN-9BtU3FbERs82Shv4D2QiWuq47T_VI,5453
941
947
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-destinations/integ.destinations.ts,sha256=bCxe7DTOSIRyxe2iStWRdl0_J-tQZ8n-715uo9gMHvE,4187
@@ -1012,7 +1018,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservic
1012
1018
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.gp3.ts,sha256=_YsIdlEllL1v_1YZzpXrwxHMttphlJe_xf11f1_4z3s,1526
1013
1019
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.https.ts,sha256=enL7r3ppaN_yxoRYse_nCmRrC9qdIcbqMoC_bCRdSLM,1655
1014
1020
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ip-address-type.ts,sha256=OeLFqyLYl38FltS_earKPmZ9loassPKmMErTopMwlvE,1136
1015
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts,sha256=wbQaBJNWyspQ_hAHm4gEDdU98Xj7lh3XmZ-zEueFgeA,1109
1021
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts,sha256=mLmayGi_w_CrClK2SMmv5bCMAkUZWtvCMosb4pXEOfM,1156
1016
1022
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.multiaz-with-standby.ts,sha256=I_g-biRG4nRKXW7gozIp6d00OIzwCw2_Eja3LNZrrkY,891
1017
1023
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.nodeoptions.ts,sha256=sKineUIZrUMBwMWMps0ryRVxBbbSHs5XlOErcXJ_r6A,1379
1018
1024
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ts,sha256=HAxPSl15GNYZuzGEjZhSNgIPoAMXm7YzPocUZ2KYmSU,2087
@@ -1466,8 +1472,8 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipe
1466
1472
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/region-info/README.md,sha256=vewWkV3ds9o9iyyYaJBNTkaKJ2XA6K2yF17tAxUnujg,2718
1467
1473
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/README.md,sha256=hYIx7DbG_7p4LYLUfxDwgIQjw9UNdz1GLrqDe8_Dbko,4132
1468
1474
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/integ.triggers.ts,sha256=LfeVru_CggiFXKPVa8vwt6Uv43SV3oAioDGmd8PyMHc,2859
1469
- konokenj_cdk_api_mcp_server-0.61.0.dist-info/METADATA,sha256=P0XyRaSLgudxEXVnyfbU22YT8l1RxwgVv-5aZ9lm5Lo,2646
1470
- konokenj_cdk_api_mcp_server-0.61.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1471
- konokenj_cdk_api_mcp_server-0.61.0.dist-info/entry_points.txt,sha256=bVDhMdyCC1WNMPOMbmB82jvWII2CIrwTZDygdCf0cYQ,79
1472
- konokenj_cdk_api_mcp_server-0.61.0.dist-info/licenses/LICENSE.txt,sha256=5OIAASeg1HM22mVZ1enz9bgZ7TlsGfWXnj02P9OgFyk,1098
1473
- konokenj_cdk_api_mcp_server-0.61.0.dist-info/RECORD,,
1475
+ konokenj_cdk_api_mcp_server-0.62.0.dist-info/METADATA,sha256=QEQo-XEX08JCjpisLTYrv2Z5VnMD194vCArFQxo6Cmw,2646
1476
+ konokenj_cdk_api_mcp_server-0.62.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
1477
+ konokenj_cdk_api_mcp_server-0.62.0.dist-info/entry_points.txt,sha256=bVDhMdyCC1WNMPOMbmB82jvWII2CIrwTZDygdCf0cYQ,79
1478
+ konokenj_cdk_api_mcp_server-0.62.0.dist-info/licenses/LICENSE.txt,sha256=5OIAASeg1HM22mVZ1enz9bgZ7TlsGfWXnj02P9OgFyk,1098
1479
+ konokenj_cdk_api_mcp_server-0.62.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any