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
@@ -1,6 +1,6 @@
1
1
  import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
2
  import * as cdk from 'aws-cdk-lib';
3
- import { ARecord, CaaAmazonRecord, CnameRecord, Continent, GeoLocation, PrivateHostedZone, PublicHostedZone, RecordTarget, TxtRecord } from 'aws-cdk-lib/aws-route53';
3
+ import { Alpn, ARecord, CaaAmazonRecord, CnameRecord, Continent, GeoLocation, HttpsRecord, HttpsRecordValue, PrivateHostedZone, PublicHostedZone, RecordTarget, SvcbRecord, SvcbRecordValue, TxtRecord } from 'aws-cdk-lib/aws-route53';
4
4
 
5
5
  const app = new cdk.App();
6
6
 
@@ -92,6 +92,56 @@ new TxtRecord(stack, 'TXT', {
92
92
  ],
93
93
  });
94
94
 
95
+ new SvcbRecord(stack, 'SVCB-AliasMode', {
96
+ zone: publicZone,
97
+ recordName: '_8080._svcb-alias',
98
+ values: [SvcbRecordValue.alias('service.example.com')],
99
+ });
100
+ new SvcbRecord(stack, 'SVCB-ServiceMode', {
101
+ zone: publicZone,
102
+ recordName: '_8080._svcb-service',
103
+ values: [SvcbRecordValue.service({ alpn: [Alpn.H3, Alpn.H2] })],
104
+ });
105
+ new SvcbRecord(stack, 'SVCB-ServiceMode-FullParams', {
106
+ zone: publicZone,
107
+ recordName: '_8080._svcb-service-fullparams',
108
+ values: [SvcbRecordValue.service({
109
+ priority: 2,
110
+ targetName: 'service.example.com',
111
+ mandatory: ['alpn'],
112
+ alpn: [Alpn.H3, Alpn.H2, Alpn.HTTP1_1, Alpn.of('h3-29')],
113
+ noDefaultAlpn: true,
114
+ port: 8443,
115
+ ipv4hint: ['127.0.0.1'],
116
+ ipv6hint: ['::1'],
117
+ })],
118
+ });
119
+
120
+ new HttpsRecord(stack, 'HTTPS-AliasMode', {
121
+ zone: publicZone,
122
+ recordName: 'https-alias',
123
+ values: [HttpsRecordValue.alias('service.example.com')],
124
+ });
125
+ new HttpsRecord(stack, 'HTTPS-ServiceMode', {
126
+ zone: publicZone,
127
+ recordName: 'https-service',
128
+ values: [HttpsRecordValue.service({ alpn: [Alpn.H3, Alpn.H2] })],
129
+ });
130
+ new HttpsRecord(stack, 'HTTPS-ServiceMode-FullParams', {
131
+ zone: publicZone,
132
+ recordName: 'https-service-fullparams',
133
+ values: [HttpsRecordValue.service({
134
+ priority: 2,
135
+ targetName: 'service.example.com',
136
+ mandatory: ['alpn'],
137
+ alpn: [Alpn.H3, Alpn.H2, Alpn.HTTP1_1, Alpn.of('h3-29')],
138
+ noDefaultAlpn: true,
139
+ port: 8443,
140
+ ipv4hint: ['127.0.0.1'],
141
+ ipv6hint: ['::1'],
142
+ })],
143
+ });
144
+
95
145
  new cdk.CfnOutput(stack, 'PrivateZoneId', { value: privateZone.hostedZoneId });
96
146
  new cdk.CfnOutput(stack, 'PublicZoneId', { value: publicZone.hostedZoneId });
97
147
 
@@ -0,0 +1,66 @@
1
+ import * as iam from 'aws-cdk-lib/aws-iam';
2
+ import * as cdk from 'aws-cdk-lib';
3
+ import * as route53 from 'aws-cdk-lib/aws-route53';
4
+ import { Construct } from 'constructs';
5
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
6
+
7
+ class ZoneDelegationIamStack extends cdk.Stack {
8
+ constructor(scope: Construct, id: string) {
9
+ super(scope, id);
10
+
11
+ const parentZone = new route53.PublicHostedZone(this, 'ParentZone', {
12
+ zoneName: 'uniqueexample.com',
13
+ });
14
+
15
+ const trusteeRoleArns = this.formatArn({
16
+ service: 'iam',
17
+ region: '',
18
+ resource: 'role',
19
+ resourceName: 'ZoneDelegationStack-*',
20
+ });
21
+
22
+ const delegationRole = new iam.Role(this, 'ZoneDelegationRole', {
23
+ roleName: 'ExampleDelegationRole',
24
+ assumedBy: new iam.AccountRootPrincipal().withConditions({
25
+ ArnLike: {
26
+ 'aws:PrincipalArn': trusteeRoleArns,
27
+ },
28
+ }),
29
+ });
30
+
31
+ const delegationGrant = parentZone.grantDelegation(delegationRole, {
32
+ delegatedZoneNames: [
33
+ 'sub1.uniqueexample.com',
34
+ 'sub2_*$.uniqueexample.com', // should result in octal codes in iam condition
35
+ ],
36
+ });
37
+
38
+ const subZone = new route53.PublicHostedZone(this, 'SubZone', {
39
+ zoneName: 'sub1.uniqueexample.com',
40
+ });
41
+
42
+ new route53.CrossAccountZoneDelegationRecord(subZone, 'ZoneDelegation', {
43
+ delegatedZone: subZone,
44
+ parentHostedZoneName: parentZone.zoneName,
45
+ delegationRole: delegationRole,
46
+ }).node.addDependency(delegationGrant);
47
+
48
+ const subZoneWithSpecialChars = new route53.PublicHostedZone(this, 'SubZoneSpecialChars', {
49
+ zoneName: 'sub2_*$.uniqueexample.com',
50
+ });
51
+
52
+ new route53.CrossAccountZoneDelegationRecord(subZoneWithSpecialChars, 'ZoneDelegation', {
53
+ delegatedZone: subZoneWithSpecialChars,
54
+ parentHostedZoneName: parentZone.zoneName,
55
+ delegationRole: delegationRole,
56
+ }).node.addDependency(delegationGrant);
57
+ }
58
+ }
59
+
60
+ const app = new cdk.App();
61
+
62
+ const stack = new ZoneDelegationIamStack(app, 'ZoneDelegationStack');
63
+
64
+ new IntegTest(app, 'ZoneDelegationIam', {
65
+ testCases: [stack],
66
+ });
@@ -3,6 +3,7 @@ import * as route53 from 'aws-cdk-lib/aws-route53';
3
3
  import * as s3 from 'aws-cdk-lib/aws-s3';
4
4
  import * as cdk from 'aws-cdk-lib';
5
5
  import * as targets from 'aws-cdk-lib/aws-route53-targets';
6
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
6
7
 
7
8
  const app = new cdk.App();
8
9
 
@@ -31,4 +32,18 @@ new route53.ARecord(zone, 'Alias', {
31
32
  target: route53.RecordTarget.fromAlias(new targets.CloudFrontTarget(distribution)),
32
33
  });
33
34
 
34
- app.synth();
35
+ new route53.AaaaRecord(zone, 'AaaaAlias', {
36
+ zone,
37
+ recordName: '_foo',
38
+ target: route53.RecordTarget.fromAlias(new targets.CloudFrontTarget(distribution)),
39
+ });
40
+
41
+ new route53.HttpsRecord(zone, 'HttpsAlias', {
42
+ zone,
43
+ recordName: '_foo',
44
+ target: route53.RecordTarget.fromAlias(new targets.CloudFrontTarget(distribution)),
45
+ });
46
+
47
+ new IntegTest(app, 'aws-cdk-route53-cloudfront-alias-integ-test', {
48
+ testCases: [stack],
49
+ });
@@ -6,7 +6,7 @@ import * as targets from 'aws-cdk-lib/aws-route53-targets';
6
6
  import { IntegTest } from '@aws-cdk/integ-tests-alpha';
7
7
  import * as elasticbeanstalk from 'aws-cdk-lib/aws-elasticbeanstalk';
8
8
  import * as custom from 'aws-cdk-lib/custom-resources';
9
- import { RegionInfo } from 'aws-cdk-lib/region-info';
9
+ import { RegionInfo } from '@aws-cdk/region-info';
10
10
 
11
11
  const app = new App({
12
12
  postCliContext: {
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env node
2
+ import * as cdk from 'aws-cdk-lib';
3
+ import * as integ from '@aws-cdk/integ-tests-alpha';
4
+ import * as s3 from 'aws-cdk-lib/aws-s3';
5
+ import * as sns from 'aws-cdk-lib/aws-sns';
6
+ import * as sqs from 'aws-cdk-lib/aws-sqs';
7
+ import * as s3n from 'aws-cdk-lib/aws-s3-notifications';
8
+ import { Match, Template } from 'aws-cdk-lib/assertions';
9
+
10
+ const app = new cdk.App();
11
+
12
+ const stack = new cdk.Stack(app, 'aws-cdk-s3-notifications-scoped-permissions');
13
+
14
+ // Create multiple buckets to test consolidated policy with scoped permissions
15
+ const bucket1 = new s3.Bucket(stack, 'Bucket1', {
16
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
17
+ });
18
+
19
+ const bucket2 = new s3.Bucket(stack, 'Bucket2', {
20
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
21
+ });
22
+
23
+ const topic = new sns.Topic(stack, 'Topic');
24
+ const queue = new sqs.Queue(stack, 'Queue', {
25
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
26
+ });
27
+
28
+ // Add notifications to multiple buckets with different event types - this should create scoped IAM permissions
29
+ bucket1.addEventNotification(s3.EventType.OBJECT_CREATED_PUT, new s3n.SnsDestination(topic));
30
+ bucket1.addEventNotification(s3.EventType.OBJECT_CREATED_POST, new s3n.SqsDestination(queue));
31
+ bucket2.addEventNotification(s3.EventType.OBJECT_REMOVED_DELETE, new s3n.SnsDestination(topic));
32
+ bucket2.addEventNotification(s3.EventType.OBJECT_REMOVED_DELETE_MARKER_CREATED, new s3n.SnsDestination(topic));
33
+
34
+ // Create integration test with snapshot comparison enabled
35
+ new integ.IntegTest(app, 'ScopedPermissionsTest', {
36
+ testCases: [stack],
37
+ diffAssets: true,
38
+ });
39
+
40
+ // Add assertions to verify IAM policies are scoped to specific bucket ARNs
41
+ const template = Template.fromStack(stack);
42
+
43
+ // Verify that IAM policies do not contain wildcard permissions
44
+ template.hasResourceProperties('AWS::IAM::Policy', {
45
+ PolicyDocument: {
46
+ Statement: Match.arrayWith([
47
+ Match.objectLike({
48
+ Effect: 'Allow',
49
+ Action: 's3:PutBucketNotification',
50
+ Resource: Match.not('*'), // Ensure no wildcard permissions
51
+ }),
52
+ ]),
53
+ },
54
+ });
55
+
56
+ // Verify that the IAM policy contains specific bucket ARNs
57
+ template.hasResourceProperties('AWS::IAM::Policy', {
58
+ PolicyDocument: {
59
+ Statement: Match.arrayWith([
60
+ Match.objectLike({
61
+ Effect: 'Allow',
62
+ Action: 's3:PutBucketNotification',
63
+ Resource: Match.arrayWith([
64
+ Match.objectLike({
65
+ 'Fn::GetAtt': Match.arrayWith([Match.stringLikeRegexp('Bucket[12]'), 'Arn']),
66
+ }),
67
+ ]),
68
+ }),
69
+ ]),
70
+ },
71
+ });
@@ -9,7 +9,10 @@ const stack = new Stack(app, 'cdk-integ-assets-bundling-docker-opts');
9
9
  new assets.Asset(stack, 'BundledAsset', {
10
10
  path: path.join(__dirname, 'markdown-asset'), // /asset-input and working directory in the container
11
11
  bundling: {
12
- image: DockerImage.fromBuild(path.join(__dirname, 'alpine-markdown')), // Build an image
12
+ // Build an image
13
+ image: DockerImage.fromBuild(path.join(__dirname, 'alpine-markdown'), {
14
+ platform: 'linux/amd64',
15
+ }),
13
16
  command: [
14
17
  'sh', '-c', `
15
18
  markdown index.md > /asset-output/index.html
@@ -1,6 +1,5 @@
1
1
  # AWS S3 Deployment Construct Library
2
2
 
3
-
4
3
  This library allows populating an S3 bucket with the contents of .zip files
5
4
  from other S3 buckets or from local disk.
6
5
 
@@ -83,7 +82,7 @@ User: *** is not authorized to perform: kms:Decrypt on the resource associated w
83
82
  because no identity-based policy allows the kms:Decrypt action
84
83
  ```
85
84
 
86
- When this happens, users can use the public `handlerRole` property of `BucketDeployment` to manually
85
+ When this happens, users can use the public `handlerRole` property of `BucketDeployment` to manually
87
86
  add the KMS permissions:
88
87
 
89
88
  ```ts
@@ -325,6 +324,24 @@ new s3deploy.BucketDeployment(this, 'DeployWithInvalidation', {
325
324
  });
326
325
  ```
327
326
 
327
+ By default, the deployment will wait for invalidation to succeed to complete. This will poll Cloudfront for a maximum of 13 minutes to check for a successful invalidation. The drawback to this is that the deployment will fail if invalidation fails or if it takes longer than 13 minutes. As a workaround, there is the option `waitForDistributionInvalidation`, which can be set to false to skip waiting for the invalidation, but this can be risky as invalidation errors will not be reported.
328
+
329
+ ```ts
330
+ import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
331
+
332
+ declare const bucket: s3.IBucket;
333
+ declare const distribution: cloudfront.IDistribution;
334
+
335
+ new s3deploy.BucketDeployment(this, 'DeployWithInvalidation', {
336
+ sources: [s3deploy.Source.asset('./website-dist')],
337
+ destinationBucket: bucket,
338
+ distribution,
339
+ distributionPaths: ['/images/*.png'],
340
+ // Invalidate cache but don't wait or verify that invalidation has completed successfully.
341
+ waitForDistributionInvalidation: false
342
+ });
343
+ ```
344
+
328
345
  ## Signed Content Payloads
329
346
 
330
347
  By default, deployment uses streaming uploads which set the `x-amz-content-sha256`
@@ -357,6 +374,7 @@ resource handler.
357
374
  > of memory and storage size.
358
375
 
359
376
  ## JSON-Aware Source Processing
377
+
360
378
  When using `Source.jsonData` with CDK Tokens (references to construct properties), you may need to enable the escaping option. This is particularly important when the referenced properties might contain special characters that require proper JSON escaping (like double quotes, line breaks, etc.).
361
379
 
362
380
  ```ts
@@ -444,7 +462,7 @@ to make from placeholders in a local file which will be resolved during deployme
444
462
  is especially useful in situations like creating an API from a spec file, where users might
445
463
  want to reference other CDK resources they have created.
446
464
 
447
- The syntax for template variables is `{{ variableName }}` in your local file. Then, you would
465
+ The syntax for template variables is `{{ variableName }}` in your local file. Then, you would
448
466
  specify the substitutions in CDK like this:
449
467
 
450
468
  ```ts
@@ -468,7 +486,7 @@ new s3deploy.DeployTimeSubstitutedFile(this, 'MyFile', {
468
486
  ```
469
487
 
470
488
  Nested variables, like `{{ {{ foo }} }}` or `{{ foo {{ bar }} }}`, are not supported by this
471
- construct. In the first case of a single variable being is double nested `{{ {{ foo }} }}`, only
489
+ construct. In the first case of a single variable being is double nested `{{ {{ foo }} }}`, only
472
490
  the `{{ foo }}` would be replaced by the substitution, and the extra brackets would remain in the file.
473
491
  In the second case of two nexted variables `{{ foo {{ bar }} }}`, only the `{{ bar }}` would be replaced
474
492
  in the file.
@@ -515,6 +533,67 @@ new cdk.CfnOutput(this, 'ObjectKey', {
515
533
  });
516
534
  ```
517
535
 
536
+ ## Specifying a Custom VPC, Subnets, and Security Groups in BucketDeployment
537
+
538
+ By default, the AWS CDK BucketDeployment construct runs in a publicly accessible environment. However, for enhanced security and compliance, you may need to deploy your assets from within a VPC while restricting network access through custom subnets and security groups.
539
+
540
+ ### Using a Custom VPC
541
+
542
+ To deploy assets within a private network, specify the vpc property in BucketDeploymentProps. This ensures that the deployment Lambda function executes within your specified VPC.
543
+
544
+ ```ts
545
+ const vpc = ec2.Vpc.fromLookup(this, 'ExistingVPC', { vpcId: 'vpc-12345678' });
546
+ const bucket = new s3.Bucket(this, 'MyBucket');
547
+
548
+ new s3deploy.BucketDeployment(this, 'DeployToS3', {
549
+ destinationBucket: bucket,
550
+ vpc: vpc,
551
+ sources: [s3deploy.Source.asset('./website')],
552
+ });
553
+ ```
554
+
555
+ ### Specifying Subnets for Deployment
556
+
557
+ By default, when you specify a VPC, the BucketDeployment function is deployed in the private subnets of that VPC.
558
+ However, you can customize the subnet selection using the vpcSubnets property.
559
+
560
+ ```ts
561
+ const vpc = ec2.Vpc.fromLookup(this, 'ExistingVPC', { vpcId: 'vpc-12345678' });
562
+ const bucket = new s3.Bucket(this, 'MyBucket');
563
+
564
+ new s3deploy.BucketDeployment(this, 'DeployToS3', {
565
+ destinationBucket: bucket,
566
+ vpc: vpc,
567
+ vpcSubnets: { subnetType: ec2.SubnetType.PUBLIC },
568
+ sources: [s3deploy.Source.asset('./website')],
569
+ });
570
+ ```
571
+
572
+ ### Defining Custom Security Groups
573
+
574
+ For enhanced network security, you can now specify custom security groups in BucketDeploymentProps.
575
+ This allows fine-grained control over ingress and egress rules for the deployment Lambda function.
576
+
577
+ ```ts
578
+ const vpc = ec2.Vpc.fromLookup(this, 'ExistingVPC', { vpcId: 'vpc-12345678' });
579
+ const bucket = new s3.Bucket(this, 'MyBucket');
580
+
581
+ const securityGroup = new ec2.SecurityGroup(this, 'CustomSG', {
582
+ vpc: vpc,
583
+ description: 'Allow HTTPS outbound access',
584
+ allowAllOutbound: false,
585
+ });
586
+
587
+ securityGroup.addEgressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(443), 'Allow HTTPS traffic');
588
+
589
+ new s3deploy.BucketDeployment(this, 'DeployWithSecurityGroup', {
590
+ destinationBucket: bucket,
591
+ vpc: vpc,
592
+ securityGroups: [securityGroup],
593
+ sources: [s3deploy.Source.asset('./website')],
594
+ });
595
+ ```
596
+
518
597
  ## Notes
519
598
 
520
599
  - This library uses an AWS CloudFormation custom resource which is about 10MiB in
@@ -11,6 +11,12 @@ import { ExpectedResult } from '@aws-cdk/integ-tests-alpha';
11
11
 
12
12
  const numFiles = 50;
13
13
 
14
+ /**
15
+ * Integration test for bucket deployment with many sources (big response):
16
+ * - Tests deployment with 50 source files to validate response size handling
17
+ * - Uses increased memory limit (2048MB) for large deployments
18
+ * - Validates that objectKeys output is disabled when outputObjectKeys is false
19
+ */
14
20
  class TestBucketDeployment extends cdk.Stack {
15
21
  public readonly destinationBucket: s3.IBucket;
16
22
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
@@ -21,9 +27,14 @@ class TestBucketDeployment extends cdk.Stack {
21
27
  autoDeleteObjects: true, // needed for integration test cleanup
22
28
  });
23
29
 
30
+ // Create multiple source files to test big response handling
24
31
  const sources = [];
25
32
  for (let i = 0; i < numFiles; i++) {
26
33
  const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'tmpcdk'));
34
+ process.on('exit', () => {
35
+ fs.rmSync(tempDir, { force: true, recursive: true });
36
+ });
37
+
27
38
  fs.mkdirSync(tempDir, { recursive: true });
28
39
  const fileName = `${i+1}.txt`;
29
40
  const filePath = path.join(tempDir, fileName);
@@ -31,17 +42,17 @@ class TestBucketDeployment extends cdk.Stack {
31
42
  sources.push(s3deploy.Source.asset(tempDir));
32
43
  }
33
44
 
34
- const deploymentBucket = new s3deploy.BucketDeployment(this, 'DeployMe', {
45
+ const deployment = new s3deploy.BucketDeployment(this, 'DeployWithManySources', {
35
46
  sources: sources,
36
47
  destinationBucket: this.destinationBucket,
37
48
  memoryLimit: 2048,
38
- retainOnDelete: false, // default is true, which will block the integration test cleanup
49
+ retainOnDelete: false,
39
50
  outputObjectKeys: false,
40
51
  });
41
52
 
42
53
  new CfnOutput(this, 'customResourceData', {
43
54
  value: Fn.sub('Object Keys are${keys}', {
44
- keys: Fn.join(',', deploymentBucket.objectKeys),
55
+ keys: Fn.join(',', deployment.objectKeys),
45
56
  }),
46
57
  });
47
58
  }
@@ -54,12 +65,12 @@ const app = new cdk.App({
54
65
  });
55
66
  const testCase = new TestBucketDeployment(app, 'test-bucket-deployments-too-many-sources');
56
67
 
57
- const integTest = new integ.IntegTest(app, 'integ-test-bucket-deployments', {
68
+ const integTest = new integ.IntegTest(app, 'integ-test-bucket-deployment-big-response', {
58
69
  testCases: [testCase],
59
70
  diffAssets: true,
60
71
  });
61
72
 
62
- // Assert that DeployMeWithoutExtractingFilesOnDestination deploys a zip file to bucket4
73
+ // Assert that all files were successfully deployed
63
74
  for (let i = 0; i < numFiles; i++) {
64
75
  const apiCall = integTest.assertions.awsApiCall('S3', 'getObject', {
65
76
  Bucket: testCase.destinationBucket.bucketName,
@@ -73,7 +84,7 @@ for (let i = 0; i < numFiles; i++) {
73
84
  apiCall.assertAtPath('Body', ExpectedResult.stringLikeRegexp(`This is file number ${i + 1}`));
74
85
  }
75
86
 
76
- // Assert that there is no object keys returned from the custom resource
87
+ // Assert that objectKeys output is empty when outputObjectKeys is false
77
88
  const describe = integTest.assertions.awsApiCall('CloudFormation', 'describeStacks', {
78
89
  StackName: 'test-bucket-deployments-too-many-sources',
79
90
  });
@@ -1,27 +1,29 @@
1
1
  import * as path from 'path';
2
2
  import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
3
+ import * as origins from 'aws-cdk-lib/aws-cloudfront-origins';
3
4
  import * as s3 from 'aws-cdk-lib/aws-s3';
4
5
  import * as cdk from 'aws-cdk-lib';
5
6
  import * as s3deploy from 'aws-cdk-lib/aws-s3-deployment';
6
- import { IntegTest } from '@aws-cdk/integ-tests-alpha';
7
+ import * as integ from '@aws-cdk/integ-tests-alpha';
8
+ import { Construct } from 'constructs';
7
9
 
8
- class TestBucketDeployment extends cdk.Stack {
9
- constructor(scope: cdk.App, id: string) {
10
- super(scope, id);
10
+ /**
11
+ * Integration test for bucket deployment with CloudFront distribution invalidation:
12
+ * - Deploys files to S3 bucket behind CloudFront distribution
13
+ * - Tests that CloudFront cache invalidation works with bucket deployments
14
+ */
15
+ class TestBucketDeploymentCloudFront extends cdk.Stack {
16
+ constructor(scope: Construct, id: string, props?: cdk.StackProps) {
17
+ super(scope, id, props);
11
18
 
12
- const bucket = new s3.Bucket(this, 'Destination3', {
19
+ const bucket = new s3.Bucket(this, 'Destination', {
13
20
  removalPolicy: cdk.RemovalPolicy.DESTROY,
14
21
  autoDeleteObjects: true, // needed for integration test cleanup
15
22
  });
16
- const distribution = new cloudfront.CloudFrontWebDistribution(this, 'Distribution', {
17
- originConfigs: [
18
- {
19
- s3OriginSource: {
20
- s3BucketSource: bucket,
21
- },
22
- behaviors: [{ isDefaultBehavior: true }],
23
- },
24
- ],
23
+ const distribution = new cloudfront.Distribution(this, 'Distribution', {
24
+ defaultBehavior: {
25
+ origin: origins.S3BucketOrigin.withOriginAccessControl(bucket),
26
+ },
25
27
  });
26
28
 
27
29
  new s3deploy.BucketDeployment(this, 'DeployWithInvalidation', {
@@ -29,7 +31,7 @@ class TestBucketDeployment extends cdk.Stack {
29
31
  destinationBucket: bucket,
30
32
  distribution,
31
33
  distributionPaths: ['/images/*.png'],
32
- retainOnDelete: false, // default is true, which will block the integration test cleanup
34
+ retainOnDelete: false,
33
35
  });
34
36
  }
35
37
  }
@@ -41,10 +43,10 @@ const app = new cdk.App({
41
43
  },
42
44
  });
43
45
 
44
- const stack = new TestBucketDeployment(app, 'test-bucket-deployments-1');
46
+ const testCase = new TestBucketDeploymentCloudFront(app, 'test-bucket-deployment-cloudfront');
45
47
 
46
- new IntegTest(app, 'TestBucketDeploymentInteg', {
47
- testCases: [stack],
48
+ new integ.IntegTest(app, 'integ-test-bucket-deployment-cloudfront', {
49
+ testCases: [testCase],
48
50
  diffAssets: true,
49
51
  });
50
52
 
@@ -0,0 +1,64 @@
1
+ import { App, Stack, NestedStack, StackProps, NestedStackProps } from 'aws-cdk-lib';
2
+ import { UserPool, IUserPool } from 'aws-cdk-lib/aws-cognito';
3
+ import { BucketDeployment, Source } from 'aws-cdk-lib/aws-s3-deployment';
4
+ import { Bucket } from 'aws-cdk-lib/aws-s3';
5
+ import * as integ from '@aws-cdk/integ-tests-alpha';
6
+ import { ExpectedResult } from '@aws-cdk/integ-tests-alpha';
7
+ import { Construct } from 'constructs';
8
+
9
+ /**
10
+ * Integration test for bucket deployment with cross-nested-stack references:
11
+ * - Tests that Source.jsonData() can use values from resources in nested stacks
12
+ * - Validates that cross-nested-stack token resolution works correctly
13
+ * - Tests token substitution across nested stack boundaries
14
+ */
15
+ class ResourceNestedStack extends NestedStack {
16
+ userPool: UserPool;
17
+ constructor (scope: Construct, id: string, props: NestedStackProps = {}) {
18
+ super(scope, id, props);
19
+ this.userPool = new UserPool(this, 'UserPool');
20
+ }
21
+ }
22
+
23
+ interface DeploymentNestedStackProps extends NestedStackProps {
24
+ userPool: IUserPool;
25
+ }
26
+
27
+ class DeploymentNestedStack extends NestedStack {
28
+ bucket: Bucket;
29
+ constructor (scope: Construct, id: string, props: DeploymentNestedStackProps) {
30
+ super(scope, id, props);
31
+ this.bucket = new Bucket(this, 'Bucket');
32
+ new BucketDeployment(this, 'DeployWithCrossNestedStackSource', {
33
+ destinationBucket: this.bucket,
34
+ sources: [
35
+ Source.jsonData('appconfig.json', { userPoolId: props.userPool.userPoolId }),
36
+ ],
37
+ });
38
+ }
39
+ }
40
+
41
+ class MainStack extends Stack {
42
+ resourceNestedStack: ResourceNestedStack;
43
+ deploymentNestedStack: DeploymentNestedStack;
44
+
45
+ constructor (scope: Construct, id: string, props: StackProps = {}) {
46
+ super(scope, id, props);
47
+ this.resourceNestedStack = new ResourceNestedStack(this, 'ResourceNestedStack');
48
+ this.deploymentNestedStack = new DeploymentNestedStack(this, 'DeploymentNestedStack', { userPool: this.resourceNestedStack.userPool });
49
+ }
50
+ }
51
+
52
+ const app = new App();
53
+ const stack = new MainStack(app, 'MainStack');
54
+
55
+ const integTest = new integ.IntegTest(app, 'integ-cross-nested-stack-source', {
56
+ testCases: [stack],
57
+ });
58
+
59
+ integTest.assertions.awsApiCall('S3', 'getObject', {
60
+ Bucket: stack.deploymentNestedStack.bucket.bucketName,
61
+ Key: 'appconfig.json',
62
+ }).expect(ExpectedResult.objectLike({
63
+ Body: JSON.stringify({ userPoolId: stack.resourceNestedStack.userPool.userPoolId }),
64
+ }));
@@ -0,0 +1,53 @@
1
+ import { App, Stack, StackProps } from 'aws-cdk-lib';
2
+ import { UserPool } from 'aws-cdk-lib/aws-cognito';
3
+ import * as integ from '@aws-cdk/integ-tests-alpha';
4
+ import { ExpectedResult } from '@aws-cdk/integ-tests-alpha';
5
+ import { Construct } from 'constructs';
6
+ import { BucketDeployment, Source } from 'aws-cdk-lib/aws-s3-deployment';
7
+ import { Bucket } from 'aws-cdk-lib/aws-s3';
8
+
9
+ /**
10
+ * Integration test for bucket deployment with cross-stack references:
11
+ * - Tests that Source.data() can use values from resources in other stacks
12
+ * - Validates that cross-stack token resolution works correctly
13
+ */
14
+ class Stack2 extends Stack {
15
+ userPool: UserPool;
16
+
17
+ constructor (scope: Construct, id: string, props: StackProps = {}) {
18
+ super(scope, id, props);
19
+ this.userPool = new UserPool(this, 'userpool');
20
+ }
21
+ }
22
+
23
+ class Stack1 extends Stack {
24
+ bucket: Bucket;
25
+
26
+ constructor (scope: Construct, id: string, props: { userPool: UserPool }) {
27
+ super(scope, id);
28
+ this.bucket = new Bucket(this, 'bucket');
29
+ new BucketDeployment(this, 'DeployWithCrossStackSource', {
30
+ destinationBucket: this.bucket,
31
+ sources: [
32
+ Source.data('test.txt', props.userPool.userPoolId),
33
+ ],
34
+ });
35
+ }
36
+ }
37
+
38
+ const app = new App();
39
+ const stack2 = new Stack2(app, 'stack2');
40
+ const stack1 = new Stack1(app, 'stack1', { userPool: stack2.userPool });
41
+
42
+ const integTest = new integ.IntegTest(app, 'integ-cross-stack-source', {
43
+ testCases: [
44
+ stack1,
45
+ ],
46
+ });
47
+
48
+ integTest.assertions.awsApiCall('S3', 'getObject', {
49
+ Bucket: stack1.bucket.bucketName,
50
+ Key: 'test.txt',
51
+ }).expect(ExpectedResult.objectLike({
52
+ Body: stack2.userPool.userPoolId,
53
+ }));