konokenj.cdk-api-mcp-server 0.31.0__py3-none-any.whl → 0.57.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) 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/aws-bedrock-agentcore-alpha/README.md +1979 -0
  4. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-alpha/README.md +946 -0
  5. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/README.md +160 -75
  6. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-elasticache-alpha/README.md +421 -0
  7. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-glue-alpha/README.md +39 -9
  8. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-imagebuilder-alpha/README.md +656 -0
  9. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-alpha/README.md +1 -1
  10. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-go-alpha/README.md +102 -4
  11. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-python-alpha/README.md +6 -6
  12. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-msk-alpha/README.md +38 -8
  13. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-s3tables-alpha/README.md +82 -2
  14. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-sagemaker-alpha/README.md +32 -0
  15. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/mixins-preview/README.md +182 -0
  16. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/README.md/README.md +367 -17
  17. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/README.md +34 -0
  18. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.api-with-authorizer-and-proxy.ts +1 -1
  19. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-api.ts +1 -1
  20. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-permission-consolidation.ts +55 -0
  21. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.spec-restapi.ts +1 -0
  22. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/README.md +224 -60
  23. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-dualstack.ts +3 -4
  24. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api.ts +5 -3
  25. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.stage.ts +10 -7
  26. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.usage-plan.ts +80 -0
  27. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.iam.ts +34 -38
  28. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.lambda.ts +2 -2
  29. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.user-pool.ts +1 -1
  30. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/README.md +35 -0
  31. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.add-subroute-integration.ts +7 -4
  32. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.http-proxy.ts +1 -1
  33. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-connect-disconnect-trigger.ts +2 -2
  34. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-permission-consolidation.ts +45 -0
  35. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-proxy.ts +1 -1
  36. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda.ts +4 -4
  37. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.sqs.ts +58 -71
  38. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-lambda-permission.ts +1 -1
  39. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.js-resolver.ts +1 -1
  40. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/README.md +1 -1
  41. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-lt.ts +7 -0
  42. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/README.md +49 -1
  43. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.ecs-exec-batch-job.ts +148 -0
  44. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.managed-compute-environment-default-instance-class.ts +20 -0
  45. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-certificatemanager/README.md +11 -0
  46. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-node-18.ts +1 -1
  47. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-service-timeout.ts +1 -1
  48. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/README.md +292 -1
  49. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md +83 -0
  50. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-ip-address-type.ts +84 -0
  51. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.http-origin.ts +5 -2
  52. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-response-completion-timeout.ts +50 -0
  53. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail-data-events-only.ts +1 -1
  54. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/README.md +104 -12
  55. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.alarm-and-dashboard.ts +12 -0
  56. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.anomaly-detection-alarm.ts +44 -2
  57. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-with-graphwidget-with-labels-visible.ts +92 -0
  58. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-with-metric-id-and-visible.ts +70 -0
  59. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.search-expression.ts +51 -0
  60. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/README.md +143 -3
  61. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-docker-server.ts +44 -0
  62. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-attribute-based-compute.ts +59 -7
  63. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-custom-instance-type.ts +130 -0
  64. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-overflow-behavior.ts +61 -0
  65. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-s3-cache.ts +71 -0
  66. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-windows-image.ts +1 -2
  67. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts +26 -17
  68. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/README.md +13 -2
  69. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-client-explicit-props.ts +1 -0
  70. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/README.md +24 -0
  71. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-serverless.ts +34 -0
  72. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/README.md +225 -15
  73. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/TABLE_V1_API.md +45 -2
  74. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.cci.ts +49 -0
  75. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.add-to-resource-policy.ts +97 -0
  76. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.cci.ts +27 -0
  77. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.compound.ts +32 -0
  78. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.contirubtor-insights-for-gsi.ts +6 -2
  79. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.policy.ts +21 -1
  80. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-global.ts +9 -3
  81. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-mrsc.ts +31 -0
  82. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2.compound.ts +43 -0
  83. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md +28 -1
  84. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.client-vpn-endpoint-disconnect-on-session-timeout.ts +65 -0
  85. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-endpoint.lit.ts +6 -0
  86. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs.ts +4 -0
  87. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/README.md +41 -2
  88. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.tag-mutability-exclusion.ts +30 -0
  89. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/README.md +4 -0
  90. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.assets-docker.ts +6 -0
  91. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md +189 -1
  92. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.availability-zone-rebalancing.ts +14 -4
  93. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.blue-green-deployment-strategy.ts +147 -0
  94. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster-windows-server-ami.ts +5 -6
  95. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.ebs-volume-initialization-rate.ts +80 -0
  96. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.enable-execute-command.ts +35 -29
  97. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.exec-command.ts +16 -22
  98. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.lb-awsvpc-nw.ts +26 -16
  99. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-capacity-provider.ts +114 -0
  100. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-no-default-capacity-provider.ts +107 -0
  101. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.placement-strategies.ts +32 -8
  102. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.pseudo-terminal.ts +18 -8
  103. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/README.md +2 -0
  104. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-public-private-switch.ts +45 -0
  105. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-smart-defaults.ts +143 -0
  106. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/README.md +103 -83
  107. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-al2023-nodegroup.ts +1 -1
  108. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-removal-policy.ts +31 -0
  109. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.fargate-cluster.ts +1 -1
  110. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md +55 -4
  111. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-lambda-multi-value-headers.ts +1 -1
  112. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-target-group-attributes.ts +45 -0
  113. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.oidc.ts +1 -1
  114. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-target-group-attributes.ts +45 -0
  115. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.security-group.ts +70 -0
  116. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-actions/integ.cognito.ts +1 -1
  117. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/README.md +41 -2
  118. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.api-destination.ts +42 -0
  119. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.archive-customer-managed-key.ts +23 -0
  120. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus.ts +13 -3
  121. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/README.md +93 -4
  122. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.firehose-delivery-stream.ts +51 -0
  123. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.custom-permissions-boundary-aspect.ts +50 -0
  124. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.managed-policy.ts +9 -0
  125. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.policy.ts +9 -0
  126. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/README.md +42 -0
  127. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream-shard-level-monitoring.ts +47 -0
  128. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/README.md +159 -3
  129. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.cloudwatch-logs-processors.ts +45 -0
  130. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.record-format-conversion-schema.ts +154 -0
  131. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.record-format-conversion.ts +178 -0
  132. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.s3-bucket.lit.ts +1 -0
  133. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md +41 -2
  134. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.binary-payload.ts +1 -1
  135. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-policy-with-token-resolution.ts +46 -0
  136. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.logging-config.ts +8 -8
  137. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.multi-tenancy.ts +24 -0
  138. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.params-and-secrets.ts +1 -1
  139. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime-management.ts +1 -1
  140. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.fromasset.ts +19 -4
  141. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.inlinecode.ts +11 -4
  142. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/README.md +3 -3
  143. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-bun-lock.ts +50 -0
  144. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-pnpm.ts +1 -1
  145. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.function-exclude-smithy-models.ts +2 -2
  146. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.nodejs.build.images.ts +1 -1
  147. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/README.md +69 -1
  148. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroup-transformer.ts +37 -0
  149. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter-apply-on-transformed-logs.ts +29 -0
  150. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.save-logs-insights-query-definition.ts +7 -2
  151. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.subscriptionfilter.ts +1 -1
  152. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.transformer.ts +27 -0
  153. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ebs.ts +1 -1
  154. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts +1 -0
  155. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md +72 -2
  156. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-cloudwatch-logs-exports.ts +56 -0
  157. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api-to-imported-cluster.ts +1 -1
  158. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api.ts +1 -1
  159. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-lookup.ts +100 -0
  160. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster.ts +1 -1
  161. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-database-insights.ts +43 -0
  162. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-lookup.ts +77 -0
  163. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-endpoint.ts +36 -0
  164. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md +68 -31
  165. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.delete-existing-record-set.ts +0 -1
  166. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.private-hosted-zone-from-attributes.ts +41 -0
  167. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.route53.ts +51 -1
  168. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.zone-delegation-iam-stack.ts +66 -0
  169. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.cloudfront-alias-target.ts +16 -1
  170. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.elastic-beanstalk-hostedzoneid.ts +1 -1
  171. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.notifications-scoped-permissions.ts +71 -0
  172. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/integ.assets.bundling.docker-opts.ts +4 -1
  173. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/README.md +83 -4
  174. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-big-response.ts +17 -6
  175. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cloudfront.ts +20 -18
  176. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-nested-stack-source.ts +64 -0
  177. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-stack-source.ts +53 -0
  178. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-stack-ssm-source.ts +97 -0
  179. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-data.ts +99 -59
  180. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-deployed-bucket.ts +10 -4
  181. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-large-file.ts +23 -12
  182. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-loggroup.ts +7 -2
  183. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-efs.ts +77 -0
  184. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-empty.ts +69 -0
  185. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-multiple.ts +89 -0
  186. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-single.ts +77 -0
  187. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-signcontent.ts +11 -7
  188. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution-with-destination-key.ts +15 -8
  189. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution-with-role.ts +29 -14
  190. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution.ts +16 -8
  191. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-basic.ts +65 -0
  192. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-config.ts +66 -0
  193. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-custom-subnets.ts +66 -0
  194. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-efs.ts +66 -0
  195. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-security-groups.ts +72 -0
  196. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-subnet-selection.ts +70 -0
  197. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment.ts +47 -69
  198. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/integ.bucket-notifications.ts +80 -42
  199. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-secretsmanager/integ.secret.dynamic-reference-key.ts +38 -0
  200. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-signer/integ.signing-profile.ts +5 -0
  201. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns/README.md +2 -0
  202. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-sqs-subscription-filter.ts +75 -0
  203. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-sqs.ts +21 -40
  204. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-parallel.ts +82 -0
  205. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-redrive.ts +130 -0
  206. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-with-catch.ts +1 -0
  207. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.sm-jsonpath-with-distributed-map-jsonata.ts +105 -0
  208. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/README.md +75 -5
  209. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region-lambda.ts +1 -1
  210. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-ebs.ts +126 -0
  211. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-arm64.ts +27 -0
  212. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-default.ts +25 -0
  213. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-mixed-arch.ts +35 -0
  214. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-nodejs22.ts +27 -0
  215. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-x86.ts +27 -0
  216. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke-json-path.ts +102 -0
  217. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/README.md +84 -1
  218. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-browser-type.ts +35 -0
  219. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-resources-to-replicate-tags.ts +36 -0
  220. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-retry.ts +32 -0
  221. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-runtime-validation.ts +43 -0
  222. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary.ts +2 -0
  223. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.novalue-nonstring.ts +25 -0
  224. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/README.md +2 -1870
  225. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/README.md +59 -0
  226. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource.ts +1 -1
  227. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-lambda-node-runtime.ts +1 -1
  228. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.external-id.ts +80 -0
  229. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.invoke-function-payload.ts +1 -1
  230. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md +152 -10
  231. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/README.md +55 -1
  232. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/interfaces/README.md +33 -0
  233. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/README.md +4 -0
  234. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-reduce-stagerole-scope.ts +4 -1
  235. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-with-customsynthesizer.ts +105 -0
  236. {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/METADATA +2 -2
  237. {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/RECORD +240 -151
  238. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-firehose-stream.ts +0 -33
  239. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.expose-metric-with-dimensions.ts +0 -47
  240. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-signcontent.d.ts +0 -1
  241. {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/WHEEL +0 -0
  242. {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/entry_points.txt +0 -0
  243. {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -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
@@ -1177,7 +1186,7 @@ const version = fn.currentVersion;
1177
1186
  You can use Application AutoScaling to automatically configure the provisioned concurrency for your functions. AutoScaling can be set to track utilization or be based on a schedule. To configure AutoScaling on a function alias:
1178
1187
 
1179
1188
  ```ts
1180
- import * as autoscaling from 'aws-cdk-lib/aws-autoscaling';
1189
+ import * as appscaling from 'aws-cdk-lib/aws-applicationautoscaling';
1181
1190
 
1182
1191
  declare const fn: lambda.Function;
1183
1192
  const alias = fn.addAlias('prod');
@@ -1192,7 +1201,7 @@ as.scaleOnUtilization({
1192
1201
 
1193
1202
  // Configure Scheduled Scaling
1194
1203
  as.scaleOnSchedule('ScaleUpInTheMorning', {
1195
- schedule: autoscaling.Schedule.cron({ hour: '8', minute: '0'}),
1204
+ schedule: appscaling.Schedule.cron({ hour: '8', minute: '0'}),
1196
1205
  minCapacity: 20,
1197
1206
  });
1198
1207
  ```
@@ -1249,6 +1258,36 @@ const fn = new lambda.Function(this, 'MyFunction', {
1249
1258
  });
1250
1259
  ```
1251
1260
 
1261
+ ## Lambda with Tenant Isolation
1262
+
1263
+ Lambda functions can be configured with tenant isolation to ensure that different tenants never share the same execution environment. This is useful for SaaS applications where you need to guarantee compute isolation between untrusted tenants while using a single Lambda function.
1264
+
1265
+ ```ts
1266
+ const fn = new lambda.Function(this, 'MyFunction', {
1267
+ runtime: lambda.Runtime.NODEJS_18_X,
1268
+ handler: 'index.handler',
1269
+ code: lambda.Code.fromAsset(path.join(__dirname, 'lambda-handler')),
1270
+ tenancyConfig: lambda.TenancyConfig.PER_TENANT,
1271
+ });
1272
+ ```
1273
+
1274
+ **Important considerations:**
1275
+
1276
+ * **Immutable configuration**: Tenant isolation can only be configured during function creation and cannot be modified on existing functions.
1277
+ * **Incompatible features**: The following features are not compatible with tenant isolation and will result in CloudFormation deployment errors:
1278
+ * **Provisioned Concurrency**
1279
+ * **Function URLs**
1280
+ * **SnapStart**
1281
+ * **Event Source Mappings** (except API Gateway):
1282
+ * ❌ SQS
1283
+ * ❌ DynamoDB
1284
+ * ❌ Kinesis
1285
+ * ❌ MSK
1286
+ * ❌ Self-managed Kafka
1287
+ * ✅ API Gateway (supported)
1288
+
1289
+ CDK validates these restrictions at synthesis time and provides clear error messages when incompatible features are configured.
1290
+
1252
1291
  ### Legacy Log Retention
1253
1292
 
1254
1293
  As an alternative to providing a custom, user controlled log group, the legacy `logRetention` property can be used to set a different expiration period.
@@ -10,7 +10,7 @@ const app = new App({
10
10
  const stack = new Stack(app, 'IntegBinaryPayload');
11
11
 
12
12
  const fn = new Function(stack, 'fn', {
13
- runtime: Runtime.NODEJS_18_X,
13
+ runtime: Runtime.NODEJS_20_X,
14
14
  handler: 'index.handler',
15
15
  code: Code.fromInline(`
16
16
  exports.handler = async (event) => {
@@ -0,0 +1,46 @@
1
+ import * as cdk from 'aws-cdk-lib';
2
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
3
+ import * as iam from 'aws-cdk-lib/aws-iam';
4
+ import * as integ from '@aws-cdk/integ-tests-alpha';
5
+
6
+ const app = new cdk.App({
7
+ postCliContext: {
8
+ '@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
9
+ },
10
+ });
11
+ const stack = new cdk.Stack(app, 'stack');
12
+
13
+ const mappingName = 'testmapping';
14
+ const mapping = new cdk.CfnMapping(stack, 'testmapping', {
15
+ mapping: {
16
+ us: {
17
+ regionalModels:
18
+ 'arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-lite-v1:0',
19
+ },
20
+ },
21
+ });
22
+ mapping.overrideLogicalId(mappingName);
23
+
24
+ const func = new lambda.Function(stack, 'test-function', {
25
+ code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); return {\'statusCode\': 200, \'body\': \'\'}; }'),
26
+ runtime: lambda.Runtime.NODEJS_20_X,
27
+ handler: 'index.handler',
28
+ });
29
+
30
+ // Literal resources in statement
31
+ func.addToRolePolicy(new iam.PolicyStatement({
32
+ actions: ['bedrock:Invoke*'],
33
+ resources: [
34
+ '*',
35
+ ],
36
+ }));
37
+
38
+ // Array token resources in statement
39
+ func.addToRolePolicy(new iam.PolicyStatement({
40
+ actions: ['bedrock:Invoke*'],
41
+ resources: cdk.Fn.split(',', cdk.Fn.findInMap(mappingName, 'us', 'regionalModels')),
42
+ }));
43
+
44
+ new integ.IntegTest(app, 'lambda-policy-with-token-resolution', {
45
+ testCases: [stack],
46
+ });
@@ -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,
@@ -0,0 +1,24 @@
1
+ import { App, Stack } from 'aws-cdk-lib';
2
+ import * as integ from '@aws-cdk/integ-tests-alpha';
3
+ import { Function, InlineCode, Runtime, TenancyConfig } from 'aws-cdk-lib/aws-lambda';
4
+
5
+ const app = new App({
6
+ postCliContext: {
7
+ '@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
8
+ },
9
+ });
10
+
11
+ const stack = new Stack(app, 'aws-cdk-lambda-multi-tenancy');
12
+
13
+ new Function(stack, 'MultiTenantFunction', {
14
+ code: new InlineCode('foo'),
15
+ handler: 'index.handler',
16
+ runtime: Runtime.NODEJS_18_X,
17
+ tenancyConfig: TenancyConfig.PER_TENANT,
18
+ });
19
+
20
+ new integ.IntegTest(app, 'lambda-multi-tenancy', {
21
+ testCases: [stack],
22
+ });
23
+
24
+ app.synth();
@@ -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
 
@@ -10,20 +10,35 @@ const app = new App({
10
10
  });
11
11
  const stack = new Stack(app, 'aws-cdk-lambda-runtime-fromasset');
12
12
 
13
- const lambdaFunction = new Function(stack, 'MyFunction', {
13
+ const lambdaFunctionJava21 = new Function(stack, 'MyFunctionJava21', {
14
14
  runtime: Runtime.JAVA_21,
15
15
  handler: 'com.mycompany.app.LambdaMethodHandler::handleRequest',
16
16
  code: Code.fromAsset(path.join(__dirname, 'my-app-1.0-SNAPSHOT.zip')),
17
17
  });
18
18
 
19
+ const lambdaFunctionJava25 = new Function(stack, 'MyFunctionJava25', {
20
+ runtime: Runtime.JAVA_25,
21
+ handler: 'com.mycompany.app.LambdaMethodHandler::handleRequest',
22
+ code: Code.fromAsset(path.join(__dirname, 'my-app-1.0-SNAPSHOT.zip')),
23
+ });
24
+
19
25
  const integTest = new integ.IntegTest(app, 'Integ', { testCases: [stack] });
20
26
 
21
- const invoke = integTest.assertions.invokeFunction({
22
- functionName: lambdaFunction.functionName,
27
+ const invokeJava21 = integTest.assertions.invokeFunction({
28
+ functionName: lambdaFunctionJava21.functionName,
29
+ payload: '123',
30
+ });
31
+
32
+ invokeJava21.expect(integ.ExpectedResult.objectLike({
33
+ Payload: '"123"',
34
+ }));
35
+
36
+ const invokeJava25 = integTest.assertions.invokeFunction({
37
+ functionName: lambdaFunctionJava25.functionName,
23
38
  payload: '123',
24
39
  });
25
40
 
26
- invoke.expect(integ.ExpectedResult.objectLike({
41
+ invokeJava25.expect(integ.ExpectedResult.objectLike({
27
42
  Payload: '"123"',
28
43
  }));
29
44
 
@@ -55,12 +55,12 @@ 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" }'),
58
+ const python314 = new Function(stack, 'PYTHON_3_14', {
59
+ code: new InlineCode('def handler(event, context):\n return "success"'),
60
60
  handler: 'index.handler',
61
- runtime: Runtime.NODEJS_18_X,
61
+ runtime: Runtime.PYTHON_3_14,
62
62
  });
63
- new CfnOutput(stack, 'NODEJS_18_X-functionName', { value: node18xfn.functionName });
63
+ new CfnOutput(stack, 'PYTHON_3_14-functionName', { value: python314.functionName });
64
64
 
65
65
  const node20xfn = new Function(stack, 'NODEJS_20_X', {
66
66
  code: new InlineCode('exports.handler = async function(event) { return "success" }'),
@@ -76,6 +76,13 @@ const node22xfn = new Function(stack, 'NODEJS_22_X', {
76
76
  });
77
77
  new CfnOutput(stack, 'NODEJS_22_X-functionName', { value: node22xfn.functionName });
78
78
 
79
+ const node24xfn = new Function(stack, 'NODEJS_24_X', {
80
+ code: new InlineCode('exports.handler = async function(event) { return "success" }'),
81
+ handler: 'index.handler',
82
+ runtime: Runtime.NODEJS_24_X,
83
+ });
84
+ new CfnOutput(stack, 'NODEJS_24_X-functionName', { value: node24xfn.functionName });
85
+
79
86
  new integ.IntegTest(app, 'lambda-runtime-inlinecode', {
80
87
  testCases: [stack],
81
88
  });
@@ -108,8 +108,8 @@ With the `@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion` disabled, the runt
108
108
 
109
109
  ## Lock file
110
110
 
111
- The `NodejsFunction` requires a dependencies lock file (`yarn.lock`, `pnpm-lock.yaml`, `bun.lockb` or
112
- `package-lock.json`). When bundling in a Docker container, the path containing this lock file is
111
+ The `NodejsFunction` requires a dependencies lock file (`yarn.lock`, `pnpm-lock.yaml`, `bun.lockb`,
112
+ `bun.lock` or `package-lock.json`). When bundling in a Docker container, the path containing this lock file is
113
113
  used as the source (`/asset-input`) for the volume mounted in the container.
114
114
 
115
115
  By default, the construct will try to automatically determine your project lock file.
@@ -201,7 +201,7 @@ new nodejs.NodejsFunction(this, 'my-handler', {
201
201
 
202
202
  The modules listed in `nodeModules` must be present in the `package.json`'s dependencies or
203
203
  installed. The same version will be used for installation. The lock file (`yarn.lock`,
204
- `pnpm-lock.yaml`, `bun.lockb` or `package-lock.json`) will be used along with the right installer (`yarn`,
204
+ `pnpm-lock.yaml`, `bun.lockb`, `bun.lock` or `package-lock.json`) will be used along with the right installer (`yarn`,
205
205
  `pnpm`, `bun` or `npm`).
206
206
 
207
207
  When working with `nodeModules` using native dependencies, you might want to force bundling in a
@@ -0,0 +1,50 @@
1
+ import * as path from 'path';
2
+ import { Runtime } from 'aws-cdk-lib/aws-lambda';
3
+ import * as cdk from 'aws-cdk-lib';
4
+ import { ExpectedResult, IntegTest } from '@aws-cdk/integ-tests-alpha';
5
+ import * as lambda from 'aws-cdk-lib/aws-lambda-nodejs';
6
+
7
+ const app = new cdk.App({
8
+ postCliContext: {
9
+ '@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
10
+ },
11
+ });
12
+
13
+ const stack = new cdk.Stack(app, 'TestStack');
14
+
15
+ const handler = new lambda.NodejsFunction(stack, 'Function', {
16
+ entry: path.join(__dirname, 'integ-handlers/bun_lock/dependencies-bun.ts'),
17
+ runtime: Runtime.NODEJS_22_X,
18
+ bundling: {
19
+ minify: true,
20
+ // Will be installed, not bundled
21
+ // (axios is a package with sub-dependencies,
22
+ // will be used to ensure bun bundling works as expected)
23
+ nodeModules: ['axios'],
24
+ forceDockerBundling: true,
25
+ },
26
+
27
+ // To (re-)generate this lockfile:
28
+ // 1. Ensure your local version of bun matches the version in packages/aws-cdk-lib/aws-lambda-nodejs/lib/Dockerfile
29
+ // 2. `cd` to `packages/@aws-cdk-testing/framework-integ/test/aws-lambda-nodejs/test/integ-handlers/bun`
30
+ // 3. Rename the `_package.json` file to `package.json`
31
+ // 4. Run `bun install`
32
+ depsLockFilePath: path.join(__dirname, 'integ-handlers/bun_lock/bun.lock'),
33
+ });
34
+
35
+ const integ = new IntegTest(app, 'BunTest', {
36
+ testCases: [stack],
37
+ stackUpdateWorkflow: false, // this will tell the runner to not check in assets.
38
+ });
39
+
40
+ const response = integ.assertions.invokeFunction({
41
+ functionName: handler.functionName,
42
+ });
43
+ response.expect(
44
+ ExpectedResult.objectLike({
45
+ // expect invoking without error
46
+ StatusCode: 200,
47
+ ExecutedVersion: '$LATEST',
48
+ Payload: 'null',
49
+ }),
50
+ );
@@ -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);
@@ -199,7 +199,6 @@ the name `Namespace/MetricName`.
199
199
 
200
200
  You can expose a metric on a metric filter by calling the `MetricFilter.metric()` API.
201
201
  This has a default of `statistic = 'avg'` if the statistic is not set in the `props`.
202
- Additionally, if the metric filter was created with a dimension map, those dimensions will be included in the metric.
203
202
 
204
203
  ```ts
205
204
  declare const logGroup: logs.LogGroup;
@@ -403,6 +402,10 @@ new logs.QueryDefinition(this, 'QueryDefinition', {
403
402
  'loggingType = "ERROR"',
404
403
  'loggingMessage = "A very strange error occurred!"',
405
404
  ],
405
+ statsStatements: [
406
+ 'count(loggingMessage) as loggingErrors',
407
+ 'count(differentLoggingMessage) as differentLoggingErrors',
408
+ ],
406
409
  sort: '@timestamp desc',
407
410
  limit: 20,
408
411
  }),
@@ -481,6 +484,71 @@ new logs.LogGroup(this, 'LogGroup', {
481
484
  });
482
485
  ```
483
486
 
487
+ ## Transformer
488
+
489
+ A log transformer enables transforming log events into a different format, making them easier
490
+ to process and analyze. You can transform logs from different sources into standardized formats
491
+ that contain relevant, source-specific information. Transformations are performed at the time of log ingestion.
492
+ Transformers support several types of processors which can be chained into a processing pipeline (subject to some restrictions, see [Usage Limits](#usage-limits)).
493
+
494
+ ### Processor Types
495
+
496
+ 1. **Parser Processors**: Parse string log events into structured log events. These are configurable parsers created using `ParserProcessor`, and support conversion to a format like Json, extracting fields from CSV input, converting vended sources to [OCSF](https://schema.ocsf.io/1.1.0/) format, regex parsing using Grok patterns or key-value parsing. Refer [configurable parsers](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation-Processors.html#CloudWatch-Logs-Transformation-Configurable) for more examples.
497
+
498
+ 2. **Vended Log Parsers**: Parse log events from vended sources into structured log events. These are created using `VendedLogParser`, and support conversion from sources such as AWS WAF, PostGres, Route53, CloudFront and VPC. These parsers are not configurable, meaning these can be added to the pipeline but do not accept any properties or configurations. Refer [vended log parsers](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation-Processors.html#CloudWatch-Logs-Transformation-BuiltIn) for more examples.
499
+
500
+ 3. **String Mutators**: Perform operations on string values in a field of a log event and are created using `StringMutatorProcessor`. These can be used to format string values in the log event such as changing case, removing trailing whitespaces or extracting values from a string field by splitting the string or regex backreferences. Refer [string mutators](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation-Processors.html#CloudWatch-Logs-Transformation-StringMutate) for more examples.
501
+
502
+ 4. **JSON Mutators**: Perform operation on JSON log events and are created using `JsonMutatorProcessor`. These processors can be used to enrich log events by adding new fields, deleting, moving, renaming fields, copying values to other fields or converting a list of key-value pairs to a map. Refer [JSON mutators](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation-Processors.html#CloudWatch-Logs-Transformation-JSONMutate) for more examples.
503
+
504
+ 5. **Data Converters**: Convert the data into different formats and are created using `DataConverterProcessor`. These can be used to convert values in a field to datatypes such as integers, string, double and boolean or to convert dates and times to different formats. Refer [datatype processors](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation-Processors.html#CloudWatch-Logs-Transformation-Datatype) for more examples.
505
+
506
+ ### Usage Limits
507
+
508
+ - A transformer can have a maximum of 20 processors
509
+ - At least one parser-type processor is required
510
+ - Maximum of 5 parser-type processors allowed
511
+ - AWS vended log parser (if used) must be the first processor
512
+ - Only one parseToOcsf processor, one grok processor, one addKeys processor, and one copyValue processor allowed per transformer
513
+ - Transformers can only be used with log groups in the Standard log class
514
+
515
+ Example:
516
+
517
+ ```ts
518
+
519
+ // Create a log group
520
+ const logGroup = new logs.LogGroup(this, 'MyLogGroup');
521
+
522
+ // Create a JSON parser processor
523
+ const jsonParser = new logs.ParserProcessor({
524
+ type: logs.ParserProcessorType.JSON
525
+ });
526
+
527
+ // Create a processor to add keys
528
+ const addKeysProcessor = new logs.JsonMutatorProcessor({
529
+ type: logs.JsonMutatorType.ADD_KEYS,
530
+ addKeysOptions: {
531
+ entries: [{
532
+ key: 'metadata.transformed_in',
533
+ value: 'CloudWatchLogs'
534
+ }]
535
+ }
536
+ });
537
+
538
+ // Create a transformer with these processors
539
+ new logs.Transformer(this, 'Transformer', {
540
+ transformerName: 'MyTransformer',
541
+ logGroup: logGroup,
542
+ transformerConfig: [jsonParser, addKeysProcessor]
543
+ });
544
+ ```
545
+
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
+
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
+
484
552
  ## Notes
485
553
 
486
554
  Be aware that Log Group ARNs will always have the string `:*` appended to
@@ -0,0 +1,37 @@
1
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
2
+ import { App, Stack, StackProps } from 'aws-cdk-lib';
3
+ import { JsonMutatorType, LogGroup, ParserProcessorType, ParserProcessor, JsonMutatorProcessor } from 'aws-cdk-lib/aws-logs';
4
+
5
+ class TransformerIntegStack extends Stack {
6
+ constructor(scope: App, id: string, props?: StackProps) {
7
+ super(scope, id, props);
8
+
9
+ const logGroup = new LogGroup(this, 'MyLogGroup');
10
+ const jsonParser = new ParserProcessor({
11
+ type: ParserProcessorType.JSON,
12
+ jsonOptions: { source: 'customField' },
13
+ });
14
+
15
+ const addKeysProcesor = new JsonMutatorProcessor({
16
+ type: JsonMutatorType.ADD_KEYS,
17
+ addKeysOptions: {
18
+ entries: [
19
+ { key: 'test_key1', value: 'test_value1', overwriteIfExists: true },
20
+ { key: 'test_key2', value: 'test_value2' },
21
+ { key: 'test_key3', value: 'test_value3', overwriteIfExists: false },
22
+ ],
23
+ },
24
+ });
25
+
26
+ logGroup.addTransformer('Transformer', {
27
+ transformerName: 'MyTransformer',
28
+ transformerConfig: [jsonParser, addKeysProcesor],
29
+ });
30
+ }
31
+ }
32
+
33
+ const app = new App();
34
+ const testCase = new TransformerIntegStack(app, 'aws-cdk-transformer-integ');
35
+ new IntegTest(app, 'transformer-create', {
36
+ testCases: [testCase],
37
+ });
@@ -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,13 +11,14 @@ class LogsInsightsQueryDefinitionIntegStack extends Stack {
11
11
  removalPolicy: RemovalPolicy.DESTROY,
12
12
  });
13
13
 
14
- // Test query creation with single parse and filter statements
14
+ // Test query creation with single parse, filter, and sort statements
15
15
  new QueryDefinition(this, 'QueryDefinition', {
16
16
  queryDefinitionName: 'QueryDefinition',
17
17
  queryString: new QueryString({
18
18
  fields: ['@timestamp', '@message'],
19
19
  parse: '@message "[*] *" as loggingType, loggingMessage',
20
20
  filter: 'loggingType = "ERROR"',
21
+ stats: 'count(loggingMessage) as loggingErrors',
21
22
  sort: '@timestamp desc',
22
23
  limit: 20,
23
24
  display: 'loggingMessage',
@@ -25,7 +26,7 @@ class LogsInsightsQueryDefinitionIntegStack extends Stack {
25
26
  logGroups: [logGroup],
26
27
  });
27
28
 
28
- // Test query creation with multiple parse and filter statements
29
+ // Test query creation with multiple parse, filter, and stats statements
29
30
  new QueryDefinition(this, 'QueryDefinitionWithMultipleStatements', {
30
31
  queryDefinitionName: 'QueryDefinitionWithMultipleStatements',
31
32
  queryString: new QueryString({
@@ -38,6 +39,10 @@ class LogsInsightsQueryDefinitionIntegStack extends Stack {
38
39
  'loggingType = "ERROR"',
39
40
  'loggingMessage = "A very strange error occurred!"',
40
41
  ],
42
+ statsStatements: [
43
+ 'count(loggingMessage) as loggingErrors',
44
+ 'count(differentLoggingMessage) as differentLoggingErrors',
45
+ ],
41
46
  sort: '@timestamp desc',
42
47
  limit: 20,
43
48
  display: 'loggingMessage',
@@ -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
  });
@@ -0,0 +1,27 @@
1
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
2
+ import { App, Stack, StackProps } from 'aws-cdk-lib';
3
+ import { LogGroup, ParserProcessorType, ParserProcessor, Transformer } from 'aws-cdk-lib/aws-logs';
4
+
5
+ class TransformerIntegStack extends Stack {
6
+ constructor(scope: App, id: string, props?: StackProps) {
7
+ super(scope, id, props);
8
+
9
+ const logGroup = new LogGroup(this, 'MyLogGroup');
10
+ const jsonParser = new ParserProcessor({
11
+ type: ParserProcessorType.JSON,
12
+ jsonOptions: { source: 'customField' },
13
+ });
14
+
15
+ new Transformer(this, 'Transformer', {
16
+ transformerName: 'MyTransformer',
17
+ logGroup: logGroup,
18
+ transformerConfig: [jsonParser],
19
+ });
20
+ }
21
+ }
22
+
23
+ const app = new App();
24
+ const testCase = new TransformerIntegStack(app, 'aws-cdk-transformer-integ');
25
+ new IntegTest(app, 'transformer-create', {
26
+ testCases: [testCase],
27
+ });