konokenj.cdk-api-mcp-server 0.49.0__py3-none-any.whl → 0.50.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 (58) hide show
  1. cdk_api_mcp_server/__about__.py +1 -1
  2. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-agentcore-alpha/README.md +796 -0
  3. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/README.md +116 -29
  4. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-msk-alpha/README.md +8 -8
  5. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/mixins-preview/README.md +16 -0
  6. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.api-with-authorizer-and-proxy.ts +1 -1
  7. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-api.ts +1 -1
  8. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.iam.ts +1 -1
  9. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.lambda.ts +2 -2
  10. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.user-pool.ts +1 -1
  11. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.add-subroute-integration.ts +7 -4
  12. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.http-proxy.ts +1 -1
  13. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-proxy.ts +1 -1
  14. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda.ts +4 -4
  15. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-lambda-permission.ts +1 -1
  16. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.js-resolver.ts +1 -1
  17. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-node-18.ts +1 -1
  18. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-service-timeout.ts +1 -1
  19. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-response-completion-timeout.ts +1 -1
  20. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail-data-events-only.ts +1 -1
  21. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/README.md +40 -1
  22. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.tag-mutability-exclusion.ts +30 -0
  23. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md +3 -0
  24. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-capacity-provider.ts +5 -3
  25. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-no-default-capacity-provider.ts +107 -0
  26. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-public-private-switch.ts +45 -0
  27. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-lambda-multi-value-headers.ts +1 -1
  28. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.oidc.ts +1 -1
  29. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-actions/integ.cognito.ts +1 -1
  30. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/README.md +96 -0
  31. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.record-format-conversion-schema.ts +154 -0
  32. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.record-format-conversion.ts +178 -0
  33. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.binary-payload.ts +1 -1
  34. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.logging-config.ts +8 -8
  35. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.params-and-secrets.ts +1 -1
  36. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime-management.ts +1 -1
  37. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.inlinecode.ts +0 -7
  38. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-pnpm.ts +1 -1
  39. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.function-exclude-smithy-models.ts +2 -2
  40. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.nodejs.build.images.ts +1 -1
  41. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.subscriptionfilter.ts +1 -1
  42. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api-to-imported-cluster.ts +1 -1
  43. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api.ts +1 -1
  44. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-data.ts +4 -0
  45. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/README.md +1 -1
  46. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region-lambda.ts +1 -1
  47. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke-json-path.ts +102 -0
  48. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary.ts +2 -0
  49. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource.ts +1 -1
  50. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-lambda-node-runtime.ts +1 -1
  51. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.invoke-function-payload.ts +1 -1
  52. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md +43 -1
  53. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/README.md +32 -1
  54. {konokenj_cdk_api_mcp_server-0.49.0.dist-info → konokenj_cdk_api_mcp_server-0.50.0.dist-info}/METADATA +2 -2
  55. {konokenj_cdk_api_mcp_server-0.49.0.dist-info → konokenj_cdk_api_mcp_server-0.50.0.dist-info}/RECORD +58 -50
  56. {konokenj_cdk_api_mcp_server-0.49.0.dist-info → konokenj_cdk_api_mcp_server-0.50.0.dist-info}/WHEEL +0 -0
  57. {konokenj_cdk_api_mcp_server-0.49.0.dist-info → konokenj_cdk_api_mcp_server-0.50.0.dist-info}/entry_points.txt +0 -0
  58. {konokenj_cdk_api_mcp_server-0.49.0.dist-info → konokenj_cdk_api_mcp_server-0.50.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -18,49 +18,49 @@ const logGroup = new logs.LogGroup(stack, 'MyLogGroupWithLogGroupName', {
18
18
  new Function(stack, 'LambdaWithLogGroup', {
19
19
  code: new InlineCode('foo'),
20
20
  handler: 'index.handler',
21
- runtime: Runtime.NODEJS_18_X,
21
+ runtime: Runtime.NODEJS_20_X,
22
22
  logGroup: logGroup,
23
23
  });
24
24
 
25
25
  new Function(stack, 'LambdaWithLogGroupAndNoLogGroupName', {
26
26
  code: new InlineCode('foo'),
27
27
  handler: 'index.handler',
28
- runtime: Runtime.NODEJS_18_X,
28
+ runtime: Runtime.NODEJS_20_X,
29
29
  logGroup: new logs.LogGroup(stack, 'MyLogGroupWithoutLogGroupName'),
30
30
  });
31
31
 
32
32
  new Function(stack, 'LambdaWithTextFormat', {
33
33
  code: new InlineCode('foo'),
34
34
  handler: 'index.handler',
35
- runtime: Runtime.NODEJS_18_X,
35
+ runtime: Runtime.NODEJS_20_X,
36
36
  logFormat: LogFormat.TEXT,
37
37
  });
38
38
 
39
39
  new Function(stack, 'LambdaWithJSONFormat', {
40
40
  code: new InlineCode('foo'),
41
41
  handler: 'index.handler',
42
- runtime: Runtime.NODEJS_18_X,
42
+ runtime: Runtime.NODEJS_20_X,
43
43
  logFormat: LogFormat.JSON,
44
44
  });
45
45
 
46
46
  new Function(stack, 'LambdaWithTextLoggingFormat', {
47
47
  code: new InlineCode('foo'),
48
48
  handler: 'index.handler',
49
- runtime: Runtime.NODEJS_18_X,
49
+ runtime: Runtime.NODEJS_20_X,
50
50
  logFormat: LoggingFormat.TEXT,
51
51
  });
52
52
 
53
53
  new Function(stack, 'LambdaWithJSONLoggingFormat', {
54
54
  code: new InlineCode('foo'),
55
55
  handler: 'index.handler',
56
- runtime: Runtime.NODEJS_18_X,
56
+ runtime: Runtime.NODEJS_20_X,
57
57
  logFormat: LoggingFormat.JSON,
58
58
  });
59
59
 
60
60
  new Function(stack, 'LambdaWithLogLevel', {
61
61
  code: new InlineCode('foo'),
62
62
  handler: 'index.handler',
63
- runtime: Runtime.NODEJS_18_X,
63
+ runtime: Runtime.NODEJS_20_X,
64
64
  logFormat: LogFormat.JSON,
65
65
  systemLogLevel: SystemLogLevel.INFO,
66
66
  applicationLogLevel: ApplicationLogLevel.INFO,
@@ -69,7 +69,7 @@ new Function(stack, 'LambdaWithLogLevel', {
69
69
  new Function(stack, 'LambdaWithLogLevelV2', {
70
70
  code: new InlineCode('foo'),
71
71
  handler: 'index.handler',
72
- runtime: Runtime.NODEJS_18_X,
72
+ runtime: Runtime.NODEJS_20_X,
73
73
  loggingFormat: LoggingFormat.JSON,
74
74
  systemLogLevelV2: SystemLogLevel.INFO,
75
75
  applicationLogLevelV2: ApplicationLogLevel.INFO,
@@ -46,7 +46,7 @@ class StackUnderTest extends Stack {
46
46
  });
47
47
 
48
48
  const lambdaFunction = new Function(this, 'MyFunc', {
49
- runtime: Runtime.NODEJS_18_X,
49
+ runtime: Runtime.NODEJS_20_X,
50
50
  handler: 'index.handler',
51
51
  code: Code.fromAsset(path.join(__dirname, 'params-and-secrets-handler')),
52
52
  architecture: props.architecture,
@@ -13,7 +13,7 @@ const stack = new Stack(app, 'aws-cdk-lambda-runtime-management');
13
13
  new Function(stack, 'Lambda', {
14
14
  code: new InlineCode('foo'),
15
15
  handler: 'index.handler',
16
- runtime: Runtime.NODEJS_18_X,
16
+ runtime: Runtime.NODEJS_20_X,
17
17
  runtimeManagementMode: RuntimeManagementMode.AUTO,
18
18
  });
19
19
 
@@ -55,13 +55,6 @@ const python313 = new Function(stack, 'PYTHON_3_13', {
55
55
  });
56
56
  new CfnOutput(stack, 'PYTHON_3_13-functionName', { value: python313.functionName });
57
57
 
58
- const node18xfn = new Function(stack, 'NODEJS_18_X', {
59
- code: new InlineCode('exports.handler = async function(event) { return "success" }'),
60
- handler: 'index.handler',
61
- runtime: Runtime.NODEJS_18_X,
62
- });
63
- new CfnOutput(stack, 'NODEJS_18_X-functionName', { value: node18xfn.functionName });
64
-
65
58
  const node20xfn = new Function(stack, 'NODEJS_20_X', {
66
59
  code: new InlineCode('exports.handler = async function(event) { return "success" }'),
67
60
  handler: 'index.handler',
@@ -14,7 +14,7 @@ const stack = new cdk.Stack(app, 'TestStack');
14
14
 
15
15
  const handler = new lambda.NodejsFunction(stack, 'Function', {
16
16
  entry: path.join(__dirname, 'integ-handlers/pnpm/dependencies-pnpm.ts'),
17
- runtime: Runtime.NODEJS_18_X,
17
+ runtime: Runtime.NODEJS_20_X,
18
18
  bundling: {
19
19
  minify: true,
20
20
  // Will be installed, not bundled
@@ -14,7 +14,7 @@ class TestStack extends Stack {
14
14
 
15
15
  this.lambdaFunction = new lambda.NodejsFunction(this, 'NodeJsFunction', {
16
16
  entry: path.join(__dirname, 'integ-handlers/dependencies.ts'),
17
- runtime: Runtime.NODEJS_18_X,
17
+ runtime: Runtime.NODEJS_20_X,
18
18
  });
19
19
  }
20
20
  }
@@ -25,7 +25,7 @@ const app = new App({
25
25
  [LAMBDA_NODEJS_SDK_V3_EXCLUDE_SMITHY_PACKAGES]: true,
26
26
  },
27
27
  });
28
- const stack = new TestStack(app, 'cdk-integ-lambda-nodejs-18-exclude-smithy');
28
+ const stack = new TestStack(app, 'cdk-integ-lambda-nodejs-20-exclude-smithy');
29
29
  new IntegTest(app, 'NodeJsFunctionExcludeSmithyInteg', {
30
30
  testCases: [stack],
31
31
  diffAssets: true,
@@ -12,7 +12,7 @@ class TestStack extends Stack {
12
12
  super(scope, id, props);
13
13
 
14
14
  const runtimes: Runtime[]= [
15
- Runtime.NODEJS_18_X, Runtime.NODEJS_20_X, Runtime.NODEJS_LATEST, Runtime.NODEJS_22_X,
15
+ Runtime.NODEJS_20_X, Runtime.NODEJS_LATEST, Runtime.NODEJS_22_X,
16
16
  ];
17
17
 
18
18
  const uniqueRuntimes: Runtime[] = runtimes.filter((value, index, array) => array.findIndex(value1 => value1.runtimeEquals(value)) === index);
@@ -11,7 +11,7 @@ class SubscriptionFilterIntegStack extends Stack {
11
11
  const logGroup = new LogGroup(this, 'LogGroup');
12
12
 
13
13
  const fn = new Function(this, 'Function', {
14
- runtime: Runtime.NODEJS_18_X,
14
+ runtime: Runtime.NODEJS_20_X,
15
15
  handler: 'index.handler',
16
16
  code: Code.fromInline('foo'),
17
17
  });
@@ -14,7 +14,7 @@ const stack = new cdk.Stack(app, 'cluster-data-api-to-imported-cluster');
14
14
  const vpc = new ec2.Vpc(stack, 'VPC');
15
15
 
16
16
  const func = new lambda.Function(stack, 'Function', {
17
- runtime: lambda.Runtime.NODEJS_18_X,
17
+ runtime: lambda.Runtime.NODEJS_20_X,
18
18
  handler: 'index.handler',
19
19
  code: lambda.Code.fromInline('exports.handler = async (event) => { return "hello"; }'),
20
20
  });
@@ -14,7 +14,7 @@ const stack = new cdk.Stack(app, 'cluster-data-api');
14
14
  const vpc = new ec2.Vpc(stack, 'VPC');
15
15
 
16
16
  const fucntion = new lambda.Function(stack, 'Function', {
17
- runtime: lambda.Runtime.NODEJS_18_X,
17
+ runtime: lambda.Runtime.NODEJS_20_X,
18
18
  handler: 'index.handler',
19
19
  code: lambda.Code.fromInline('exports.handler = async (event) => { return "hello"; }'),
20
20
  });
@@ -50,6 +50,9 @@ const file7 = Source.yamlData('my-yaml/secret-config.yaml', {
50
50
  secret_value: tokenizedValue,
51
51
  });
52
52
 
53
+ // case for empty string
54
+ const file8 = Source.data('file8.txt', '');
55
+
53
56
  const deployment = new BucketDeployment(stack, 'DeployMeHere', {
54
57
  destinationBucket: bucket,
55
58
  sources: [file1, file2],
@@ -61,6 +64,7 @@ deployment.addSource(file4);
61
64
  deployment.addSource(file5);
62
65
  deployment.addSource(file6);
63
66
  deployment.addSource(file7);
67
+ deployment.addSource(file8);
64
68
 
65
69
  new CfnOutput(stack, 'BucketName', { value: bucket.bucketName });
66
70
 
@@ -1582,7 +1582,7 @@ const connection = new events.Connection(this, 'Connection', {
1582
1582
 
1583
1583
  new tasks.HttpInvoke(this, 'Invoke HTTP API', {
1584
1584
  apiRoot: 'https://api.example.com',
1585
- apiEndpoint: sfn.TaskInput.fromText('path/to/resource'),
1585
+ apiEndpoint: sfn.TaskInput.fromText(sfn.JsonPath.format('resource/{}/details', sfn.JsonPath.stringAt('$.resourceId'))),
1586
1586
  body: sfn.TaskInput.fromObject({ foo: 'bar' }),
1587
1587
  connection,
1588
1588
  headers: sfn.TaskInput.fromObject({ 'Content-Type': 'application/json' }),
@@ -10,7 +10,7 @@ class TestStack extends cdk.Stack {
10
10
  super(scope, id, props);
11
11
  // Create a target Lambda function that returns JSON response
12
12
  const targetLambda = new lambda.Function(this, 'TargetLambda', {
13
- runtime: lambda.Runtime.NODEJS_18_X,
13
+ runtime: lambda.Runtime.NODEJS_20_X,
14
14
  handler: 'index.handler',
15
15
  code: lambda.Code.fromInline(`
16
16
  exports.handler = async (event) => {
@@ -0,0 +1,102 @@
1
+ /// !cdk-integ aws-stepfunctions-tasks-http-invoke-json-path-integ
2
+
3
+ import * as path from 'path';
4
+ import { IntegTest, ExpectedResult } from '@aws-cdk/integ-tests-alpha';
5
+ import * as cdk from 'aws-cdk-lib';
6
+ import * as apigateway from 'aws-cdk-lib/aws-apigateway';
7
+ import * as events from 'aws-cdk-lib/aws-events';
8
+ import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
9
+ import * as lambda from 'aws-cdk-lib/aws-lambda-nodejs';
10
+ import * as tasks from 'aws-cdk-lib/aws-stepfunctions-tasks';
11
+ import { password, username } from './my-lambda-handler';
12
+
13
+ /*
14
+ * Creates an API Gateway instance with a GET method and mock integration,
15
+ * secured with basic auth. It then creates a matching Connection and uses it
16
+ * in a state machine with a task state to invoke the endpoint.
17
+ *
18
+ * Stack verification steps :
19
+ * * aws stepfunctions start-execution --state-machine-arn <deployed state machine arn> : should return execution arn
20
+ * * aws stepfunctions describe-execution --execution-arn <execution-arn generated before> : should return status as SUCCEEDED
21
+ */
22
+ const app = new cdk.App();
23
+ const stack = new cdk.Stack(app, 'aws-stepfunctions-tasks-http-invoke-json-path-integ');
24
+
25
+ const authorizerHandler = new lambda.NodejsFunction(stack, 'AuthorizerHandler', {
26
+ entry: path.resolve(__dirname, 'my-lambda-handler', 'index.ts'),
27
+ handler: 'handler',
28
+ });
29
+
30
+ const authorizer = new apigateway.TokenAuthorizer(stack, 'Authorizer', {
31
+ handler: authorizerHandler,
32
+ identitySource: 'method.request.header.Authorization',
33
+ resultsCacheTtl: cdk.Duration.seconds(0),
34
+ });
35
+
36
+ const api = new apigateway.RestApi(stack, 'IntegRestApi');
37
+
38
+ api.root.addResource('test-json-path').addMethod(
39
+ 'GET',
40
+ new apigateway.MockIntegration({
41
+ integrationResponses: [
42
+ {
43
+ statusCode: '200',
44
+ responseTemplates: {
45
+ 'application/json': JSON.stringify({ message: 'Hello, tester!' }),
46
+ },
47
+ },
48
+ ],
49
+ passthroughBehavior: apigateway.PassthroughBehavior.NEVER,
50
+ requestTemplates: {
51
+ 'application/json': '{ "statusCode": 200 }',
52
+ },
53
+ }),
54
+ {
55
+ authorizer,
56
+ methodResponses: [
57
+ {
58
+ statusCode: '200',
59
+ },
60
+ ],
61
+ },
62
+ );
63
+
64
+ const connection = new events.Connection(stack, 'Connection', {
65
+ authorization: events.Authorization.basic(username, cdk.SecretValue.unsafePlainText(password)),
66
+ });
67
+
68
+ const httpInvokeTask = new tasks.HttpInvoke(stack, 'Invoke HTTP Endpoint', {
69
+ apiRoot: api.urlForPath('/'),
70
+ apiEndpoint: sfn.TaskInput.fromJsonPathAt('$.endpointPath'),
71
+ connection,
72
+ method: sfn.TaskInput.fromText('GET'),
73
+ });
74
+
75
+ const sm = new sfn.StateMachine(stack, 'StateMachine', {
76
+ definition: httpInvokeTask,
77
+ timeout: cdk.Duration.seconds(30),
78
+ });
79
+
80
+ const testCase = new IntegTest(app, 'HttpInvokeTest', {
81
+ testCases: [stack],
82
+ });
83
+
84
+ // Start an execution
85
+ const start = testCase.assertions.awsApiCall('StepFunctions', 'startExecution', {
86
+ stateMachineArn: sm.stateMachineArn,
87
+ input: JSON.stringify({
88
+ endpointPath: 'test-json-path',
89
+ }),
90
+ });
91
+
92
+ // describe the results of the execution
93
+ const describe = testCase.assertions.awsApiCall('StepFunctions', 'describeExecution', {
94
+ executionArn: start.getAttString('executionArn'),
95
+ });
96
+
97
+ // assert the results
98
+ describe.expect(ExpectedResult.objectLike({
99
+ status: 'SUCCEEDED',
100
+ }));
101
+
102
+ app.synth();
@@ -114,6 +114,7 @@ const selenium41 = createCanaryByRuntimes(Runtime.SYNTHETICS_PYTHON_SELENIUM_4_1
114
114
  const selenium50 = createCanaryByRuntimes(Runtime.SYNTHETICS_PYTHON_SELENIUM_5_0);
115
115
  const selenium51 = createCanaryByRuntimes(Runtime.SYNTHETICS_PYTHON_SELENIUM_5_1);
116
116
  const selenium60 = createCanaryByRuntimes(Runtime.SYNTHETICS_PYTHON_SELENIUM_6_0);
117
+ const selenium70 = createCanaryByRuntimes(Runtime.SYNTHETICS_PYTHON_SELENIUM_7_0);
117
118
 
118
119
  const test = new IntegTest(app, 'IntegCanaryTest', {
119
120
  testCases: [stack],
@@ -142,6 +143,7 @@ const test = new IntegTest(app, 'IntegCanaryTest', {
142
143
  selenium50,
143
144
  selenium51,
144
145
  selenium60,
146
+ selenium70,
145
147
  ].forEach((canary) => test.assertions
146
148
  .awsApiCall('Synthetics', 'getCanaryRuns', {
147
149
  Name: canary.canaryName,
@@ -121,7 +121,7 @@ const app = new cdk.App({
121
121
  },
122
122
  });
123
123
  const testStack = new AwsCdkSdkJsStack(app, 'aws-cdk-sdk-js-v3', {
124
- runtime: lambda.Runtime.NODEJS_18_X,
124
+ runtime: lambda.Runtime.NODEJS_20_X,
125
125
  });
126
126
  const integTest = new integ.IntegTest(app, 'AwsCustomResourceTest', {
127
127
  testCases: [testStack],
@@ -29,7 +29,7 @@ new lambda.Function(stack, 'nonCrLambda', {
29
29
  runtime: lambda.Runtime.NODEJS_20_X,
30
30
  });
31
31
 
32
- CustomResourceConfig.of(app).addLambdaRuntime(lambda.Runtime.NODEJS_18_X);
32
+ CustomResourceConfig.of(app).addLambdaRuntime(lambda.Runtime.NODEJS_20_X);
33
33
 
34
34
  new integ.IntegTest(app, 'integ-test-custom-resource-config-lambda-node-runtime', {
35
35
  testCases: [stack],
@@ -15,7 +15,7 @@ const stack = new cdk.Stack(app, 'AwsCustomResourceInvokePayloadStack');
15
15
  const fn = new lambda.Function(stack, 'Function', {
16
16
  code: lambda.Code.fromInline("exports.handler = async () => { return { statusCode: 200, body: 'Hello World' }; };"),
17
17
  handler: 'index.handler',
18
- runtime: lambda.Runtime.NODEJS_18_X,
18
+ runtime: lambda.Runtime.NODEJS_20_X,
19
19
  });
20
20
 
21
21
  const testCr = new cr.AwsCustomResource(stack, 'ListLambdaFunctions', {
@@ -107,6 +107,8 @@ Flags come in three types:
107
107
  | [@aws-cdk/core:explicitStackTags](#aws-cdkcoreexplicitstacktags) | When enabled, stack tags need to be assigned explicitly on a Stack. | 2.205.0 | new default |
108
108
  | [@aws-cdk/aws-signer:signingProfileNamePassedToCfn](#aws-cdkaws-signersigningprofilenamepassedtocfn) | Pass signingProfileName to CfnSigningProfile | 2.212.0 | fix |
109
109
  | [@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener](#aws-cdkaws-ecs-patternssecgroupsdisablesimplicitopenlistener) | Disable implicit openListener when custom security groups are provided | 2.214.0 | new default |
110
+ | [@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId](#aws-cdkaws-ecs-patternsuniquetargetgroupid) | When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement | V2NEXT | fix |
111
+ | [@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint](#aws-cdkaws-stepfunctions-taskshttpinvokedynamicjsonpathendpoint) | When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks. | V2NEXT | fix |
110
112
 
111
113
  <!-- END table -->
112
114
 
@@ -197,7 +199,8 @@ The following json shows the current recommended set of flags, as `cdk init` wou
197
199
  "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": true,
198
200
  "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": true,
199
201
  "@aws-cdk/aws-s3:publicAccessBlockedByDefault": true,
200
- "@aws-cdk/aws-lambda:useCdkManagedLogGroup": true
202
+ "@aws-cdk/aws-lambda:useCdkManagedLogGroup": true,
203
+ "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": true
201
204
  }
202
205
  }
203
206
  ```
@@ -245,6 +248,7 @@ are migrating a v1 CDK project to v2, explicitly set any of these flags which do
245
248
  | [@aws-cdk/core:aspectStabilization](#aws-cdkcoreaspectstabilization) | When enabled, a stabilization loop will be run when invoking Aspects during synthesis. | config | | `false` | `true` |
246
249
  | [@aws-cdk/pipelines:reduceStageRoleTrustScope](#aws-cdkpipelinesreducestageroletrustscope) | Remove the root account principal from Stage addActions trust policy | new default | | `false` | `true` |
247
250
  | [@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope](#aws-cdkpipelinesreducecrossaccountactionroletrustscope) | When enabled, scopes down the trust policy for the cross-account action role | new default | | `false` | `true` |
251
+ | [@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint](#aws-cdkaws-stepfunctions-taskshttpinvokedynamicjsonpathendpoint) | When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks. | fix | | `false` | `true` |
248
252
 
249
253
  <!-- END diff -->
250
254
 
@@ -2277,4 +2281,42 @@ override this behavior.
2277
2281
  **Compatibility with old behavior:** You can pass `openListener: true` explicitly to maintain the old behavior.
2278
2282
 
2279
2283
 
2284
+ ### @aws-cdk/aws-ecs-patterns:uniqueTargetGroupId
2285
+
2286
+ *When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement*
2287
+
2288
+ Flag type: Backwards incompatible bugfix
2289
+
2290
+ When this feature flag is enabled, ECS patterns will generate unique target group IDs that include
2291
+ both the load balancer type (public/private) and load balancer name. This prevents CloudFormation
2292
+ conflicts when switching between public and private load balancers or when changing load balancer names.
2293
+
2294
+ Without this flag, target groups use generic IDs like 'ECS' which can cause conflicts when the
2295
+ underlying load balancer is replaced due to changes in internetFacing or loadBalancerName properties.
2296
+
2297
+ This is a breaking change as it will cause target group replacement when the flag is enabled.
2298
+
2299
+
2300
+ | Since | Unset behaves like | Recommended value |
2301
+ | ----- | ----- | ----- |
2302
+ | (not in v1) | | |
2303
+ | V2NEXT | `false` | `true` |
2304
+
2305
+
2306
+ ### @aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint
2307
+
2308
+ *When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.*
2309
+
2310
+ Flag type: Backwards incompatible bugfix
2311
+
2312
+ When this feature flag is enabled, the JSONPath apiEndpoint value will be resolved dynamically at runtime, while slightly increasing the size of the state machine definition.
2313
+ When disabled, the JSONPath apiEndpoint property will only support a static string value.
2314
+
2315
+
2316
+ | Since | Unset behaves like | Recommended value |
2317
+ | ----- | ----- | ----- |
2318
+ | (not in v1) | | |
2319
+ | V2NEXT | `true` | `true` |
2320
+
2321
+
2280
2322
  <!-- END details -->
@@ -763,6 +763,21 @@ _cdk.json_
763
763
  }
764
764
  ```
765
765
 
766
+ * `@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint`
767
+
768
+ When this feature flag is enabled, the JSONPath apiEndpoint value will be resolved dynamically at runtime, while slightly increasing the size of the state machine definition.
769
+ When disabled, the JSONPath apiEndpoint property will only support a static string value.
770
+
771
+ _cdk.json
772
+
773
+ ```json
774
+ {
775
+ "context": {
776
+ "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": true
777
+ }
778
+ }
779
+ ```
780
+
766
781
  * `@aws-cdk/aws-signer:signingProfileNamePassedToCfn`
767
782
 
768
783
  When this feature flag is enabled, the `signingProfileName` property is passed to the L1 `CfnSigningProfile` construct,
@@ -783,4 +798,20 @@ _cdk.json_
783
798
  "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": true
784
799
  }
785
800
  }
786
- ```
801
+ ```
802
+
803
+ * `@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId`
804
+
805
+ When enabled, ECS patterns will generate unique target group IDs that include the load balancer name and type (public/private). This prevents CloudFormation conflicts when switching between public and private load balancers.
806
+
807
+ Without this flag, switching an ApplicationLoadBalancedFargateService from public to private (or vice versa) fails with "target group cannot be associated with more than one load balancer" error.
808
+
809
+ _cdk.json_
810
+
811
+ ```json
812
+ {
813
+ "context": {
814
+ "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": true
815
+ }
816
+ }
817
+ ```
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: konokenj.cdk-api-mcp-server
3
- Version: 0.49.0
3
+ Version: 0.50.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.219.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.220.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
  ---