konokenj.cdk-api-mcp-server 0.44.0__py3-none-any.whl → 0.45.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 (19) hide show
  1. cdk_api_mcp_server/__about__.py +1 -1
  2. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md +36 -0
  3. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-response-completion-timeout.ts +50 -0
  4. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md +21 -0
  5. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-target-group-attributes.ts +45 -0
  6. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-target-group-attributes.ts +45 -0
  7. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/README.md +18 -1
  8. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus.ts +13 -3
  9. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md +24 -0
  10. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.route53.ts +51 -1
  11. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.cloudfront-alias-target.ts +16 -1
  12. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/README.md +53 -0
  13. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-ebs.ts +126 -0
  14. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.novalue-nonstring.ts +25 -0
  15. {konokenj_cdk_api_mcp_server-0.44.0.dist-info → konokenj_cdk_api_mcp_server-0.45.0.dist-info}/METADATA +2 -2
  16. {konokenj_cdk_api_mcp_server-0.44.0.dist-info → konokenj_cdk_api_mcp_server-0.45.0.dist-info}/RECORD +19 -14
  17. {konokenj_cdk_api_mcp_server-0.44.0.dist-info → konokenj_cdk_api_mcp_server-0.45.0.dist-info}/WHEEL +0 -0
  18. {konokenj_cdk_api_mcp_server-0.44.0.dist-info → konokenj_cdk_api_mcp_server-0.45.0.dist-info}/entry_points.txt +0 -0
  19. {konokenj_cdk_api_mcp_server-0.44.0.dist-info → konokenj_cdk_api_mcp_server-0.45.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.44.0"
4
+ __version__ = "0.45.0"
@@ -577,6 +577,7 @@ const origin = new origins.LoadBalancerV2Origin(loadBalancer, {
577
577
  connectionAttempts: 3,
578
578
  connectionTimeout: Duration.seconds(5),
579
579
  readTimeout: Duration.seconds(45),
580
+ responseCompletionTimeout: Duration.seconds(120),
580
581
  keepaliveTimeout: Duration.seconds(45),
581
582
  protocolPolicy: cloudfront.OriginProtocolPolicy.MATCH_VIEWER,
582
583
  });
@@ -596,6 +597,22 @@ new cloudfront.Distribution(this, 'myDist', {
596
597
  });
597
598
  ```
598
599
 
600
+ The origin can be customized with timeout settings to handle different response scenarios:
601
+
602
+ ```ts
603
+ new cloudfront.Distribution(this, 'Distribution', {
604
+ defaultBehavior: {
605
+ origin: new origins.HttpOrigin('api.example.com', {
606
+ readTimeout: Duration.seconds(60),
607
+ responseCompletionTimeout: Duration.seconds(120),
608
+ keepaliveTimeout: Duration.seconds(45),
609
+ }),
610
+ },
611
+ });
612
+ ```
613
+
614
+ The `responseCompletionTimeout` property specifies the time that a request from CloudFront to the origin can stay open and wait for a response. If the complete response isn't received from the origin by this time, CloudFront ends the connection. Valid values are 1-3600 seconds, and if set, the value must be equal to or greater than the `readTimeout` value.
615
+
599
616
  See the documentation of `aws-cdk-lib/aws-cloudfront` for more information.
600
617
 
601
618
  ## VPC origins
@@ -801,6 +818,25 @@ new cloudfront.Distribution(this, 'Distribution', {
801
818
  });
802
819
  ```
803
820
 
821
+ You can also configure timeout settings for Lambda Function URL origins:
822
+
823
+ ```ts
824
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
825
+
826
+ declare const fn: lambda.Function;
827
+ const fnUrl = fn.addFunctionUrl({ authType: lambda.FunctionUrlAuthType.NONE });
828
+
829
+ new cloudfront.Distribution(this, 'Distribution', {
830
+ defaultBehavior: {
831
+ origin: new origins.FunctionUrlOrigin(fnUrl, {
832
+ readTimeout: Duration.seconds(30),
833
+ responseCompletionTimeout: Duration.seconds(90),
834
+ keepaliveTimeout: Duration.seconds(45),
835
+ }),
836
+ },
837
+ });
838
+ ```
839
+
804
840
  ### Lambda Function URL with Origin Access Control (OAC)
805
841
  You can configure the Lambda Function URL with Origin Access Control (OAC) for enhanced security. When using OAC with Signing SIGV4_ALWAYS, it is recommended to set the Lambda Function URL authType to AWS_IAM to ensure proper authorization.
806
842
 
@@ -0,0 +1,50 @@
1
+ import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
2
+ import * as origins from 'aws-cdk-lib/aws-cloudfront-origins';
3
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
4
+ import * as cdk from 'aws-cdk-lib';
5
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
6
+
7
+ const app = new cdk.App();
8
+ const stack = new cdk.Stack(app, 'integ-cloudfront-response-completion-timeout');
9
+
10
+ const httpOrigin = new origins.HttpOrigin('example.com', {
11
+ responseCompletionTimeout: cdk.Duration.seconds(120),
12
+ readTimeout: cdk.Duration.seconds(60),
13
+ });
14
+
15
+ const fn = new lambda.Function(stack, 'Function', {
16
+ runtime: lambda.Runtime.NODEJS_18_X,
17
+ handler: 'index.handler',
18
+ code: lambda.Code.fromInline('exports.handler = async () => ({ statusCode: 200, body: "Hello from Lambda!" });'),
19
+ });
20
+
21
+ const fnUrl = fn.addFunctionUrl({
22
+ authType: lambda.FunctionUrlAuthType.NONE,
23
+ });
24
+
25
+ const functionUrlOrigin = new origins.FunctionUrlOrigin(fnUrl, {
26
+ responseCompletionTimeout: cdk.Duration.seconds(90),
27
+ readTimeout: cdk.Duration.seconds(30),
28
+ });
29
+
30
+ const httpOriginNoReadTimeout = new origins.HttpOrigin('api.example.com', {
31
+ responseCompletionTimeout: cdk.Duration.seconds(300),
32
+ });
33
+
34
+ new cloudfront.Distribution(stack, 'Distribution', {
35
+ defaultBehavior: {
36
+ origin: httpOrigin,
37
+ },
38
+ additionalBehaviors: {
39
+ '/api/*': {
40
+ origin: functionUrlOrigin,
41
+ },
42
+ '/files/*': {
43
+ origin: httpOriginNoReadTimeout,
44
+ },
45
+ },
46
+ });
47
+
48
+ new IntegTest(app, 'CloudFrontResponseCompletionTimeoutTest', {
49
+ testCases: [stack],
50
+ });
@@ -746,6 +746,27 @@ const ipv6NetworkTargetGroup = new elbv2.NetworkTargetGroup(this, 'Ipv6NetworkTa
746
746
  });
747
747
  ```
748
748
 
749
+ ### Target Group level health setting for Application Load Balancers and Network Load Balancers
750
+
751
+ You can set target group health setting at target group level by setting `targetGroupHealth` property.
752
+
753
+ For more information, see [How Elastic Load Balancing works](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes).
754
+
755
+ ```ts
756
+ declare const vpc: ec2.Vpc;
757
+
758
+ const targetGroup = new elbv2.ApplicationTargetGroup(this, 'TargetGroup', {
759
+ vpc,
760
+ port: 80,
761
+ targetGroupHealth: {
762
+ dnsMinimumHealthyTargetCount: 3,
763
+ dnsMinimumHealthyTargetPercentage: 70,
764
+ routingMinimumHealthyTargetCount: 2,
765
+ routingMinimumHealthyTargetPercentage: 50,
766
+ },
767
+ });
768
+ ```
769
+
749
770
  ## Using Lambda Targets
750
771
 
751
772
  To use a Lambda Function as a target, use the integration class in the
@@ -0,0 +1,45 @@
1
+ import { ExpectedResult, IntegTest, Match } from '@aws-cdk/integ-tests-alpha';
2
+ import { Stack, aws_ec2 as ec2, aws_elasticloadbalancingv2 as elbv2, App } from 'aws-cdk-lib';
3
+
4
+ const app = new App();
5
+ const stack = new Stack(app, 'alb-target-group-attributes');
6
+
7
+ const vpc = new ec2.Vpc(stack, 'Stack');
8
+
9
+ const targetGroup = new elbv2.ApplicationTargetGroup(stack, 'TargetGroup', {
10
+ vpc,
11
+ port: 80,
12
+ targetGroupHealth: {
13
+ dnsMinimumHealthyTargetCount: 3,
14
+ dnsMinimumHealthyTargetPercentage: 70,
15
+ routingMinimumHealthyTargetCount: 2,
16
+ routingMinimumHealthyTargetPercentage: 50,
17
+ },
18
+ });
19
+
20
+ const integTest = new IntegTest(app, 'alb-target-group-attributes-test', {
21
+ testCases: [stack],
22
+ });
23
+
24
+ integTest.assertions.awsApiCall('elbv2', 'describeTargetGroupAttributes', {
25
+ TargetGroupArn: targetGroup.targetGroupArn,
26
+ }).expect(ExpectedResult.objectLike({
27
+ Attributes: Match.arrayWith([
28
+ {
29
+ Key: 'target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage',
30
+ Value: '50',
31
+ },
32
+ {
33
+ Key: 'target_group_health.dns_failover.minimum_healthy_targets.percentage',
34
+ Value: '70',
35
+ },
36
+ {
37
+ Key: 'target_group_health.unhealthy_state_routing.minimum_healthy_targets.count',
38
+ Value: '2',
39
+ },
40
+ {
41
+ Key: 'target_group_health.dns_failover.minimum_healthy_targets.count',
42
+ Value: '3',
43
+ },
44
+ ]),
45
+ }));
@@ -0,0 +1,45 @@
1
+ import { ExpectedResult, IntegTest, Match } from '@aws-cdk/integ-tests-alpha';
2
+ import { Stack, aws_ec2 as ec2, aws_elasticloadbalancingv2 as elbv2, App } from 'aws-cdk-lib';
3
+
4
+ const app = new App();
5
+ const stack = new Stack(app, 'nlb-target-group-attributes');
6
+
7
+ const vpc = new ec2.Vpc(stack, 'Stack');
8
+
9
+ const targetGroup = new elbv2.NetworkTargetGroup(stack, 'TargetGroup', {
10
+ vpc,
11
+ port: 80,
12
+ targetGroupHealth: {
13
+ dnsMinimumHealthyTargetCount: 3,
14
+ dnsMinimumHealthyTargetPercentage: 70,
15
+ routingMinimumHealthyTargetCount: 2,
16
+ routingMinimumHealthyTargetPercentage: 50,
17
+ },
18
+ });
19
+
20
+ const integTest = new IntegTest(app, 'nlb-target-group-attributes-test', {
21
+ testCases: [stack],
22
+ });
23
+
24
+ integTest.assertions.awsApiCall('elbv2', 'describeTargetGroupAttributes', {
25
+ TargetGroupArn: targetGroup.targetGroupArn,
26
+ }).expect(ExpectedResult.objectLike({
27
+ Attributes: Match.arrayWith([
28
+ {
29
+ Key: 'target_group_health.unhealthy_state_routing.minimum_healthy_targets.count',
30
+ Value: '2',
31
+ },
32
+ {
33
+ Key: 'target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage',
34
+ Value: '50',
35
+ },
36
+ {
37
+ Key: 'target_group_health.dns_failover.minimum_healthy_targets.count',
38
+ Value: '3',
39
+ },
40
+ {
41
+ Key: 'target_group_health.dns_failover.minimum_healthy_targets.percentage',
42
+ Value: '70',
43
+ },
44
+ ]),
45
+ }));
@@ -356,4 +356,21 @@ const archive = new Archive(stack, 'Archive', {
356
356
  ```
357
357
 
358
358
  To enable archives or schema discovery on an event bus, customers has the choice of using either an AWS owned key or a customer managed key.
359
- For more information, see [KMS key options for event bus encryption](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-encryption-at-rest-key-options.html).
359
+ For more information, see [KMS key options for event bus encryption](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-encryption-at-rest-key-options.html).
360
+
361
+ ## Configuring logging
362
+
363
+ To configure logging for an Event Bus, leverage the LogConfig property. It allows different level of logging (NONE, INFO, TRACE, ERROR) and wether to include details or not.
364
+
365
+ ```ts
366
+ import { EventBus, IncludeDetail, Level } from 'aws-cdk-lib/aws-events';
367
+
368
+ const bus = new EventBus(this, 'Bus', {
369
+ logConfig: {
370
+ includeDetail: IncludeDetail.FULL,
371
+ level: Level.TRACE,
372
+ },
373
+ });
374
+ ```
375
+
376
+ See more [Specifying event bus log level](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-bus-logs.html#eb-event-bus-logs-level)
@@ -2,21 +2,31 @@ import * as iam from 'aws-cdk-lib/aws-iam';
2
2
  import * as sqs from 'aws-cdk-lib/aws-sqs';
3
3
  import { App, Stack } from 'aws-cdk-lib';
4
4
  import { IntegTest } from '@aws-cdk/integ-tests-alpha';
5
- import { EventBus } from 'aws-cdk-lib/aws-events';
5
+ import { EventBus, IncludeDetail, Level } from 'aws-cdk-lib/aws-events';
6
6
 
7
7
  const app = new App();
8
8
  const stack = new Stack(app, 'Stack');
9
9
 
10
10
  const dlq = new sqs.Queue(stack, 'DLQ');
11
11
 
12
+ const eventBusRole = new iam.Role(stack, 'EventBusRole', {
13
+ assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com'),
14
+ description: 'Role for accessing EventBus',
15
+ roleName: 'EventBusAccessRole',
16
+ });
17
+
12
18
  const bus = new EventBus(stack, 'Bus', {
13
19
  deadLetterQueue: dlq,
14
20
  description: 'myEventBus',
21
+ logConfig: {
22
+ includeDetail: IncludeDetail.FULL,
23
+ level: Level.ERROR,
24
+ },
15
25
  });
16
26
 
17
27
  bus.addToResourcePolicy(new iam.PolicyStatement({
18
28
  effect: iam.Effect.ALLOW,
19
- principals: [new iam.AccountPrincipal(stack.account)],
29
+ principals: [eventBusRole],
20
30
  actions: ['events:PutEvents'],
21
31
  sid: 'Statement1',
22
32
  resources: [bus.eventBusArn],
@@ -24,7 +34,7 @@ bus.addToResourcePolicy(new iam.PolicyStatement({
24
34
 
25
35
  bus.addToResourcePolicy(new iam.PolicyStatement({
26
36
  effect: iam.Effect.ALLOW,
27
- principals: [new iam.AccountPrincipal(stack.account)],
37
+ principals: [eventBusRole],
28
38
  actions: ['events:PutRule'],
29
39
  sid: 'Statement2',
30
40
  resources: [bus.eventBusArn],
@@ -134,6 +134,30 @@ new route53.AaaaRecord(this, 'Alias', {
134
134
  });
135
135
  ```
136
136
 
137
+ To add an HTTPS record:
138
+
139
+ ``` ts
140
+ import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
141
+
142
+ declare const myZone: route53.HostedZone;
143
+ declare const distribution: cloudfront.CloudFrontWebDistribution;
144
+ // Alias to CloudFront target
145
+ new route53.HttpsRecord(this, 'HttpsRecord-CloudFrontAlias', {
146
+ zone: myZone,
147
+ target: route53.RecordTarget.fromAlias(new targets.CloudFrontTarget(distribution)),
148
+ });
149
+ // ServiceMode (priority >= 1)
150
+ new route53.HttpsRecord(this, 'HttpsRecord-ServiceMode', {
151
+ zone: myZone,
152
+ values: [route53.HttpsRecordValue.service({ alpn: [route53.Alpn.H3, route53.Alpn.H2] })],
153
+ });
154
+ // AliasMode (priority = 0)
155
+ new route53.HttpsRecord(this, 'HttpsRecord-AliasMode', {
156
+ zone: myZone,
157
+ values: [route53.HttpsRecordValue.alias('service.example.com')],
158
+ });
159
+ ```
160
+
137
161
  [Geolocation routing](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-geo.html) can be enabled for continent, country or subdivision:
138
162
 
139
163
  ```ts
@@ -1,6 +1,6 @@
1
1
  import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
2
  import * as cdk from 'aws-cdk-lib';
3
- import { ARecord, CaaAmazonRecord, CnameRecord, Continent, GeoLocation, PrivateHostedZone, PublicHostedZone, RecordTarget, TxtRecord } from 'aws-cdk-lib/aws-route53';
3
+ import { Alpn, ARecord, CaaAmazonRecord, CnameRecord, Continent, GeoLocation, HttpsRecord, HttpsRecordValue, PrivateHostedZone, PublicHostedZone, RecordTarget, SvcbRecord, SvcbRecordValue, TxtRecord } from 'aws-cdk-lib/aws-route53';
4
4
 
5
5
  const app = new cdk.App();
6
6
 
@@ -92,6 +92,56 @@ new TxtRecord(stack, 'TXT', {
92
92
  ],
93
93
  });
94
94
 
95
+ new SvcbRecord(stack, 'SVCB-AliasMode', {
96
+ zone: publicZone,
97
+ recordName: '_8080._svcb-alias',
98
+ values: [SvcbRecordValue.alias('service.example.com')],
99
+ });
100
+ new SvcbRecord(stack, 'SVCB-ServiceMode', {
101
+ zone: publicZone,
102
+ recordName: '_8080._svcb-service',
103
+ values: [SvcbRecordValue.service({ alpn: [Alpn.H3, Alpn.H2] })],
104
+ });
105
+ new SvcbRecord(stack, 'SVCB-ServiceMode-FullParams', {
106
+ zone: publicZone,
107
+ recordName: '_8080._svcb-service-fullparams',
108
+ values: [SvcbRecordValue.service({
109
+ priority: 2,
110
+ targetName: 'service.example.com',
111
+ mandatory: ['alpn'],
112
+ alpn: [Alpn.H3, Alpn.H2, Alpn.HTTP1_1, Alpn.of('h3-29')],
113
+ noDefaultAlpn: true,
114
+ port: 8443,
115
+ ipv4hint: ['127.0.0.1'],
116
+ ipv6hint: ['::1'],
117
+ })],
118
+ });
119
+
120
+ new HttpsRecord(stack, 'HTTPS-AliasMode', {
121
+ zone: publicZone,
122
+ recordName: 'https-alias',
123
+ values: [HttpsRecordValue.alias('service.example.com')],
124
+ });
125
+ new HttpsRecord(stack, 'HTTPS-ServiceMode', {
126
+ zone: publicZone,
127
+ recordName: 'https-service',
128
+ values: [HttpsRecordValue.service({ alpn: [Alpn.H3, Alpn.H2] })],
129
+ });
130
+ new HttpsRecord(stack, 'HTTPS-ServiceMode-FullParams', {
131
+ zone: publicZone,
132
+ recordName: 'https-service-fullparams',
133
+ values: [HttpsRecordValue.service({
134
+ priority: 2,
135
+ targetName: 'service.example.com',
136
+ mandatory: ['alpn'],
137
+ alpn: [Alpn.H3, Alpn.H2, Alpn.HTTP1_1, Alpn.of('h3-29')],
138
+ noDefaultAlpn: true,
139
+ port: 8443,
140
+ ipv4hint: ['127.0.0.1'],
141
+ ipv6hint: ['::1'],
142
+ })],
143
+ });
144
+
95
145
  new cdk.CfnOutput(stack, 'PrivateZoneId', { value: privateZone.hostedZoneId });
96
146
  new cdk.CfnOutput(stack, 'PublicZoneId', { value: publicZone.hostedZoneId });
97
147
 
@@ -3,6 +3,7 @@ import * as route53 from 'aws-cdk-lib/aws-route53';
3
3
  import * as s3 from 'aws-cdk-lib/aws-s3';
4
4
  import * as cdk from 'aws-cdk-lib';
5
5
  import * as targets from 'aws-cdk-lib/aws-route53-targets';
6
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
6
7
 
7
8
  const app = new cdk.App();
8
9
 
@@ -31,4 +32,18 @@ new route53.ARecord(zone, 'Alias', {
31
32
  target: route53.RecordTarget.fromAlias(new targets.CloudFrontTarget(distribution)),
32
33
  });
33
34
 
34
- app.synth();
35
+ new route53.AaaaRecord(zone, 'AaaaAlias', {
36
+ zone,
37
+ recordName: '_foo',
38
+ target: route53.RecordTarget.fromAlias(new targets.CloudFrontTarget(distribution)),
39
+ });
40
+
41
+ new route53.HttpsRecord(zone, 'HttpsAlias', {
42
+ zone,
43
+ recordName: '_foo',
44
+ target: route53.RecordTarget.fromAlias(new targets.CloudFrontTarget(distribution)),
45
+ });
46
+
47
+ new IntegTest(app, 'aws-cdk-route53-cloudfront-alias-integ-test', {
48
+ testCases: [stack],
49
+ });
@@ -962,6 +962,18 @@ new tasks.EmrCreateCluster(this, 'SpotSpecification', {
962
962
  });
963
963
  ```
964
964
 
965
+ You can [customize EBS root device volume](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami-root-volume-size.html).
966
+
967
+ ```ts
968
+ new tasks.EmrCreateCluster(this, 'Create Cluster', {
969
+ instances: {},
970
+ name: 'ClusterName',
971
+ ebsRootVolumeIops: 4000,
972
+ ebsRootVolumeSize: Size.gibibytes(20),
973
+ ebsRootVolumeThroughput: 200,
974
+ });
975
+ ```
976
+
965
977
  If you want to run multiple steps in [parallel](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-concurrent-steps.html),
966
978
  you can specify the `stepConcurrencyLevel` property. The concurrency range is between 1
967
979
  and 256 inclusive, where the default concurrency of 1 means no step concurrency is allowed.
@@ -987,6 +999,47 @@ new tasks.EmrCreateCluster(this, 'Create Cluster', {
987
999
  });
988
1000
  ```
989
1001
 
1002
+ If you want to use [managed scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-scaling.html),
1003
+ you can specify the `managedScalingPolicy` property.
1004
+
1005
+ ```ts
1006
+ new tasks.EmrCreateCluster(this, 'CreateCluster', {
1007
+ instances: {
1008
+ instanceFleets: [
1009
+ {
1010
+ instanceFleetType: tasks.EmrCreateCluster.InstanceRoleType.CORE,
1011
+ instanceTypeConfigs: [
1012
+ {
1013
+ instanceType: 'm5.xlarge',
1014
+ },
1015
+ ],
1016
+ targetOnDemandCapacity: 1,
1017
+ },
1018
+ {
1019
+ instanceFleetType: tasks.EmrCreateCluster.InstanceRoleType.MASTER,
1020
+ instanceTypeConfigs: [
1021
+ {
1022
+ instanceType: 'm5.xlarge',
1023
+ },
1024
+ ],
1025
+ targetOnDemandCapacity: 1,
1026
+ },
1027
+ ],
1028
+ },
1029
+ name: 'ClusterName',
1030
+ releaseLabel: 'emr-7.9.0',
1031
+ managedScalingPolicy: {
1032
+ computeLimits: {
1033
+ unitType: tasks.EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS,
1034
+ maximumCapacityUnits: 4,
1035
+ minimumCapacityUnits: 1,
1036
+ maximumOnDemandCapacityUnits: 4,
1037
+ maximumCoreCapacityUnits: 2,
1038
+ },
1039
+ },
1040
+ });
1041
+ ```
1042
+
990
1043
  ### Termination Protection
991
1044
 
992
1045
  Locks a cluster (job flow) so the EC2 instances in the cluster cannot be
@@ -0,0 +1,126 @@
1
+ import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
2
+ import { App, Duration, Size, Stack, Tags } from 'aws-cdk-lib';
3
+ import { ExpectedResult, IntegTest } from '@aws-cdk/integ-tests-alpha';
4
+ import { EmrCreateCluster } from 'aws-cdk-lib/aws-stepfunctions-tasks';
5
+ import { Vpc } from 'aws-cdk-lib/aws-ec2';
6
+
7
+ const app = new App();
8
+
9
+ const stack = new Stack(app, 'emr-create-cluster-ebs');
10
+ const vpc = new Vpc(stack, 'Vpc', { restrictDefaultSecurityGroup: false });
11
+
12
+ const releaseLabel = 'emr-7.10.0';
13
+ const ebsRootVolumeIops = 4000;
14
+ const ebsRootVolumeSize = 20;
15
+ const ebsRootVolumeThroughput = 200;
16
+ const unitType = EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS;
17
+ const maximumCapacityUnits = 4;
18
+ const minimumCapacityUnits = 1;
19
+ const maximumOnDemandCapacityUnits = 4;
20
+ const maximumCoreCapacityUnits = 2;
21
+
22
+ // https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-iam-policies.html#manually-tagged-resources
23
+ Tags.of(vpc).add('for-use-with-amazon-emr-managed-policies', 'true');
24
+
25
+ const step = new EmrCreateCluster(stack, 'EmrCreateCluster', {
26
+ instances: {
27
+ instanceFleets: [
28
+ {
29
+ instanceFleetType: EmrCreateCluster.InstanceRoleType.CORE,
30
+ instanceTypeConfigs: [
31
+ {
32
+ instanceType: 'm5.xlarge',
33
+ },
34
+ ],
35
+ targetOnDemandCapacity: 1,
36
+ },
37
+ {
38
+ instanceFleetType: EmrCreateCluster.InstanceRoleType.MASTER,
39
+ instanceTypeConfigs: [
40
+ {
41
+ instanceType: 'm5.xlarge',
42
+ },
43
+ ],
44
+ targetOnDemandCapacity: 1,
45
+ },
46
+ ],
47
+ ec2SubnetId: vpc.publicSubnets[0].subnetId,
48
+ },
49
+ name: 'Cluster',
50
+ releaseLabel,
51
+ integrationPattern: sfn.IntegrationPattern.RUN_JOB,
52
+ ebsRootVolumeIops,
53
+ ebsRootVolumeSize: Size.gibibytes(ebsRootVolumeSize),
54
+ ebsRootVolumeThroughput,
55
+ managedScalingPolicy: {
56
+ computeLimits: {
57
+ unitType,
58
+ maximumCapacityUnits,
59
+ minimumCapacityUnits,
60
+ maximumOnDemandCapacityUnits,
61
+ maximumCoreCapacityUnits,
62
+ },
63
+ },
64
+ });
65
+
66
+ const sm = new sfn.StateMachine(stack, 'SM', {
67
+ definition: step,
68
+ });
69
+
70
+ const integTest = new IntegTest(app, 'emr-create-cluster-ebs-integ', {
71
+ testCases: [stack],
72
+ });
73
+
74
+ const start = integTest.assertions.awsApiCall('StepFunctions', 'startExecution', {
75
+ stateMachineArn: sm.stateMachineArn,
76
+ });
77
+
78
+ const describeExecution = integTest.assertions.awsApiCall('StepFunctions', 'describeExecution', {
79
+ executionArn: start.getAttString('executionArn'),
80
+ });
81
+ start.next(describeExecution);
82
+
83
+ const waitForExecution = describeExecution.expect(ExpectedResult.objectLike({
84
+ status: 'SUCCEEDED',
85
+ })).waitForAssertions({
86
+ interval: Duration.seconds(30),
87
+ totalTimeout: Duration.minutes(5),
88
+ });
89
+
90
+ const getClusterId = integTest.assertions.awsApiCall('StepFunctions', 'describeExecution', {
91
+ executionArn: start.getAttString('executionArn'),
92
+ });
93
+ waitForExecution.next(getClusterId);
94
+
95
+ const clusterId = getClusterId.getAttString('output.ClusterId');
96
+
97
+ const describeCluster = integTest.assertions.awsApiCall('Emr', 'describeCluster', {
98
+ ClusterId: clusterId,
99
+ });
100
+ getClusterId.next(describeCluster);
101
+
102
+ describeCluster.expect(ExpectedResult.objectLike({
103
+ Cluster: {
104
+ ReleaseLabel: releaseLabel,
105
+ EbsRootVolumeIops: ebsRootVolumeIops,
106
+ EbsRootVolumeSize: ebsRootVolumeSize,
107
+ EbsRootVolumeThroughput: ebsRootVolumeThroughput,
108
+ },
109
+ }));
110
+
111
+ const getManagedScalingPolicy = integTest.assertions.awsApiCall('Emr', 'getManagedScalingPolicy', {
112
+ ClusterId: clusterId,
113
+ });
114
+ describeCluster.next(getManagedScalingPolicy);
115
+
116
+ getManagedScalingPolicy.expect(ExpectedResult.objectLike({
117
+ ManagedScalingPolicy: {
118
+ ComputeLimits: {
119
+ UnitType: unitType,
120
+ MaximumCapacityUnits: maximumCapacityUnits,
121
+ MinimumCapacityUnits: minimumCapacityUnits,
122
+ MaximumOnDemandCapacityUnits: maximumOnDemandCapacityUnits,
123
+ MaximumCoreCapacityUnits: maximumCoreCapacityUnits,
124
+ },
125
+ },
126
+ }));
@@ -0,0 +1,25 @@
1
+ import * as path from 'path';
2
+ import * as cdk from 'aws-cdk-lib';
3
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
4
+ import { CfnInclude } from 'aws-cdk-lib/cloudformation-include';
5
+
6
+ const app = new cdk.App();
7
+ const stack = new cdk.Stack(app, 'integ-cfninclude-novalue-boolean');
8
+
9
+ const templateFile = path.join(__dirname, 'test-templates', 'novalue-boolean.json');
10
+
11
+ // Include a template that has a AWS::NoValue property in place of a boolean
12
+ const cfnInclude = new CfnInclude(stack, 'Template', {
13
+ templateFile,
14
+ });
15
+
16
+ const bucket = cfnInclude.getResource('TestBucket');
17
+
18
+ new cdk.CfnOutput(stack, 'BucketName', {
19
+ value: bucket.ref,
20
+ });
21
+
22
+ // The fact that synthesis is successful means that AWS::NoValue is evaluated correctly.
23
+ new IntegTest(app, 'CfnIncludeNoValueBooleanTest', {
24
+ testCases: [stack],
25
+ });
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: konokenj.cdk-api-mcp-server
3
- Version: 0.44.0
3
+ Version: 0.45.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.214.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.215.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=zSXca0LQuRXtsIUwkxRgFOt_fIveUC3LZ_328urbr2k,129
1
+ cdk_api_mcp_server/__about__.py,sha256=jFdH7KcaD7YnaF1tWbOgsGp3tjLLBGVVyBNZJwXLc3s,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
@@ -270,7 +270,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ
270
270
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.key-value-store-frominline.ts,sha256=H2nulQGsjNN2e9WFL4s0s_f7WwWhglrhifbbOCoSQ2o,646
271
271
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.key-value-store.ts,sha256=d_364YWDm0IXXVZhSOgpqDJdIH85GpykvsQ-pqQI6zM,561
272
272
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.realtime-log-config.ts,sha256=ZhR1zUbouvf7RmYiYUCk-79AuTGwzDE6d8EcPWVzAPo,896
273
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md,sha256=dsRl8QI4pmRvVHbnogr3rRDqGB_xZ_b8SMCCKOxuvgk,33580
273
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md,sha256=wJ8PuIAcpzeTLPXpUyxoMvtjt2C4O75wuR-mGcUbT_I,34919
274
274
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-oac-alias.ts,sha256=3-edAxGbTMdiXKl2eLO92R1CkKVyHV8aJDHTIooU2I4,3331
275
275
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-oac-custom.ts,sha256=Iv3QloWAIGk3tnCoeVVac7SgOVeXe_TI2YxAoY3Ixck,3618
276
276
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-oac.ts,sha256=adecJ-YpyzA2uW3bt9OPL8uhXoY2GmhLg5W_q2UxyQU,3104
@@ -279,6 +279,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origi
279
279
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.load-balancer-origin.ts,sha256=F2TP5zO5FqEL-1Uw-qZTzfpqJzyPyUfsysZ4i6kHWrw,706
280
280
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-group-selection-criteria.ts,sha256=V1kKE5ulDzBQ31liqUI0kr7nZ6lAEu4s6n5SSchx04g,1154
281
281
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-group.ts,sha256=rEZTwiMBsk6dzizh6d2AwqwIhCuidmBJvTqxHVeIVAA,738
282
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-response-completion-timeout.ts,sha256=VOnwals7P10p334ItHCFu2VTeflEt_KFFyCjWG1_oNk,1510
282
283
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.rest-api-origin-custom-origin-path.ts,sha256=bdxuhb248PyWAgp46Yp0OVV-t4Wu-9CAM2_qk7m6y4s,776
283
284
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.rest-api-origin.ts,sha256=wdzyHWou4nqKXXdQsMlSGiZj22mcVKl9X57MU_zD6Uo,717
284
285
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.s3-bucket-origin-default.ts,sha256=QFMj70VtiVdcf_4Z-YfsXVX1n0_SnyBse2SvzEvvXU8,1157
@@ -727,9 +728,10 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.nodegr
727
728
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancing/README.md,sha256=TvRV54AcSiSZ3uOENOGmzkiBBRuHSG3DeEqgW_8FkZs,1795
728
729
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancing/integ.elb.ts,sha256=6qAybkYElxtfNefo1IpFo8MgrCubixLs2hTUUPeZoRg,555
729
730
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancing/integ.instanceTarget.elb.ts,sha256=aSGKHAGZrvvVdE_IVZ2M6TZdKer0j5qO6LWbjPdrdc0,1696
730
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md,sha256=sQF1qIUJd0VvSphz3nBa1ME4_kj9M2VdGdu6nPtE_LE,40670
731
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md,sha256=32ej7fkz6bLr9U-1VVTH8pdDHJf3wXmfUTtimxA-Hfc,41395
731
732
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-lambda-multi-value-headers.ts,sha256=AWMOHhqAT8KNOcHgjCQLc2jpxYp1kwWlGsoTqIqLbZs,2631
732
733
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-mtls.ts,sha256=MLqCLJKd4FOCLcHkqZHoJghi2tYMmqpRoDzQHDNvnHQ,5635
734
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-target-group-attributes.ts,sha256=I1YcQmzoqEx_H9mPq1smfyhScse2QSzBXf9XDdCsDhk,1370
733
735
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-target-group-cross-zone.ts,sha256=F9dEsfcimq-lvxut-YGi-JOloZnH-_st1E2hzMp1uO8,740
734
736
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-target-group-ip-address-type.ts,sha256=ZjV0t2EDjBClaA406l4kQ0OpM_YXc5R-jTseF8pbQ8g,1187
735
737
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.attributes.ts,sha256=tvucibsZE8rcnemEePp7r2L9bD6-f7pOPTsLvI79Fkw,1432
@@ -750,6 +752,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalan
750
752
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-listener-tcp-idle-timeout.ts,sha256=XjAdhX-pXsbhIJA2ihhBMFOTdhBwEW6SaVRW6IIhXdE,905
751
753
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-lookup.ts,sha256=AkJjIml_3oOmFMm809UK5KlNgLR-AHKfS-lSAf4r5Qc,4904
752
754
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-subnet-mapping.ts,sha256=GtQQmmxGg73OoBdEt9Pu7O50OoI4skJFYktRjcbn10U,3050
755
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-target-group-attributes.ts,sha256=Bnysu8GOtfTR_hzgWAoVRHAGwN41x5j1Lb9kEAmjmis,1366
753
756
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-target-group-cross-zone.ts,sha256=QLnjcXOG9wczR8uDSDLZh2crOLMsgcq6G-dFGugZkWY,736
754
757
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-target-group-ip-address-type.ts,sha256=YKhisW_xbHwKqvK-b2PiA28C0lEPjkX43qqSUMMp2g8,1179
755
758
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.attributes.ts,sha256=SBcUGUdXKSD9qbo3xzGQV8PB0yi0Z-HhBbeKdv-ltuk,683
@@ -772,7 +775,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/in
772
775
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/integ.elasticsearch.ts,sha256=gG2zi0UswICJm09yzQDjydOojZ70akV5dClYcTcoPkQ,1680
773
776
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/integ.elasticsearch.ultrawarm.ts,sha256=y6MU1pvPFpYQpJe0foV4WdFvOSGSinABAGQa1gK_yKk,597
774
777
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/integ.elasticsearch.unsignedbasicauth.ts,sha256=qTmKzrWQSlUUSRmV2qOQ_PpZskV4YHgQH9lI0Dltnkk,826
775
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/README.md,sha256=4gXKO90Slec3z_f7-fvlFZGhqYZ693IEltwhpOusoLc,12820
778
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/README.md,sha256=zQLpjkTuk55A4ONa3EdlKYlWDWs0jnSDJJN68FTlJRU,13401
776
779
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.api-destination.ts,sha256=BG-rRLNMUyb0OurfMENJKVcUgU2Pz_x8-Jim7ygz8bg,1551
777
780
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.archive-customer-managed-key.ts,sha256=bPlvGpGjSXGO5afmFwQqWJI1L5Eb7iF-dlh-7zRw9BA,661
778
781
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.archive.ts,sha256=reNAFunkaCHQ8-fhFfmKtrDaUYUQq8XeXuCfslnxkSY,570
@@ -781,7 +784,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.cro
781
784
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus-cross-account-grants.ts,sha256=ES-knJkjxZ3TN1t7Dc1-yxsv5aurhY3FLRRbSz61CgE,3599
782
785
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus-customer-managed-key.ts,sha256=2Eagmd_gZbmSemtTQnehwjq76PObxeDhkWCBlUNQKHc,512
783
786
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus-grants.ts,sha256=c3Ffvk_79M7n4ILdM8mODvrXasTxavCa5yaqqkrmdlY,6768
784
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus.ts,sha256=eyuZCBdLiYw_Jmq7YmNCXi1suilulfGomXXNDlnxYjI,968
787
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus.ts,sha256=zj7YkMTjU-Ga3jgbxqgYBkDlTFa5fMW4ANO1O69uHWI,1226
785
788
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.rule.ts,sha256=nGg_Pob8FdnvTvrdU2q844-oj80KP0j8NVKRhLS-feU,2503
786
789
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/README.md,sha256=B1jKg4KD1tVVBbl_aUw6CS9J-rTwIQ3HwpalX-qP52E,22066
787
790
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.api-destination.ts,sha256=Oa05ARryXd4Zpd9mRsylvwWddReX1BrqAcoLhZ3595o,2545
@@ -1047,7 +1050,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.server
1047
1050
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.serverless-cluster-secret-rotation-custom-names.ts,sha256=qEeZja4_8GHkk_wEolcgpMXx8gIjyhYxQgtHj-QR90c,1182
1048
1051
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.serverless-cluster-secret-rotation.ts,sha256=dQh8mE1sGqXoh1oNLTHVGkxqJo1DUF9xFGRtpUMTtwM,1131
1049
1052
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.serverless-cluster.ts,sha256=QRk6RSL7MjT-Z0Wa5IqAGw6e4D9d1eD-_FF9JNPqaDc,1491
1050
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md,sha256=hl5Tg51IA-zOpgGMiBIiUbgdQBvofH25oLV1dvdWKIs,20074
1053
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md,sha256=nxj4FARlRKbIvum5XhAbRx85lPUpM_a9rL626S0e-b8,20851
1051
1054
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.cidr-routing-config.ts,sha256=s00XKe_4ev7V2QdrsMz1hTQdD7NG_DEvMKQO-qo2pOw,1820
1052
1055
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.cross-account-zone-delegation.ts,sha256=_rpT4PhjPn4zzQJkbCVdNuf_2PxCVAMBFh_sbI9Ipbc,4723
1053
1056
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.delete-existing-record-set.ts,sha256=S1DuUvrdXqsQO1-tBOrrZmLxbAtjLuYCbtVVULjCcQo,1177
@@ -1058,7 +1061,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.la
1058
1061
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.multi-value-answer-routing.ts,sha256=SSysel7SV6qlTIjotyUpmRebj2cdIvZ7uQBkW-xnENI,844
1059
1062
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.record-weight-from-cfnparameter.ts,sha256=V6veG5-MhCReyePAiNl2XQn-GcJvhqF9-f2calibTRc,1514
1060
1063
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.rename-cross-account-zone-delegation.ts,sha256=MSew1BwKTkwSMabaHaS0qFfJwTPCKME-6yzp4l4ImTQ,2841
1061
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.route53.ts,sha256=TTFfqWWbHXOEUDWYBN9WEt5lKYVhOtnH1fi1QRfQr88,2656
1064
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.route53.ts,sha256=Tq-9AddKPw_XL9OpbSbAxcHUvNie_aNwUgxc_qc--t8,4191
1062
1065
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.vpc-endpoint-service-domain-name.ts,sha256=30BelZf3n-5NlELN0Zb3wbCs4apkN1xkJZdRx7JaQaw,2287
1063
1066
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.weighted-record.ts,sha256=TuVcPmhLeJWBn0zjTy1mQIF5mY68-sYJqvAyO4fj-l0,1089
1064
1067
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-patterns/README.md,sha256=wagFrV44B0Rqy9rYXVpAQMGscGiEy9qRj54qfzfXNKk,3028
@@ -1070,7 +1073,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/
1070
1073
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.appsync-target.ts,sha256=eMoz_7Qu6q-lt-rPRqDEFz-drjMfvinKiWcwA5dn-rY,2383
1071
1074
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.bucket-website-target.ts,sha256=jJniIvUmT1A3pQLizomE-J2Z22OGpxu7mL2iN0cXpsE,1354
1072
1075
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.classic-load-balancer-target.ts,sha256=12UhvD3F-ZGjDWycNKGBPE1YqM5WyDFmrqA_vh8KgaY,1737
1073
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.cloudfront-alias-target.ts,sha256=WrimU3ZyPJIq8xb70g98s1ajALJULjoXEhj-g8oYUjg,952
1076
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.cloudfront-alias-target.ts,sha256=hfx0sYsWhjWx25F1NliGvWdDDRPzUq-vSaOJkLkItNc,1421
1074
1077
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.elastic-beanstalk-environment-target.ts,sha256=X7XzVVrWCovvPJ8LSi5A2CtaQ6cCfSvzt-c-n2etllY,5439
1075
1078
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.elastic-beanstalk-hostedzoneid.ts,sha256=RrNNQ48Xr6nlxYTGCfntaxJzg-jUgB13wl5IbkUq8jI,3270
1076
1079
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.elastic-beanstalk-token-endpoint.ts,sha256=Rcm26cq0VrYDykbRBykBqz5HDC0Ho5idZHUB8BeHo8g,3188
@@ -1252,7 +1255,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/in
1252
1255
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.state-machine-string.ts,sha256=SyMS-NCYiG438NnMDgT6NyGzGBYb3IWNPex6FEhr28I,652
1253
1256
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.state-machine-variables.ts,sha256=pwYfPpS-BYl-rj8raj4e2MDFLhxneEqXRZa1XyoK86g,1592
1254
1257
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.state-machine.ts,sha256=Th4guJjiux74rEMpTLzetv_6NFCjVfya2o1lTG9zSd8,1516
1255
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/README.md,sha256=SMaThYTZMYSVLgrmObXSxvH3-sdHYVP1Fupkg7LrwxY,70058
1258
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/README.md,sha256=PHUb34BTRpe2-cBklGJfYGtEaXDyevrwcvfSyduAtx8,71487
1256
1259
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region-lambda.ts,sha256=9iL1qgyCRDw96cE8mta-bap5Se7GpS2uEdODtlNnX14,3456
1257
1260
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region-task-token.ts,sha256=uwoP3B56QTzly4keKfb9qoestPVUzhNJSju06ywgKEM,2423
1258
1261
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region.ts,sha256=_8Y0g-JMJMkzmmoT-UYfEYWQD2LGcZ9YaSFKgw2lLKc,4245
@@ -1280,6 +1283,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-ta
1280
1283
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.ec2-task.ts,sha256=6biA4nAp24tWaEEKQWC3c28DQL3jFYz4xDN7n5JyCGc,2608
1281
1284
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-add-step-runtime-role.ts,sha256=aC1glcFqOr6ts7N7CdzqVmCFyK4MgbVoPfVXwaT_lgs,4053
1282
1285
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-auto-deletion-policy-idle-timeout.ts,sha256=Vff3EqGX-s6EOXXnlEyk3aUvBvSJY-qDH0jbg7sqYZg,2288
1286
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-ebs.ts,sha256=pVkL8oZ84SbOLpzBVK5JMlsajr19GvDGne12mm0ekgU,3890
1283
1287
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-on-demand-instance-fleet.ts,sha256=dfK20f59IO3KPH5IFBG9GhxISYGy0ZE0oqSVUXMn5co,1138
1284
1288
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-spot-instance-fleet.ts,sha256=RfjFTXGSI-yR5hvwYGB4OlmFU9b-ArY2dSfznfCNeho,1243
1285
1289
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-tags.ts,sha256=6GuNlN1TCjCfyE0IXm3nCl9yvISaNNDkfUuQE1s_6hg,1839
@@ -1341,6 +1345,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-inclu
1341
1345
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.autoscaling-update-policy.ts,sha256=AO7eaMhrYTEfF2KCAojdXM-AzTcikQM_pABITP6Lxnw,414
1342
1346
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.intrinsic-deletion-policy.ts,sha256=429Cz_kNp9aRs2TzK3nKyPLqKDF1UqD4PdkMmMEFL40,402
1343
1347
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.nested-stacks.ts,sha256=wA07P5nJM0CfW90QE14JvE_RYSkDqH-wthivd69nsPE,427
1348
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.novalue-nonstring.ts,sha256=xaqMOBrQ7vKUX-NtZiC0POVmnsOJ4wINWJ1P7ypoxk0,814
1344
1349
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.resource-tags-wtih-intrinsics.ts,sha256=48jFRaICLD-sTyaGEtcJ2fxc9qh5CZxtITonnBC_b6U,408
1345
1350
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/README.md,sha256=U3NPr-q771Fw7Rfgu0mWypaVkQ5ouQd4eyWGn4a6hhk,54
1346
1351
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/acknowledge-warnings.md,sha256=KjQ8of5npUmUUhQh0xGCyaKQElM5GB0njxdPC0AXg_8,5616
@@ -1407,8 +1412,8 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipe
1407
1412
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/region-info/README.md,sha256=vewWkV3ds9o9iyyYaJBNTkaKJ2XA6K2yF17tAxUnujg,2718
1408
1413
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/README.md,sha256=hYIx7DbG_7p4LYLUfxDwgIQjw9UNdz1GLrqDe8_Dbko,4132
1409
1414
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/integ.triggers.ts,sha256=4OHplMoBOgHGkktAzoU-TuNmJQS5wGAUvBfj5bGSe_Y,2807
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,,
1415
+ konokenj_cdk_api_mcp_server-0.45.0.dist-info/METADATA,sha256=cbXfA5ZlM-kxfiYmJnwrXB2345Jw2pQIQTTTH61IEAs,2646
1416
+ konokenj_cdk_api_mcp_server-0.45.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1417
+ konokenj_cdk_api_mcp_server-0.45.0.dist-info/entry_points.txt,sha256=bVDhMdyCC1WNMPOMbmB82jvWII2CIrwTZDygdCf0cYQ,79
1418
+ konokenj_cdk_api_mcp_server-0.45.0.dist-info/licenses/LICENSE.txt,sha256=5OIAASeg1HM22mVZ1enz9bgZ7TlsGfWXnj02P9OgFyk,1098
1419
+ konokenj_cdk_api_mcp_server-0.45.0.dist-info/RECORD,,