konokenj.cdk-api-mcp-server 0.48.0__py3-none-any.whl → 0.49.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (27) hide show
  1. cdk_api_mcp_server/__about__.py +1 -1
  2. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-amplify-alpha/README.md +12 -0
  3. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/README.md +15 -1
  4. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.managed-compute-environment-default-instance-class.ts +20 -0
  5. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md +33 -0
  6. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-ip-address-type.ts +84 -0
  7. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/README.md +1 -1
  8. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.anomaly-detection-alarm.ts +44 -2
  9. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md +15 -0
  10. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.client-vpn-endpoint-disconnect-on-session-timeout.ts +65 -0
  11. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/README.md +20 -0
  12. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-removal-policy.ts +31 -0
  13. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/README.md +42 -0
  14. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream-shard-level-monitoring.ts +47 -0
  15. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md +9 -0
  16. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/README.md +4 -0
  17. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter-apply-on-transformed-logs.ts +29 -0
  18. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts +1 -0
  19. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md +12 -0
  20. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.private-hosted-zone-from-attributes.ts +41 -0
  21. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/README.md +17 -1
  22. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-runtime-validation.ts +43 -0
  23. {konokenj_cdk_api_mcp_server-0.48.0.dist-info → konokenj_cdk_api_mcp_server-0.49.0.dist-info}/METADATA +2 -2
  24. {konokenj_cdk_api_mcp_server-0.48.0.dist-info → konokenj_cdk_api_mcp_server-0.49.0.dist-info}/RECORD +27 -19
  25. {konokenj_cdk_api_mcp_server-0.48.0.dist-info → konokenj_cdk_api_mcp_server-0.49.0.dist-info}/WHEEL +0 -0
  26. {konokenj_cdk_api_mcp_server-0.48.0.dist-info → konokenj_cdk_api_mcp_server-0.49.0.dist-info}/entry_points.txt +0 -0
  27. {konokenj_cdk_api_mcp_server-0.48.0.dist-info → konokenj_cdk_api_mcp_server-0.49.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.48.0"
4
+ __version__ = "0.49.0"
@@ -353,6 +353,18 @@ const amplifyApp = new amplify.App(this, 'MyApp', {
353
353
  });
354
354
  ```
355
355
 
356
+ ## Build Compute Type
357
+
358
+ You can specify the build compute type by setting the `buildComputeType` property.
359
+
360
+ For more information, see [Configuring the build instance for an Amplify application](https://docs.aws.amazon.com/amplify/latest/userguide/custom-build-instance.html).
361
+
362
+ ```ts
363
+ const amplifyApp = new amplify.App(this, 'MyApp', {
364
+ buildComputeType: amplify.BuildComputeType.LARGE_16GB,
365
+ });
366
+ ```
367
+
356
368
  ## Deploying Assets
357
369
 
358
370
  `sourceCodeProvider` is optional; when this is not specified the Amplify app can be deployed to using `.zip` packages. The `asset` property can be used to deploy S3 assets to Amplify as part of the CDK:
@@ -65,7 +65,18 @@ For stateful or otherwise non-interruption-tolerant workflows, omit `spot` or se
65
65
 
66
66
  #### Choosing Your Instance Types
67
67
 
68
- Batch allows you to choose the instance types or classes that will run your workload.
68
+ Batch allows you to choose most up-to-date instance classes based on your region.
69
+ This example configures your `ComputeEnvironment` to use only ARM64 instance:
70
+
71
+ ```ts
72
+ const vpc = new ec2.Vpc(this, 'VPC');
73
+
74
+ new batch.ManagedEc2EcsComputeEnvironment(this, 'myEc2ComputeEnv', {
75
+ vpc,
76
+ defaultInstanceClasses: [batch.DefaultInstanceClass.ARM64],
77
+ });
78
+ ```
79
+
69
80
  This example configures your `ComputeEnvironment` to use only the `M5AD.large` instance:
70
81
 
71
82
  ```ts
@@ -91,6 +102,9 @@ new batch.ManagedEc2EcsComputeEnvironment(this, 'myEc2ComputeEnv', {
91
102
  });
92
103
  ```
93
104
 
105
+ > [!WARNING]
106
+ > `useOptimalInstanceClasses` is deprecated! Use `defaultInstanceClasses` instead.
107
+
94
108
  Unless you explicitly specify `useOptimalInstanceClasses: false`, this compute environment will use `'optimal'` instances,
95
109
  which tells Batch to pick an instance from the C4, M4, and R4 instance families.
96
110
  *Note*: Batch does not allow specifying instance types or classes with different architectures.
@@ -0,0 +1,20 @@
1
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
+ import { App, Stack } from 'aws-cdk-lib';
3
+ import * as integ from '@aws-cdk/integ-tests-alpha';
4
+ import { ManagedEc2EcsComputeEnvironment, EcsMachineImageType, DefaultInstanceClass } from 'aws-cdk-lib/aws-batch';
5
+
6
+ const app = new App();
7
+ const stack = new Stack(app, 'managed-compute-environment-default-instance-class');
8
+ const vpc = new ec2.Vpc(stack, 'vpc', { restrictDefaultSecurityGroup: false });
9
+
10
+ new ManagedEc2EcsComputeEnvironment(stack, 'ECS', {
11
+ vpc,
12
+ images: [{
13
+ imageType: EcsMachineImageType.ECS_AL2023,
14
+ }],
15
+ defaultInstanceClasses: [DefaultInstanceClass.ARM64],
16
+ });
17
+
18
+ new integ.IntegTest(app, 'integ-managed-compute-environment-default-instance-class', {
19
+ testCases: [stack],
20
+ });
@@ -851,6 +851,39 @@ new cloudfront.Distribution(this, 'Distribution', {
851
851
  });
852
852
  ```
853
853
 
854
+ ### Configuring IP Address Type
855
+
856
+ You can specify which IP protocol CloudFront uses when connecting to your Lambda Function URL origin. By default, CloudFront uses IPv4 only.
857
+
858
+ ```ts
859
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
860
+ import { OriginIpAddressType } from 'aws-cdk-lib/aws-cloudfront';
861
+
862
+ declare const fn: lambda.Function;
863
+ const fnUrl = fn.addFunctionUrl({ authType: lambda.FunctionUrlAuthType.NONE });
864
+
865
+ // Uses default IPv4 only
866
+ new cloudfront.Distribution(this, 'Distribution', {
867
+ defaultBehavior: {
868
+ origin: new origins.FunctionUrlOrigin(fnUrl)
869
+ },
870
+ });
871
+
872
+ // Explicitly specify IP address type
873
+ new cloudfront.Distribution(this, 'Distribution', {
874
+ defaultBehavior: {
875
+ origin: new origins.FunctionUrlOrigin(fnUrl, {
876
+ ipAddressType: OriginIpAddressType.DUALSTACK, // Use both IPv4 and IPv6
877
+ })
878
+ },
879
+ });
880
+ ```
881
+
882
+ Supported values for `ipAddressType`:
883
+ - `OriginIpAddressType.IPV4` - CloudFront uses IPv4 only to connect to the origin (default)
884
+ - `OriginIpAddressType.IPV6` - CloudFront uses IPv6 only to connect to the origin
885
+ - `OriginIpAddressType.DUALSTACK` - CloudFront uses both IPv4 and IPv6 to connect to the origin
886
+
854
887
  ### Lambda Function URL with Origin Access Control (OAC)
855
888
  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.
856
889
 
@@ -0,0 +1,84 @@
1
+ import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
2
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
3
+ import { FunctionUrlOrigin } from 'aws-cdk-lib/aws-cloudfront-origins';
4
+ import { App, Stack } from 'aws-cdk-lib';
5
+ import { ExpectedResult, IntegTest } from '@aws-cdk/integ-tests-alpha';
6
+ import { OriginIpAddressType } from 'aws-cdk-lib/aws-cloudfront';
7
+
8
+ const app = new App();
9
+ const stack = new Stack(app, 'FunctionUrlOriginIpAddressTypeStack');
10
+
11
+ // Lambda function
12
+ const fn = new lambda.Function(stack, 'TestFunction', {
13
+ code: lambda.Code.fromInline('exports.handler = async () => ({ statusCode: 200, body: "Hello" });'),
14
+ handler: 'index.handler',
15
+ runtime: lambda.Runtime.NODEJS_20_X,
16
+ });
17
+
18
+ // Function URL with IAM auth
19
+ const fnUrl = fn.addFunctionUrl({
20
+ authType: lambda.FunctionUrlAuthType.AWS_IAM,
21
+ });
22
+
23
+ // CloudFront distribution with IPv4 IP address type
24
+ new cloudfront.Distribution(stack, 'DistributionWithoutIpAddressTypeProp(IPv4)', {
25
+ defaultBehavior: {
26
+ origin: FunctionUrlOrigin.withOriginAccessControl(fnUrl, {}),
27
+ },
28
+ });
29
+
30
+ // CloudFront distribution with IPv4 IP address type
31
+ const distributionIPv4 = new cloudfront.Distribution(stack, 'DistributionWithIPv4', {
32
+ defaultBehavior: {
33
+ origin: FunctionUrlOrigin.withOriginAccessControl(fnUrl, {
34
+ ipAddressType: OriginIpAddressType.IPV4,
35
+ }),
36
+ },
37
+ });
38
+
39
+ // CloudFront distribution with IPv6 IP address type
40
+ const distributionIPv6 = new cloudfront.Distribution(stack, 'DistributionWithIPv6', {
41
+ defaultBehavior: {
42
+ origin: FunctionUrlOrigin.withOriginAccessControl(fnUrl, {
43
+ ipAddressType: OriginIpAddressType.IPV6,
44
+ }),
45
+ },
46
+ });
47
+
48
+ // CloudFront distribution with dualstack IP address type
49
+ const distributionDualstack = new cloudfront.Distribution(stack, 'DistributionWithDualstack', {
50
+ defaultBehavior: {
51
+ origin: FunctionUrlOrigin.withOriginAccessControl(fnUrl, {
52
+ ipAddressType: OriginIpAddressType.DUALSTACK,
53
+ }),
54
+ },
55
+ });
56
+
57
+ const integ = new IntegTest(app, 'FunctionUrlOriginIpAddressTypeTest', {
58
+ testCases: [stack],
59
+ });
60
+
61
+ // Assert that distributions are created with expected IP address type settings
62
+ integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
63
+ Id: distributionIPv4.distributionId,
64
+ }).assertAtPath('Distribution.DistributionConfig.IsIPV4Enabled', ExpectedResult.exact(true));
65
+
66
+ integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
67
+ Id: distributionIPv4.distributionId,
68
+ }).assertAtPath('Distribution.DistributionConfig.IsIPV6Enabled', ExpectedResult.exact(false));
69
+
70
+ integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
71
+ Id: distributionIPv6.distributionId,
72
+ }).assertAtPath('Distribution.DistributionConfig.IsIPV4Enabled', ExpectedResult.exact(false));
73
+
74
+ integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
75
+ Id: distributionIPv6.distributionId,
76
+ }).assertAtPath('Distribution.DistributionConfig.IsIPV6Enabled', ExpectedResult.exact(true));
77
+
78
+ integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
79
+ Id: distributionDualstack.distributionId,
80
+ }).assertAtPath('Distribution.DistributionConfig.IsIPV4Enabled', ExpectedResult.exact(true));
81
+
82
+ integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
83
+ Id: distributionDualstack.distributionId,
84
+ }).assertAtPath('Distribution.DistributionConfig.IsIPV6Enabled', ExpectedResult.exact(true));
@@ -479,7 +479,7 @@ const metric = new cloudwatch.Metric({
479
479
  namespace: 'AWS/EC2',
480
480
  metricName: 'CPUUtilization',
481
481
  statistic: 'Average',
482
- period: Duration.minutes(5),
482
+ period: Duration.hours(1), // Alarm will use the metric's period
483
483
  });
484
484
 
485
485
  // Create an anomaly detection alarm
@@ -5,12 +5,19 @@ import { Metric, ComparisonOperator, AnomalyDetectionAlarm, Alarm } from 'aws-cd
5
5
  const app = new App();
6
6
  const stack = new Stack(app, 'AnomalyDetectionAlarmTestStack');
7
7
 
8
- // Create the test metric
8
+ // Create the test metric. Period will default to 300 seconds.
9
9
  const metric = new Metric({
10
10
  namespace: 'AWS/EC2',
11
11
  metricName: 'CPUUtilization',
12
12
  statistic: 'Average',
13
- period: Duration.minutes(5),
13
+ });
14
+
15
+ // Create test metric with custom period
16
+ const customPeriodMetric = new Metric({
17
+ namespace: 'AWS/EC2',
18
+ metricName: 'CPUUtilization',
19
+ statistic: 'Average',
20
+ period: Duration.days(1),
14
21
  });
15
22
 
16
23
  // Create an anomaly detection alarm with default operator
@@ -40,6 +47,14 @@ const descriptiveAlarm = Metric.anomalyDetectionFor({
40
47
  comparisonOperator: ComparisonOperator.GREATER_THAN_UPPER_THRESHOLD,
41
48
  });
42
49
 
50
+ // Create an anomaly detection alarm with custom period
51
+ const customPeriodAlarm = new AnomalyDetectionAlarm(stack, 'CustomPeriodAnomalyAlarm', {
52
+ metric: customPeriodMetric,
53
+ stdDevs: 2,
54
+ evaluationPeriods: 1,
55
+ comparisonOperator: ComparisonOperator.LESS_THAN_LOWER_OR_GREATER_THAN_UPPER_THRESHOLD,
56
+ });
57
+
43
58
  // Create the integration test
44
59
  const integ = new IntegTest(app, 'AnomalyDetectionAlarmIntegTest', {
45
60
  testCases: [stack],
@@ -122,3 +137,30 @@ integ.assertions
122
137
  }),
123
138
  ]),
124
139
  }));
140
+
141
+ integ.assertions
142
+ .awsApiCall('CloudWatch', 'describeAlarms', {
143
+ AlarmNames: [customPeriodAlarm.alarmName],
144
+ })
145
+ .expect(ExpectedResult.objectLike({
146
+ MetricAlarms: Match.arrayWith([
147
+ Match.objectLike({
148
+ ComparisonOperator: 'LessThanLowerOrGreaterThanUpperThreshold',
149
+ EvaluationPeriods: 1,
150
+ ThresholdMetricId: 'expr_1',
151
+ Metrics: Match.arrayWith([
152
+ Match.objectLike({
153
+ Expression: 'ANOMALY_DETECTION_BAND(m0, 2)',
154
+ Id: 'expr_1',
155
+ ReturnData: true,
156
+ }),
157
+ Match.objectLike({
158
+ Id: 'm0',
159
+ MetricStat: Match.objectLike({
160
+ Period: 86400, // 1 day in seconds, orignal metric period got overriden
161
+ }),
162
+ }),
163
+ ]),
164
+ }),
165
+ ]),
166
+ }));
@@ -1306,6 +1306,21 @@ const endpoint = vpc.addClientVpnEndpoint('Endpoint', {
1306
1306
  });
1307
1307
  ```
1308
1308
 
1309
+ To control whether clients are automatically disconnected when the maximum session duration is reached, use the `disconnectOnSessionTimeout` prop.
1310
+ By default (`true`), clients are disconnected and must manually reconnect.
1311
+ Set to `false` to allow automatic reconnection attempts:
1312
+
1313
+ ```ts fixture=client-vpn
1314
+ const endpoint = vpc.addClientVpnEndpoint('Endpoint', {
1315
+ cidr: '10.100.0.0/16',
1316
+ serverCertificateArn: 'arn:aws:acm:us-east-1:123456789012:certificate/server-certificate-id',
1317
+ clientCertificateArn: 'arn:aws:acm:us-east-1:123456789012:certificate/client-certificate-id',
1318
+ disconnectOnSessionTimeout: false, // Allow automatic reconnection attempts
1319
+ });
1320
+ ```
1321
+
1322
+ Detail information about maximum VPN session duration timeout can be found in the [AWS documentation](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-max-duration.html).
1323
+
1309
1324
  ## Instances
1310
1325
 
1311
1326
  You can use the `Instance` class to start up a single EC2 instance. For production setups, we recommend
@@ -0,0 +1,65 @@
1
+ import { App, RemovalPolicy, Stack, StackProps, UnscopedValidationError } from 'aws-cdk-lib';
2
+ import * as acm from 'aws-cdk-lib/aws-certificatemanager';
3
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
4
+ import * as logs from 'aws-cdk-lib/aws-logs';
5
+ import * as route53 from 'aws-cdk-lib/aws-route53';
6
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
7
+ import { Construct } from 'constructs';
8
+
9
+ /**
10
+ * In order to test this you need to have a valid public hosted zone that you can use
11
+ * to validate the domain identity.
12
+ */
13
+ const hostedZoneId = process.env.CDK_INTEG_HOSTED_ZONE_ID ?? process.env.HOSTED_ZONE_ID;
14
+ if (!hostedZoneId) throw new UnscopedValidationError('For this test you must provide your own HostedZoneId as an env var "HOSTED_ZONE_ID". See framework-integ/README.md for details.');
15
+ const hostedZoneName = process.env.CDK_INTEG_HOSTED_ZONE_NAME ?? process.env.HOSTED_ZONE_NAME;
16
+ if (!hostedZoneName) throw new UnscopedValidationError('For this test you must provide your own HostedZoneName as an env var "HOSTED_ZONE_NAME". See framework-integ/README.md for details.');
17
+
18
+ interface TestStackProps extends StackProps {
19
+ hostedZoneId: string;
20
+ hostedZoneName: string;
21
+ }
22
+
23
+ class TestStack extends Stack {
24
+ constructor(scope: Construct, id: string, props: TestStackProps) {
25
+ super(scope, id, props);
26
+
27
+ const hostedZone = route53.PublicHostedZone.fromHostedZoneAttributes(this, 'HostedZone', {
28
+ hostedZoneId: props.hostedZoneId,
29
+ zoneName: props.hostedZoneName,
30
+ });
31
+
32
+ const serverCertificate = new acm.Certificate(this, 'Certificate', {
33
+ domainName: `server.${props.hostedZoneName}`,
34
+ validation: acm.CertificateValidation.fromDns(hostedZone),
35
+ });
36
+ const clientCertificate = new acm.Certificate(this, 'ClientCertificate', {
37
+ domainName: `client.${props.hostedZoneName}`,
38
+ validation: acm.CertificateValidation.fromDns(hostedZone),
39
+ });
40
+
41
+ const vpc = new ec2.Vpc(this, 'Vpc', { maxAzs: 2, natGateways: 0 });
42
+
43
+ const logGroup = new logs.LogGroup(this, 'LogGroup', {
44
+ removalPolicy: RemovalPolicy.DESTROY,
45
+ });
46
+
47
+ vpc.addClientVpnEndpoint('Endpoint', {
48
+ cidr: '10.100.0.0/16',
49
+ serverCertificateArn: serverCertificate.certificateArn,
50
+ clientCertificateArn: clientCertificate.certificateArn,
51
+ logGroup,
52
+ disconnectOnSessionTimeout: false,
53
+ });
54
+ }
55
+ }
56
+
57
+ const app = new App();
58
+ new IntegTest(app, 'client-vpn-endpoint-integ', {
59
+ testCases: [
60
+ new TestStack(app, 'client-vpn-endpoint-stack', {
61
+ hostedZoneId,
62
+ hostedZoneName,
63
+ }),
64
+ ],
65
+ });
@@ -147,6 +147,26 @@ new eks.Cluster(this, 'HelloEKS', {
147
147
  });
148
148
  ```
149
149
 
150
+ You can control what happens to the resources created by the cluster construct when they are no longer managed by CloudFormation by specifying a `removalPolicy`.
151
+
152
+ This can happen in one of three situations:
153
+ - The resource is removed from the template, so CloudFormation stops managing it;
154
+ - A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it;
155
+ - The stack is deleted, so CloudFormation stops managing all resources in it.
156
+
157
+ This affects the EKS cluster itself, the custom resource that created the cluster, associated IAM roles, node groups, security groups, VPC and any other CloudFormation resources managed by this construct.
158
+
159
+ ```ts
160
+ import { KubectlV33Layer } from '@aws-cdk/lambda-layer-kubectl-v33';
161
+ import * as core from 'aws-cdk-lib/core';
162
+
163
+ new eks.Cluster(this, 'HelloEKS', {
164
+ version: eks.KubernetesVersion.V1_33,
165
+ kubectlLayer: new KubectlV33Layer(this, 'kubectl'),
166
+ removalPolicy: core.RemovalPolicy.RETAIN, // Keep all resources created by the construct.
167
+ });
168
+ ```
169
+
150
170
  You can also use `FargateCluster` to provision a cluster that uses only fargate workers.
151
171
 
152
172
  ```ts
@@ -0,0 +1,31 @@
1
+ /// !cdk-integ pragma:disable-update-workflow
2
+ import { App, RemovalPolicy, Stack, StackProps } from 'aws-cdk-lib';
3
+ import * as integ from '@aws-cdk/integ-tests-alpha';
4
+ import { getClusterVersionConfig } from './integ-tests-kubernetes-version';
5
+ import * as eks from 'aws-cdk-lib/aws-eks';
6
+
7
+ /**
8
+ * This test just checks that all resources can be deployed with a removal policy.
9
+ * We use the DESTROY policy here to avoid leaving orphaned resources behind, but if it works for DESTROY, it should work for other values as well.
10
+ */
11
+ class EksClusterRemovalPolicyStack extends Stack {
12
+ constructor(scope: App, id: string, props?: StackProps) {
13
+ super(scope, id, props);
14
+
15
+ new eks.Cluster(this, 'Cluster', {
16
+ ...getClusterVersionConfig(this, eks.KubernetesVersion.V1_32),
17
+ removalPolicy: RemovalPolicy.DESTROY,
18
+ });
19
+ }
20
+ }
21
+
22
+ const app = new App();
23
+
24
+ const stack = new EksClusterRemovalPolicyStack(app, 'EksClusterRemovalPolicyStack');
25
+
26
+ new integ.IntegTest(app, 'eks-cluster-removal-policy-integ', {
27
+ testCases: [stack],
28
+ diffAssets: false,
29
+ });
30
+
31
+ app.synth();
@@ -15,6 +15,7 @@ intake and aggregation.
15
15
  - [Write Permissions](#write-permissions)
16
16
  - [Custom Permissions](#custom-permissions)
17
17
  - [Metrics](#metrics)
18
+ - [Shard-level Metrics](#shard-level-metrics)
18
19
  - [Stream Consumers](#stream-consumers)
19
20
  - [Read Permissions](#read-permissions-1)
20
21
  - [Resource Policy](#resource-policy)
@@ -191,6 +192,47 @@ stream.metricGetRecordsSuccess();
191
192
  stream.metricGetRecordsSuccess({ statistic: 'Maximum' });
192
193
  ```
193
194
 
195
+ #### Shard-level Metrics
196
+
197
+ You can enable enhanced shard-level metrics for your Kinesis stream to get detailed monitoring of individual shards. Shard-level metrics provide more granular insights into the performance and health of your stream.
198
+
199
+ ```ts
200
+ const stream = new kinesis.Stream(this, 'MyStream', {
201
+ shardLevelMetrics: [kinesis.ShardLevelMetrics.ALL],
202
+ });
203
+ ```
204
+
205
+ You can also specify individual metrics that you want to monitor:
206
+
207
+ ```ts
208
+ const stream = new kinesis.Stream(this, 'MyStream', {
209
+ shardLevelMetrics: [
210
+ kinesis.ShardLevelMetrics.INCOMING_BYTES,
211
+ kinesis.ShardLevelMetrics.INCOMING_RECORDS,
212
+ kinesis.ShardLevelMetrics.ITERATOR_AGE_MILLISECONDS,
213
+ kinesis.ShardLevelMetrics.OUTGOING_BYTES,
214
+ kinesis.ShardLevelMetrics.OUTGOING_RECORDS,
215
+ kinesis.ShardLevelMetrics.READ_PROVISIONED_THROUGHPUT_EXCEEDED,
216
+ kinesis.ShardLevelMetrics.WRITE_PROVISIONED_THROUGHPUT_EXCEEDED,
217
+ ],
218
+ });
219
+ ```
220
+
221
+ Available shard-level metrics include:
222
+
223
+ - `INCOMING_BYTES` - The number of bytes successfully put to the shard
224
+ - `INCOMING_RECORDS` - The number of records successfully put to the shard
225
+ - `ITERATOR_AGE_MILLISECONDS` - The age of the last record in all GetRecords calls made against a shard
226
+ - `OUTGOING_BYTES` - The number of bytes retrieved from the shard
227
+ - `OUTGOING_RECORDS` - The number of records retrieved from the shard
228
+ - `READ_PROVISIONED_THROUGHPUT_EXCEEDED` - The number of GetRecords calls throttled for the shard
229
+ - `WRITE_PROVISIONED_THROUGHPUT_EXCEEDED` - The number of records rejected due to throttling for the shard
230
+ - `ALL` - All available metrics
231
+
232
+ Note: You cannot specify `ALL` together with other individual metrics. If you want all metrics, use `ALL` alone.
233
+
234
+ For more information about shard-level metrics, see [Monitoring the Amazon Kinesis Data Streams Service with Amazon CloudWatch](https://docs.aws.amazon.com/streams/latest/dev/monitoring-with-cloudwatch.html#kinesis-metrics-shard).
235
+
194
236
  ## Stream Consumers
195
237
 
196
238
  Creating stream consumers allow consumers to receive data from the stream using enhanced fan-out at a rate of up to 2 MiB per second for every shard.
@@ -0,0 +1,47 @@
1
+ import { App, Stack, RemovalPolicies } from 'aws-cdk-lib';
2
+ import * as kinesis from 'aws-cdk-lib/aws-kinesis';
3
+ import { ExpectedResult, IntegTest } from '@aws-cdk/integ-tests-alpha';
4
+
5
+ const app = new App();
6
+ const stack = new Stack(app, 'kinesis-stream-shard-level-monitoring-stack');
7
+
8
+ const explicitStream = new kinesis.Stream(stack, 'ExplicitStream', {
9
+ shardLevelMetrics: [
10
+ kinesis.ShardLevelMetrics.INCOMING_BYTES,
11
+ kinesis.ShardLevelMetrics.INCOMING_RECORDS,
12
+ kinesis.ShardLevelMetrics.ITERATOR_AGE_MILLISECONDS,
13
+ kinesis.ShardLevelMetrics.OUTGOING_BYTES,
14
+ kinesis.ShardLevelMetrics.OUTGOING_RECORDS,
15
+ kinesis.ShardLevelMetrics.WRITE_PROVISIONED_THROUGHPUT_EXCEEDED,
16
+ kinesis.ShardLevelMetrics.READ_PROVISIONED_THROUGHPUT_EXCEEDED,
17
+ ],
18
+ });
19
+
20
+ const allStream = new kinesis.Stream(stack, 'AllStream', {
21
+ shardLevelMetrics: [kinesis.ShardLevelMetrics.ALL],
22
+ });
23
+
24
+ RemovalPolicies.of(stack).destroy();
25
+
26
+ const integ = new IntegTest(app, 'integ-kinesis-stream-consumer', {
27
+ testCases: [stack],
28
+ });
29
+
30
+ const streams = [explicitStream, allStream];
31
+ streams.forEach((stream) => {
32
+ integ.assertions.awsApiCall('Kinesis', 'describeStream', {
33
+ StreamName: stream.streamName,
34
+ }).expect(ExpectedResult.objectLike({
35
+ StreamDescription: {
36
+ ShardLevelMetrics: [
37
+ 'IncomingBytes',
38
+ 'IncomingRecords',
39
+ 'IteratorAgeMilliseconds',
40
+ 'OutgoingBytes',
41
+ 'OutgoingRecords',
42
+ 'WriteProvisionedThroughputExceeded',
43
+ 'ReadProvisionedThroughputExceeded',
44
+ ],
45
+ },
46
+ }));
47
+ });
@@ -642,6 +642,15 @@ new CfnOutput(this, 'TheUrl', {
642
642
  });
643
643
  ```
644
644
 
645
+ ### Important Function URL Permission Update - Oct 2025
646
+ Starting Oct 2025, Function URL invocation will require two permissions
647
+ - lambda:InvokeFunctionUrl
648
+ - lambda:InvokeFunction (New)
649
+
650
+ CDK has updated `grantInvokeUrl` and `addFunctionUrl` to add both permission above.
651
+
652
+ If your existing CDK stack uses `grantInvokeUrl` or `addFunctionUrl`, your next deployment will automatically add the `lambda:InvokeFunction` permission without requiring any code changes. This ensures your Function URLs continue working seamlessly. No additional actions are needed.
653
+
645
654
  ### CORS configuration for Function URLs
646
655
 
647
656
  If you want your Function URLs to be invokable from a web page in browser, you
@@ -545,6 +545,10 @@ new logs.Transformer(this, 'Transformer', {
545
545
 
546
546
  For more details on CloudWatch Logs transformation processors, refer to the [AWS documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation-Processors.html).
547
547
 
548
+ ### Usage of metric filters on transformed logs
549
+
550
+ In order to use the transformed logs as search pattern, set the parameter `applyOnTransformedLogs: true` in the MetricFilterProps.
551
+
548
552
  ## Notes
549
553
 
550
554
  Be aware that Log Group ARNs will always have the string `:*` appended to
@@ -0,0 +1,29 @@
1
+ import { App, RemovalPolicy, Stack, StackProps } from 'aws-cdk-lib';
2
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
3
+ import { FilterPattern, LogGroup, MetricFilter } from 'aws-cdk-lib/aws-logs';
4
+
5
+ class TestStack extends Stack {
6
+ constructor(scope: App, id: string, props?: StackProps) {
7
+ super(scope, id, props);
8
+
9
+ const logGroup = new LogGroup(this, 'LogGroup', {
10
+ removalPolicy: RemovalPolicy.DESTROY,
11
+ });
12
+
13
+ new MetricFilter(this, 'MetricFilter', {
14
+ logGroup,
15
+ metricNamespace: 'MyApp',
16
+ metricName: 'Latency',
17
+ filterPattern: FilterPattern.exists('$.latency'),
18
+ applyOnTransformedLogs: true,
19
+ });
20
+ }
21
+ }
22
+
23
+ const app = new App();
24
+ const testCase = new TestStack(app, 'aws-cdk-metricfilter-apply-on-transformed-logs-integ');
25
+
26
+ new IntegTest(app, 'metricfilter-apply-on-transformed-logs', {
27
+ testCases: [testCase],
28
+ });
29
+ app.synth();
@@ -11,6 +11,7 @@ class TestStack extends Stack {
11
11
  opensearch.EngineVersion.OPENSEARCH_2_13,
12
12
  opensearch.EngineVersion.OPENSEARCH_2_15,
13
13
  opensearch.EngineVersion.OPENSEARCH_2_17,
14
+ opensearch.EngineVersion.OPENSEARCH_3_1,
14
15
  ];
15
16
 
16
17
  // deploy opensearch domain with minimal configuration
@@ -558,6 +558,18 @@ const zoneFromAttributes = route53.PublicHostedZone.fromPublicHostedZoneAttribut
558
558
  const zoneFromId = route53.PublicHostedZone.fromPublicHostedZoneId(this, 'MyZone', 'ZOJJZC49E0EPZ');
559
559
  ```
560
560
 
561
+ You can import a Private Hosted Zone with `PrivateHostedZone.fromPrivateHostedZoneId` and `PrivateHostedZone.fromPrivateHostedZoneAttributes` methods:
562
+
563
+ ```ts
564
+ const privateZoneFromAttributes = route53.PrivateHostedZone.fromPrivateHostedZoneAttributes(this, 'MyPrivateZone', {
565
+ zoneName: 'example.local',
566
+ hostedZoneId: 'ZOJJZC49E0EPZ',
567
+ });
568
+
569
+ // Does not know zoneName
570
+ const privateZoneFromId = route53.PrivateHostedZone.fromPrivateHostedZoneId(this, 'MyPrivateZone', 'ZOJJZC49E0EPZ');
571
+ ```
572
+
561
573
  You can use `CrossAccountZoneDelegationRecord` on imported Hosted Zones with the `grantDelegation` method:
562
574
 
563
575
  ```ts
@@ -0,0 +1,41 @@
1
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
+ import * as cdk from 'aws-cdk-lib';
3
+ import * as route53 from 'aws-cdk-lib/aws-route53';
4
+ import { PrivateHostedZone } from 'aws-cdk-lib/aws-route53';
5
+ import { ExpectedResult, IntegTest } from '@aws-cdk/integ-tests-alpha';
6
+
7
+ const app = new cdk.App();
8
+
9
+ const stack = new cdk.Stack(app, 'aws-cdk-route53-integ');
10
+
11
+ const vpc = new ec2.Vpc(stack, 'VPC', { maxAzs: 1, restrictDefaultSecurityGroup: false });
12
+
13
+ const privateZone = new PrivateHostedZone(stack, 'PrivateZone', {
14
+ zoneName: 'aws-cdk.dev', vpc,
15
+ });
16
+
17
+ const expectPrivateHostedZone = route53.PrivateHostedZone.fromHostedZoneAttributes(stack, 'ExpectPrivateHostedZone', {
18
+ hostedZoneId: privateZone.hostedZoneId,
19
+ zoneName: privateZone.zoneName,
20
+ });
21
+
22
+ const integTest = new IntegTest(app, 'AwsCdkRoute53IntegTest', {
23
+ testCases: [stack],
24
+ diffAssets: false,
25
+ });
26
+
27
+ const hostedZoneApiCall = integTest.assertions.awsApiCall('Route53', 'getHostedZone', {
28
+ Id: expectPrivateHostedZone.hostedZoneId,
29
+ });
30
+
31
+ hostedZoneApiCall.expect(
32
+ ExpectedResult.objectLike({
33
+ HostedZone: {
34
+ Id: expectPrivateHostedZone.hostedZoneId,
35
+ Name: expectPrivateHostedZone.zoneName,
36
+ },
37
+ }),
38
+ );
39
+
40
+ app.synth();
41
+
@@ -267,7 +267,7 @@ new synthetics.Canary(this, 'Bucket Canary', {
267
267
  ```
268
268
 
269
269
  > **Note:** Synthetics have a specified folder structure for canaries.
270
- > For Node with puppeteer scripts supplied via `code.fromAsset()` or `code.fromBucket()`, the canary resource requires the following folder structure:
270
+ > For Node with puppeteer scripts supplied via `code.fromAsset()` or `code.fromBucket()`, the canary resource requires the following folder structure for runtime versions older than `syn-nodejs-puppeteer-11.0`:
271
271
  >
272
272
  > ```plaintext
273
273
  > canary/
@@ -276,6 +276,22 @@ new synthetics.Canary(this, 'Bucket Canary', {
276
276
  > ├── <filename>.js
277
277
  > ```
278
278
  >
279
+ > For puppeteer based runtime versions newer than or equal to `syn-nodejs-puppeteer-11.0`, `nodjs/node_modules` is not necessary but supported.
280
+ >
281
+ > Both
282
+ > ```plaintext
283
+ > canary/
284
+ > ├── nodejs/
285
+ > ├── node_modules/
286
+ > ├── <filename>.js
287
+ > ```
288
+ > And
289
+ > ```plaintext
290
+ > canary/
291
+ > ├── <filename>.js
292
+ > ```
293
+ > are supported.
294
+ >
279
295
  > For Node with playwright scripts supplied via `code.fromAsset()` or `code.fromBucket()`, the canary resource requires the following folder structure:
280
296
  >
281
297
  > ```plaintext
@@ -0,0 +1,43 @@
1
+ import * as path from 'node:path';
2
+ import { App, Duration, Size, Stack, StackProps } from 'aws-cdk-lib/core';
3
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
4
+ import { Construct } from 'constructs';
5
+ import * as synthetics from 'aws-cdk-lib/aws-synthetics';
6
+
7
+ class TestStack extends Stack {
8
+ public puppeteer11RootCanary: synthetics.Canary;
9
+ public puppeteer11NodeModulesCanary: synthetics.Canary;
10
+
11
+ constructor(scope: Construct, id: string, props?: StackProps) {
12
+ super(scope, id, props);
13
+
14
+ // Test puppeteer 11.0+ with root-level files only
15
+ this.puppeteer11RootCanary = new synthetics.Canary(this, 'Puppeteer11RootCanary', {
16
+ runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_11_0,
17
+ test: synthetics.Test.custom({
18
+ handler: 'canary.handler',
19
+ code: synthetics.Code.fromAsset(path.join(__dirname, 'canaries-runtime-validation', 'root-only')),
20
+ }),
21
+ memory: Size.mebibytes(1024),
22
+ timeout: Duration.minutes(2),
23
+ });
24
+
25
+ // Test puppeteer 11.0+ also supports nodejs/node_modules structure
26
+ this.puppeteer11NodeModulesCanary = new synthetics.Canary(this, 'Puppeteer11NodeModulesCanary', {
27
+ runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_11_0,
28
+ test: synthetics.Test.custom({
29
+ handler: 'canary.handler',
30
+ code: synthetics.Code.fromAsset(path.join(__dirname, 'canaries')),
31
+ }),
32
+ memory: Size.mebibytes(1024),
33
+ timeout: Duration.minutes(2),
34
+ });
35
+ }
36
+ }
37
+
38
+ const app = new App();
39
+ const testStack = new TestStack(app, 'SyntheticsCanaryRuntimeValidationStack');
40
+
41
+ new IntegTest(app, 'SyntheticsCanaryRuntimeValidation', {
42
+ testCases: [testStack],
43
+ });
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: konokenj.cdk-api-mcp-server
3
- Version: 0.48.0
3
+ Version: 0.49.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.218.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.219.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=srzMbr0otzQq5BX_rtov_llD8WR7FdcIlipzD5IkGlQ,129
1
+ cdk_api_mcp_server/__about__.py,sha256=szlT6kfFwC1PWxfeQDYJVHqUOrd_oFMr4BjnONu87TQ,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
@@ -6,7 +6,7 @@ cdk_api_mcp_server/server.py,sha256=uN5SE6PHpiOYY8QlNID1a0j2hLdeO61QX3kgC_oTODg,
6
6
  cdk_api_mcp_server/resources/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/app-staging-synthesizer-alpha/README.md,sha256=rAatqlr_JE06sjgcBVdXszpwh3grV4aFkkb9L2s8IIU,16492
8
8
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/app-staging-synthesizer-alpha/resource-names.md,sha256=oSTmVHH2AZ9cd-KiITtuS0nJMOWGC0FpVg3t7p6UPMM,1323
9
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-amplify-alpha/README.md,sha256=gwkmgfklAjRLDG8uegSV68kxNKvG9YW1Ym8ZH5V9ezE,12236
9
+ cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-amplify-alpha/README.md,sha256=OIdszebPa0EqMIaHhqWgH6A64AcwQioIKC-NHDyZKrI,12636
10
10
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-applicationsignals-alpha/README.md,sha256=6nqc-WbHB1iFE3vXDr6hyQs8tYS6wwnWutXePY4EF4w,10873
11
11
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-apprunner-alpha/README.md,sha256=Jtm3RbnP4jQy8BYXwHvaRbMKizUjr4SqvimVMYhu6WQ,11982
12
12
  cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-alpha/README.md,sha256=o4IpchOHFzGdZdeX9WPIfFyHAs98uLKIkfSlBOgygB0,65269
@@ -200,7 +200,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling-hook
200
200
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/README.md,sha256=fQ0VqirtiyA1y2P_jXCTojMGQyxO1r6S9WYk-ge29Zo,9640
201
201
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/integ.backup-selection.ts,sha256=kaNB9DQen9nrE5Gj5XZkuP2LaAd53gndrPJGjjYwnaU,2160
202
202
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/integ.backup.ts,sha256=amNqCqf3dCzUrxLBBKm0zSEbsS--h7BMSNQZ_b7sQ68,2473
203
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/README.md,sha256=vVlmXPnktdF7efpLETROA-J6G7f_FkYgClvTuJpZJiU,30924
203
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/README.md,sha256=UTaFfYfuwOv1H1Xk1JyYHOKqU-N3qihxjmBtw0hKG_8,31289
204
204
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.batch-unique-name.ts,sha256=3tirUUq3KUiJVTnz7dhtEYSmDlUoLb3azlP9wzFZR2k,1171
205
205
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.ecs-exec-batch-job.ts,sha256=srHnG37mt_2ePCp0xjle83_q2f8zIz81h8b6hlgjS1o,4984
206
206
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.ecs-job-definition.ts,sha256=KW_7UN8nM62AJ_GKM6CnsqTp5ONuBaxRs9MGEk7B6ho,3894
@@ -208,6 +208,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.eks-
208
208
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.grants.ts,sha256=ErBE6_LfFjNUEPNihdjQaRMCyrTHMMx1sfo2lJF_U00,1088
209
209
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.job-queue-job-state-time-limit-actions.ts,sha256=MDYEOTBvY9Q8r95R_cGV1JuTeVTJqX7JfZpJA2lZQqQ,1274
210
210
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.job-queue.ts,sha256=ciyQVWKQWrtMJVOv4FkWLTMnMsCfrJRSM-JFwatkX6c,1174
211
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.managed-compute-environment-default-instance-class.ts,sha256=eq78gFnmtwKh9mzuvI54MBwUi1Fi1S_L7PFcsdoNbT0,743
211
212
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.managed-compute-environment.ts,sha256=5EFbUtn2vivyhT-vLGbXgYSjsC0VDcWFOs1wg_rDtZo,3196
212
213
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.multinode-job-definition.ts,sha256=Pq7iWINv6l5S8rG1b1bGcg7313HRNee7vL_IPGsn0l8,1516
213
214
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.unmanaged-compute-environment.ts,sha256=o5_ft9zLQXu9TTJqYTT0phaLt7AdqLgHMIO2r4Wh8T0,856
@@ -271,7 +272,8 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ
271
272
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.key-value-store-frominline.ts,sha256=H2nulQGsjNN2e9WFL4s0s_f7WwWhglrhifbbOCoSQ2o,646
272
273
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.key-value-store.ts,sha256=d_364YWDm0IXXVZhSOgpqDJdIH85GpykvsQ-pqQI6zM,561
273
274
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.realtime-log-config.ts,sha256=ZhR1zUbouvf7RmYiYUCk-79AuTGwzDE6d8EcPWVzAPo,896
274
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md,sha256=yLcxLT8CAH_vWnYjQY65d_wGUeXTKiKsu6QLKmM9ol8,35377
275
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md,sha256=ime5rJqGYbJBhoV_RydhgCAhWDiJfsTldEmsznID_Z4,36523
276
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-ip-address-type.ts,sha256=JEtXdDHOjiM13Qru5hPJQc1BIzOvi-6NVw4TW6C13jo,3311
275
277
  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
276
278
  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
277
279
  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
@@ -301,10 +303,10 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ
301
303
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail-insight.ts,sha256=gI_tHyK2Cet3u-uGSCuoZ1_K4gRXszK0a-G2K8UWIqg,1296
302
304
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail-supplied-bucket.lit.ts,sha256=-aIb9umhzoWXVSjS5bfg03U-2BnapIEPYYMcGircXwA,1786
303
305
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail.lit.ts,sha256=wx23AzFPcH68LnBwge7yKFAomCGYM1KhDhX4XkombVY,994
304
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/README.md,sha256=SxwlVPjap7iN13qt7aRcEoDeA9EGNAIRligafwgKzaY,36659
306
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/README.md,sha256=yzMo2nBCiwOdmj3Fx31UdOvSaIJ1a_iSkSCazg46T3w,36695
305
307
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.alarm-and-dashboard.ts,sha256=N0eDCVBXmj-p6L8iBFSeKZVtk_yGMZgdDmjQSrgeiUg,4450
306
308
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.alarm-with-label.ts,sha256=JW5Ttjku2_AEpxHjIrV2F9vp301DEU5nMPlZKyIHs1A,863
307
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.anomaly-detection-alarm.ts,sha256=53vEDKVY2bhOQNPd_Ci328X-ujHto6ML0-9JsExwD_A,3900
309
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.anomaly-detection-alarm.ts,sha256=YzopqTIfsG1Y-Mc54ZmK7KbkN6QkHj-Gd0E0NXYQxUs,5202
308
310
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.composite-alarm.ts,sha256=S12Y1ZmQK6IBw804nlx2nWZj3ldQ5I-N14svcDxTSvk,2269
309
311
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-and-widget-with-start-and-end.ts,sha256=eDAR6ramiRS-3oGAu9ojCChVtogpesm5d9PAVUEGz74,1283
310
312
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-variables.ts,sha256=BokCGaNpi7eJRakofbkHW3NGMUk9uZihgxhfjvOC7Do,2343
@@ -503,12 +505,13 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.t
503
505
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-mrsc.ts,sha256=C0yWtgzvoaxu9ZEv-7mJ6IEa3K6HIOZyOTWIEAv0Rbk,1054
504
506
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-replica.ts,sha256=ZmN5tCVGuefUKdewkwcMC_vd1t8mYj0xowKTaAFq3P4,1613
505
507
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-with-customized-role.ts,sha256=CDb1V4J2dg5-JCkFHBtF8wmMOoLaQ-6RDpZT9HnnTBg,2048
506
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md,sha256=pZuBTpKQ1h0qeVBxDwTMhtLG2JXFlgAPaGw8jVi3LLQ,102267
508
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md,sha256=h5FWcLHqabtUHxXs5hDbl88ylYuY9Mc66yWoO5EQSLU,103123
507
509
  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
508
510
  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
509
511
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.bastion-host-userdatacausesreplacement.ts,sha256=5Vv0q_dk3vtXkam1V9tvu6HcoIv-cUK9pwIHSZvX0ro,1377
510
512
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.bastion-host.ts,sha256=fDclL4qv1blE25gCzxbnHFWw8VXa122aJ5lezrptooI,561
511
513
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.client-vpn-endpoint-client-route-enforcement.ts,sha256=mj71wKaX59oAb536Qp5IWMUcZnPsQC1Cpf-sKQuoAiY,2614
514
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.client-vpn-endpoint-disconnect-on-session-timeout.ts,sha256=oYQP7lZTNRaGHaKM1kO0tRn-AUZcvCD-3xxKuOmsZdo,2553
512
515
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.client-vpn-endpoint.ts,sha256=9rF2AUFs7I5XHaawvE__kiw58cOKAZ_bNtXYFPhWJZ4,3229
513
516
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.core-cross-stack-string-list-references.ts,sha256=-nKx37TEQzSMH_K7wWzThRm7OOtosmO-LS9Wu6C448c,2280
514
517
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.enable-sum-timeout-instance-init.ts,sha256=8ptNC4FbEF2oC8qR9lDNN0kMGN8rBsqjXwnlKCacNxM,2452
@@ -704,7 +707,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs-tr
704
707
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs.permission.ts,sha256=bzH7koi5t2FgkDhEp-6ZtXgoteiCDTNd2igab4bXytA,3338
705
708
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs.ts,sha256=NmhtimqEUqH6Tu9sksWLmn8e9QcrlF-J1dn0B-9eVqw,837
706
709
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/MANUAL_TEST.md,sha256=uObwqDllAUYBGkoNEAQGioL6JuKqh5ScVbq9KC3x89Q,1862
707
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/README.md,sha256=20F9MXScfbNlHhzEwIegmhFQ96JyKiRS8JgFzGz_LYw,81337
710
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/README.md,sha256=3LQ9jypS7vqdr-Q_cqqw0C3szC8M-48QGMTWFM3YN2E,82365
708
711
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.alb-controller-authapi.ts,sha256=L9dF26-F2Fw-O1iGAnT-AYnkq4JmO_IQoQn0RsOhLVY,1355
709
712
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.alb-controller.ts,sha256=cbL2kY-t0LAWLkK1Lb3RUPBeMUpw8xHWjDhkroD_Rb4,3314
710
713
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.custom-addons.ts,sha256=ZXsXljCokHOA_JubQ7ZsLT-tGy-28mg1gZ_bmNX_F-k,1475
@@ -715,6 +718,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cl
715
718
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-imported.ts,sha256=VcOdMfU2jCukU63bL1DJ03npPLyI8Xwr-vAtO3xFNMA,7448
716
719
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-ipv6.ts,sha256=wZ6dCJQzyJDYQEI6nfZDD2i8WGNdw4o8sIX5Rjiy4fk,13024
717
720
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-private-endpoint.ts,sha256=kktgfPNMy7xPy9zJTcaSxbvAQZF3tPHJJ_K4kVZYofA,1825
721
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-removal-policy.ts,sha256=AOvKvS8aWzh4Vb4WqWB58y7hCwabLJk4mJM316j-ZWc,1070
718
722
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-tags.ts,sha256=dsPOuZv-3zKtgCmsYmxd2MJxzrwH1QAziJZHKs_GfjA,1321
719
723
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster.ts,sha256=uO4jfIQJb-zvcle-osXELtS6Y-Y3MCJBKiNAtYd7_9o,12876
720
724
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-helm-asset.ts,sha256=oK98kChrQxAY4PK5K8t7E9K36GqYhTyFA0Yj6MS_xos,5075
@@ -855,11 +859,12 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.saml-p
855
859
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.user-import.ts,sha256=HQ_9iFsMB5WfjvLOzncy2kvzRy5qwpp0Isnu-TE3Cr0,1015
856
860
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.user.ts,sha256=mr5GSF1rlNdR2uB3XXwozyCbBumMosdBLPD9PZy94iM,2183
857
861
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.users-and-groups.ts,sha256=pCj4uA3UbCvdJKIwPjVSTbagPvqBkoxrsxmjflicRR0,706
858
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/README.md,sha256=BSsDDoiYm7L5Iq0BbZqmWfZc5dlw2tXGVwvcVWS615w,10121
862
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/README.md,sha256=PnINITTzVfl0qTpOZM7g_8AtzAWnkFU6iax3CGHBbRM,12093
859
863
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.cross-account-stream-consumption.ts,sha256=vdMbC3RD6T2qc84lew8fU81qdH7c3qSiP1n-Vwt4UzM,1511
860
864
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.resource-policy.ts,sha256=a_95xmp7W-Bhj2cqO8CBkG-jBMClGmReLsfJQvVligs,1084
861
865
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream-consumer.ts,sha256=dP7Vp754u1U69UWY-J3nUOVLYpGzAcb5ZRAUOFn6XAE,718
862
866
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream-dashboard.ts,sha256=ziOjkJ5WfaTPiVw7S1oqqEzzmZSl6h69OyMSSdsXh98,2804
867
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream-shard-level-monitoring.ts,sha256=Psd698h-ewAaGqb71sUNrgyT77G6KdjSZ_9IMQLnGBM,1540
863
868
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream.ts,sha256=kj0fTRhyXUG8TjWbsY1klNyJzw2AZdUfVmIWuXWCzJQ,388
864
869
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/README.md,sha256=ImsbDB-Yyuy8GFl_a6kktdM7BjZikJZF2uiU6TH2TNk,23736
865
870
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.delivery-stream.source-stream.ts,sha256=gTQNvpVUsP-IGMdMCC5SozS_GhRI_MxAo9eCuZpZbII,2235
@@ -877,7 +882,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-mu
877
882
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-rotation.ts,sha256=-6eOCNkA5F6_1kRN5txoHlGQ7WYevvDy_uPl02uuM2w,488
878
883
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-sharing.lit.ts,sha256=qmYYu5-UgDr7lfWVvP__OjxAHDBhvhBYdAwRnpbj32s,955
879
884
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key.ts,sha256=9EHcuFYfdBIoJo4zAi6wSioW-_MfxomGNE6f69QHMQU,661
880
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md,sha256=C5uAnFAiblU5AT9cGGaURKhUDwmQMJBWutuZ9UVg4BY,60898
885
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md,sha256=CP-N7S0u5rjnuWvGLgHEyDoHE6ErJ2ZQMwERHGgFtIo,61454
881
886
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.assets.file.ts,sha256=mtLyX3KoFZg6m9zPDlx7eX5CyErzv_CPCD5s9t-rRyk,623
882
887
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.assets.lit.ts,sha256=NvvrFrgp7vq8pYeNnfl1xOy79r1CgSddvcjlEESFcyw,624
883
888
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.autoscaling.lit.ts,sha256=OPWHIoRHXA1DbigKLWPea8pFhw0dRPLgSNmaB_rAurk,2184
@@ -954,7 +959,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/in
954
959
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.modules.ts,sha256=etsjdg80JJb_gag1tC0I2DgOcARVOCrRZsQYr46sQv0,2323
955
960
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.nodejs.build.images.ts,sha256=ws9WjuRf3nTKpTnZXNRheCwkQTDjf_UV9KwinnOHzVw,1742
956
961
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.specifycode.ts,sha256=JdlBTKpPf5xlQlfTYlXUMbMVwGD0a-heEYPx0ZNFO9U,1938
957
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/README.md,sha256=FzQOveAjIxAfW0neEE2NrKSRNLTX5uYx4pYfAKycfWc,24319
962
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/README.md,sha256=BjXWQpYFe5xXJn-aAs7C4puBP-TJMGe_XZ7F6UsuZ0k,24500
958
963
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.expose-metric.ts,sha256=nHHNSRyq2eGVZkZe1_UWwdr7vWnBDqdMWoiArzJleHI,1256
959
964
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-group-metrics.ts,sha256=3t37idu5s4B6dxhZWD_7pNeue7eJCume6MdEgtc1TTs,707
960
965
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-group.ts,sha256=ffml_7GAfXAFSr_qqzrBZ08eG_ZhLS1T-8d-hdsxNf4,1312
@@ -964,6 +969,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-r
964
969
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroup-grantread.ts,sha256=3Gjcq80bm6qeqjTmq_rbVVYvbWDTLkGWFclh3_XLY2Q,491
965
970
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroup-transformer.ts,sha256=2DmUNPzqW5FOnYRckyW74XKJwbubhc2gdIT2YhUoi9E,1271
966
971
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroupclass.ts,sha256=ZiJznICcvepDPf97FzReAD5l9FTnWtL6RsNw1cQABgg,2001
972
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter-apply-on-transformed-logs.ts,sha256=mtdSCzSr3_Hui8mZS9OGBfjcM3DsaGEees6gK4RRCNg,884
967
973
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter-dimensions.ts,sha256=XAqWm-eyYcmifgZnB4soQEYFBIAbPpkzvnm1Uzng828,913
968
974
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter-unit.ts,sha256=1g5XU59COeVHj4kL8GuNGnse_Kx0gMHboew4RGR1zyM,983
969
975
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter.lit.ts,sha256=fH_QY-X6Qs3nuNbhaiqM-4DbMm2G1AE8I-1a5QWO_OY,896
@@ -986,7 +992,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservic
986
992
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.gp3.ts,sha256=_YsIdlEllL1v_1YZzpXrwxHMttphlJe_xf11f1_4z3s,1526
987
993
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.https.ts,sha256=enL7r3ppaN_yxoRYse_nCmRrC9qdIcbqMoC_bCRdSLM,1655
988
994
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ip-address-type.ts,sha256=OeLFqyLYl38FltS_earKPmZ9loassPKmMErTopMwlvE,1136
989
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts,sha256=DZXLAEo8gWssAXosQJBpd4s_nRyP3AEtgr97DkC6sRE,1062
995
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts,sha256=wbQaBJNWyspQ_hAHm4gEDdU98Xj7lh3XmZ-zEueFgeA,1109
990
996
  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
991
997
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.nodeoptions.ts,sha256=sKineUIZrUMBwMWMps0ryRVxBbbSHs5XlOErcXJ_r6A,1379
992
998
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ts,sha256=HAxPSl15GNYZuzGEjZhSNgIPoAMXm7YzPocUZ2KYmSU,2087
@@ -1055,7 +1061,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.server
1055
1061
  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
1056
1062
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.serverless-cluster-secret-rotation.ts,sha256=dQh8mE1sGqXoh1oNLTHVGkxqJo1DUF9xFGRtpUMTtwM,1131
1057
1063
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.serverless-cluster.ts,sha256=QRk6RSL7MjT-Z0Wa5IqAGw6e4D9d1eD-_FF9JNPqaDc,1491
1058
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md,sha256=nxj4FARlRKbIvum5XhAbRx85lPUpM_a9rL626S0e-b8,20851
1064
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md,sha256=CRlLU2bEgeVQMBA8Z-alkhNcJ4VUT6QjQJiO0LHgxxM,21343
1059
1065
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.cidr-routing-config.ts,sha256=s00XKe_4ev7V2QdrsMz1hTQdD7NG_DEvMKQO-qo2pOw,1820
1060
1066
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.cross-account-zone-delegation.ts,sha256=_rpT4PhjPn4zzQJkbCVdNuf_2PxCVAMBFh_sbI9Ipbc,4723
1061
1067
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.delete-existing-record-set.ts,sha256=S1DuUvrdXqsQO1-tBOrrZmLxbAtjLuYCbtVVULjCcQo,1177
@@ -1064,6 +1070,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.he
1064
1070
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.import-existing-record-as-target.ts,sha256=HoL7yDptu96MX3-H2AcxqCbMWqrpWPSfDa2u47JPcDc,1001
1065
1071
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.latency-based-routing.ts,sha256=77NkucfoIMrvBFoRlqEUqSSMTU79dTDhdefyxaxqymA,1052
1066
1072
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.multi-value-answer-routing.ts,sha256=SSysel7SV6qlTIjotyUpmRebj2cdIvZ7uQBkW-xnENI,844
1073
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.private-hosted-zone-from-attributes.ts,sha256=WKQP2KGdf6CXKHWLpCUFPwJ-jSMPlkMgay6z4g3Fi2E,1198
1067
1074
  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
1068
1075
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.rename-cross-account-zone-delegation.ts,sha256=MSew1BwKTkwSMabaHaS0qFfJwTPCKME-6yzp4l4ImTQ,2841
1069
1076
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.route53.ts,sha256=Tq-9AddKPw_XL9OpbSbAxcHUvNie_aNwUgxc_qc--t8,4191
@@ -1334,7 +1341,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-ta
1334
1341
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.submit-job-queue-jsonpath.ts,sha256=xOerJeeBfCEpEBPYLnYh-Naycr-a9GqXLdxs6G-hPHs,2136
1335
1342
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.submit-job.d.ts,sha256=jmCbtxwguFjHfw6fkLsTGduEd7E_n5ZfGh4YUkv1CIE,11
1336
1343
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.submit-job.ts,sha256=e0cd9QvnR01q6F6XgoRXqJRnCVmhU_q2teRsKQtI4UE,2834
1337
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/README.md,sha256=_2XIElNLx63VCpEn0Be-yH399hen5qBAX2bORsLmpjw,18572
1344
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/README.md,sha256=-O41Y3c-v9VxNqhycgr3Jjbd4wbQ3spBilc4KUgMgUw,18984
1338
1345
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-artifact-s3-encryption.ts,sha256=vtDZDYpMfnRftpjBhSwl9GpjiqQ7_m55iidSJPzTuhs,2628
1339
1346
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-auto-delete-lambda.ts,sha256=epAsfPC1zL0Kb0RKv9msG2gkCvV83ka6Lvpj1nupd84,2360
1340
1347
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-browser-type.ts,sha256=v_b25HY2WKN93qiwmrwyb5jvqLu2Gvzq7iS3K7JRrq4,1124
@@ -1343,6 +1350,7 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ
1343
1350
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-resources-to-replicate-tags.ts,sha256=M9Hk4ySI9PdQPUFcn8-DxtwwoAY-9mkhyLHOXJZ-9es,1324
1344
1351
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-retry.ts,sha256=yljGENGCTFioDF7HKEiBL_CHsXtTwTKEJwnoLxoMZN0,1019
1345
1352
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-run-config.ts,sha256=i12uJ6csuikhj12WPeEmhbMXXhE1h-oCVtKUzmVDkOU,1037
1353
+ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-runtime-validation.ts,sha256=oVqhg7P54848p7Ev9P9xtz_BFhL5QwC93I3zOIx25mM,1662
1346
1354
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary.ts,sha256=WtKNXkWy6LB4XoywQMyqurIabVb7JDK5ZseRu1iK2fA,5169
1347
1355
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.vpc.ts,sha256=SQ6nTKnZVGTdW74COWLoGrbP63SvfQwejjOFEND5kgM,848
1348
1356
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloud-assembly-schema/README.md,sha256=Z2oUXaazqWdn3UQYUAm7uNYB_rJRHS_sec1FrPaIJ2Q,2911
@@ -1417,8 +1425,8 @@ cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipe
1417
1425
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/region-info/README.md,sha256=vewWkV3ds9o9iyyYaJBNTkaKJ2XA6K2yF17tAxUnujg,2718
1418
1426
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/README.md,sha256=hYIx7DbG_7p4LYLUfxDwgIQjw9UNdz1GLrqDe8_Dbko,4132
1419
1427
  cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/integ.triggers.ts,sha256=4OHplMoBOgHGkktAzoU-TuNmJQS5wGAUvBfj5bGSe_Y,2807
1420
- konokenj_cdk_api_mcp_server-0.48.0.dist-info/METADATA,sha256=DlxK8jwG-lfIznfwyArD_Rgn_I07ZrlH_ftIRTLM1y8,2646
1421
- konokenj_cdk_api_mcp_server-0.48.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1422
- konokenj_cdk_api_mcp_server-0.48.0.dist-info/entry_points.txt,sha256=bVDhMdyCC1WNMPOMbmB82jvWII2CIrwTZDygdCf0cYQ,79
1423
- konokenj_cdk_api_mcp_server-0.48.0.dist-info/licenses/LICENSE.txt,sha256=5OIAASeg1HM22mVZ1enz9bgZ7TlsGfWXnj02P9OgFyk,1098
1424
- konokenj_cdk_api_mcp_server-0.48.0.dist-info/RECORD,,
1428
+ konokenj_cdk_api_mcp_server-0.49.0.dist-info/METADATA,sha256=ncxYO3IB0a6PzF58hXS0yGvOXmvOiLP2gCkHrXDP0gk,2646
1429
+ konokenj_cdk_api_mcp_server-0.49.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1430
+ konokenj_cdk_api_mcp_server-0.49.0.dist-info/entry_points.txt,sha256=bVDhMdyCC1WNMPOMbmB82jvWII2CIrwTZDygdCf0cYQ,79
1431
+ konokenj_cdk_api_mcp_server-0.49.0.dist-info/licenses/LICENSE.txt,sha256=5OIAASeg1HM22mVZ1enz9bgZ7TlsGfWXnj02P9OgFyk,1098
1432
+ konokenj_cdk_api_mcp_server-0.49.0.dist-info/RECORD,,