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
@@ -0,0 +1,72 @@
1
+ import * as path from 'path';
2
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
3
+ import * as s3 from 'aws-cdk-lib/aws-s3';
4
+ import * as cdk from 'aws-cdk-lib';
5
+ import * as integ from '@aws-cdk/integ-tests-alpha';
6
+ import { Construct } from 'constructs';
7
+ import * as s3deploy from 'aws-cdk-lib/aws-s3-deployment';
8
+
9
+ /**
10
+ * Integration test for bucket deployment with VPC and custom security groups:
11
+ * - Lambda function runs in VPC with custom security group
12
+ * - Security group allows all outbound traffic for S3 access
13
+ */
14
+ class TestBucketDeploymentVpcSecurityGroups extends cdk.Stack {
15
+ constructor(scope: Construct, id: string, props?: cdk.StackProps) {
16
+ super(scope, id, props);
17
+
18
+ // VPC with specific security groups
19
+ // Use isolated subnets with S3 VPC endpoint - no NAT Gateway or Elastic IP needed
20
+ const vpc = new ec2.Vpc(this, 'SgVpc', {
21
+ restrictDefaultSecurityGroup: false,
22
+ natGateways: 0,
23
+ subnetConfiguration: [
24
+ {
25
+ cidrMask: 24,
26
+ name: 'Isolated',
27
+ subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
28
+ },
29
+ ],
30
+ });
31
+
32
+ // Add S3 Gateway endpoint so Lambda can access S3 without NAT Gateway
33
+ vpc.addGatewayEndpoint('S3Endpoint', {
34
+ service: ec2.GatewayVpcEndpointAwsService.S3,
35
+ });
36
+
37
+ const securityGroup = new ec2.SecurityGroup(this, 'CustomSecurityGroup', {
38
+ vpc: vpc,
39
+ description: 'Custom security group for bucket deployment',
40
+ allowAllOutbound: true,
41
+ });
42
+
43
+ const bucket = new s3.Bucket(this, 'Destination', {
44
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
45
+ autoDeleteObjects: true,
46
+ });
47
+
48
+ new s3deploy.BucketDeployment(this, 'DeployWithVpcAndSecurityGroup', {
49
+ sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
50
+ destinationBucket: bucket,
51
+ destinationKeyPrefix: 'sg-vpc/',
52
+ vpc: vpc,
53
+ securityGroups: [securityGroup],
54
+ retainOnDelete: false,
55
+ });
56
+ }
57
+ }
58
+
59
+ const app = new cdk.App({
60
+ postCliContext: {
61
+ '@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
62
+ },
63
+ });
64
+
65
+ const testCase = new TestBucketDeploymentVpcSecurityGroups(app, 'test-bucket-deployment-vpc-security-groups');
66
+
67
+ new integ.IntegTest(app, 'integ-test-bucket-deployment-vpc-security-groups', {
68
+ testCases: [testCase],
69
+ diffAssets: false,
70
+ });
71
+
72
+ app.synth();
@@ -0,0 +1,70 @@
1
+ import * as path from 'path';
2
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
3
+ import * as s3 from 'aws-cdk-lib/aws-s3';
4
+ import * as cdk from 'aws-cdk-lib';
5
+ import * as integ from '@aws-cdk/integ-tests-alpha';
6
+ import { Construct } from 'constructs';
7
+ import * as s3deploy from 'aws-cdk-lib/aws-s3-deployment';
8
+
9
+ /**
10
+ * Integration test for bucket deployment with VPC and explicit subnet selection:
11
+ * - Lambda function runs in VPC with explicit subnet type selection
12
+ * - Tests vpcSubnets property for controlling which subnets Lambda uses
13
+ */
14
+ class TestBucketDeploymentVpcSubnetSelection extends cdk.Stack {
15
+ constructor(scope: Construct, id: string, props?: cdk.StackProps) {
16
+ super(scope, id, props);
17
+
18
+ // VPC with specific subnets
19
+ // Use isolated subnets with S3 VPC endpoint - no NAT Gateway or Elastic IP needed
20
+ // Use a different CIDR to avoid conflicts with existing stacks
21
+ const vpc = new ec2.Vpc(this, 'SubnetVpc', {
22
+ restrictDefaultSecurityGroup: false,
23
+ natGateways: 0,
24
+ ipAddresses: ec2.IpAddresses.cidr('10.1.0.0/16'),
25
+ subnetConfiguration: [
26
+ {
27
+ cidrMask: 24,
28
+ name: 'Isolated',
29
+ subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
30
+ },
31
+ ],
32
+ });
33
+
34
+ // Add S3 Gateway endpoint so Lambda can access S3 without NAT Gateway
35
+ vpc.addGatewayEndpoint('S3Endpoint', {
36
+ service: ec2.GatewayVpcEndpointAwsService.S3,
37
+ });
38
+
39
+ const bucket = new s3.Bucket(this, 'Destination', {
40
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
41
+ autoDeleteObjects: true,
42
+ });
43
+
44
+ new s3deploy.BucketDeployment(this, 'DeployWithVpcAndSubnets', {
45
+ sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
46
+ destinationBucket: bucket,
47
+ destinationKeyPrefix: 'subnet-vpc/',
48
+ vpc: vpc,
49
+ vpcSubnets: {
50
+ subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
51
+ },
52
+ retainOnDelete: false,
53
+ });
54
+ }
55
+ }
56
+
57
+ const app = new cdk.App({
58
+ postCliContext: {
59
+ '@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
60
+ },
61
+ });
62
+
63
+ const testCase = new TestBucketDeploymentVpcSubnetSelection(app, 'test-bucket-deployment-vpc-subnet-selection');
64
+
65
+ new integ.IntegTest(app, 'integ-test-bucket-deployment-vpc-subnet-selection', {
66
+ testCases: [testCase],
67
+ diffAssets: false,
68
+ });
69
+
70
+ app.synth();
@@ -1,5 +1,4 @@
1
1
  import * as path from 'path';
2
- import * as ec2 from 'aws-cdk-lib/aws-ec2';
3
2
  import * as s3 from 'aws-cdk-lib/aws-s3';
4
3
  import * as cdk from 'aws-cdk-lib';
5
4
  import * as integ from '@aws-cdk/integ-tests-alpha';
@@ -7,115 +6,93 @@ import { Match } from '@aws-cdk/integ-tests-alpha';
7
6
  import { Construct } from 'constructs';
8
7
  import * as s3deploy from 'aws-cdk-lib/aws-s3-deployment';
9
8
 
9
+ /**
10
+ * Integration test for core bucket deployment features:
11
+ * - Basic deployment functionality
12
+ * - Prune behavior (deleting files not in source)
13
+ * - Exclude filters
14
+ * - Extract behavior (extracting vs keeping zip files)
15
+ * - addSource() method for dynamically adding sources
16
+ * - objectKeys output property and outputObjectKeys flag
17
+ */
10
18
  class TestBucketDeployment extends cdk.Stack {
11
- public readonly bucket5: s3.IBucket;
19
+ public readonly bucketWithAddSource: s3.IBucket;
12
20
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
13
21
  super(scope, id, props);
14
22
 
15
- const destinationBucket = new s3.Bucket(this, 'Destination', {
16
- websiteIndexDocument: 'index.html',
17
- publicReadAccess: false,
23
+ const commonBucketProps = {
18
24
  removalPolicy: cdk.RemovalPolicy.DESTROY,
19
25
  autoDeleteObjects: true, // needed for integration test cleanup
20
- });
26
+ };
21
27
 
22
- new s3deploy.BucketDeployment(this, 'DeployMe', {
23
- sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
24
- destinationBucket,
25
- retainOnDelete: false, // default is true, which will block the integration test cleanup
28
+ const destinationBucket = new s3.Bucket(this, 'Destination', {
29
+ ...commonBucketProps,
26
30
  });
27
31
 
28
- new s3deploy.BucketDeployment(this, 'DeployMeWithEfsStorage', {
32
+ // Test basic deployment functionality
33
+ new s3deploy.BucketDeployment(this, 'DeployWithBasic', {
29
34
  sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
30
35
  destinationBucket,
31
- destinationKeyPrefix: 'efs/',
32
- useEfs: true,
33
- vpc: new ec2.Vpc(this, 'InlineVpc', { restrictDefaultSecurityGroup: false }),
34
- retainOnDelete: false, // default is true, which will block the integration test cleanup
35
- });
36
-
37
- const bucket2 = new s3.Bucket(this, 'Destination2', {
38
- removalPolicy: cdk.RemovalPolicy.DESTROY,
39
- autoDeleteObjects: true, // needed for integration test cleanup
40
- });
41
-
42
- new s3deploy.BucketDeployment(this, 'DeployWithPrefix', {
43
- sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
44
- destinationBucket: bucket2,
45
- destinationKeyPrefix: 'deploy/here/',
46
- retainOnDelete: false, // default is true, which will block the integration test cleanup
47
- });
48
-
49
- const bucket3 = new s3.Bucket(this, 'Destination3', {
50
- removalPolicy: cdk.RemovalPolicy.DESTROY,
51
- autoDeleteObjects: true, // needed for integration test cleanup
52
- });
53
-
54
- new s3deploy.BucketDeployment(this, 'DeployWithMetadata', {
55
- sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
56
- destinationBucket: bucket3,
57
- retainOnDelete: false, // default is true, which will block the integration test cleanup
58
- cacheControl: [s3deploy.CacheControl.setPublic(), s3deploy.CacheControl.maxAge(cdk.Duration.minutes(1))],
59
- contentType: 'text/html',
60
- metadata: { A: 'aaa', B: 'bbb', C: 'ccc' },
36
+ retainOnDelete: false,
61
37
  });
62
38
 
63
- new s3deploy.BucketDeployment(this, 'DeployMeWithoutDeletingFilesOnDestination', {
39
+ // Test that files not in source are preserved when prune is disabled
40
+ new s3deploy.BucketDeployment(this, 'DeployWithPruneDisabled', {
64
41
  sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
65
42
  destinationBucket,
66
43
  prune: false,
67
44
  retainOnDelete: false,
68
45
  });
69
46
 
70
- new s3deploy.BucketDeployment(this, 'DeployMeWithExcludedFilesOnDestination', {
47
+ // Test exclude filters to skip certain files from deployment
48
+ new s3deploy.BucketDeployment(this, 'DeployWithExclude', {
71
49
  sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
72
50
  destinationBucket,
73
51
  exclude: ['*.gif'],
74
52
  retainOnDelete: false,
75
53
  });
76
54
 
77
- const bucket4 = new s3.Bucket(this, 'Destination4', {
78
- publicReadAccess: false,
79
- removalPolicy: cdk.RemovalPolicy.DESTROY,
80
- autoDeleteObjects: true, // needed for integration test cleanup
55
+ const bucketWithoutExtract = new s3.Bucket(this, 'BucketWithoutExtract', {
56
+ ...commonBucketProps,
81
57
  });
82
58
 
83
- new s3deploy.BucketDeployment(this, 'DeployMeWithoutExtractingFilesOnDestination', {
59
+ // Test that zip files are uploaded as-is when extract is disabled
60
+ new s3deploy.BucketDeployment(this, 'DeployWithoutExtract', {
84
61
  sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website'))],
85
- destinationBucket: bucket4,
62
+ destinationBucket: bucketWithoutExtract,
86
63
  extract: false,
87
64
  retainOnDelete: false,
88
65
  });
89
66
 
90
- this.bucket5 = new s3.Bucket(this, 'Destination5', {
91
- publicReadAccess: false,
92
- removalPolicy: cdk.RemovalPolicy.DESTROY,
93
- autoDeleteObjects: true, // needed for integration test cleanup
67
+ this.bucketWithAddSource = new s3.Bucket(this, 'BucketWithAddSource', {
68
+ ...commonBucketProps,
94
69
  });
95
70
 
96
- const deploy5 = new s3deploy.BucketDeployment(this, 'DeployMe5', {
71
+ // Test addSource() method for dynamically adding sources after construction
72
+ // and validate objectKeys output property returns both asset files and added sources
73
+ const deployWithAddSource = new s3deploy.BucketDeployment(this, 'DeployWithAddSource', {
97
74
  sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website-second'))],
98
- destinationBucket: this.bucket5,
99
- retainOnDelete: false, // default is true, which will block the integration test cleanup
75
+ destinationBucket: this.bucketWithAddSource,
76
+ retainOnDelete: false,
100
77
  });
101
- deploy5.addSource(s3deploy.Source.data('some-key', 'helloworld'));
78
+ deployWithAddSource.addSource(s3deploy.Source.data('some-key', 'helloworld'));
102
79
 
80
+ // Output objectKeys to validate they are returned in CloudFormation outputs
103
81
  new cdk.CfnOutput(this, 'customResourceData', {
104
82
  value: cdk.Fn.sub('Object Keys are ${keys}', {
105
- keys: cdk.Fn.join(',', deploy5.objectKeys),
83
+ keys: cdk.Fn.join(',', deployWithAddSource.objectKeys),
106
84
  }),
107
85
  });
108
86
 
109
- const bucket6 = new s3.Bucket(this, 'Destination6', {
110
- publicReadAccess: false,
111
- removalPolicy: cdk.RemovalPolicy.DESTROY,
112
- autoDeleteObjects: true, // needed for integration test cleanup
87
+ const bucketWithoutObjectKeys = new s3.Bucket(this, 'BucketWithoutObjectKeys', {
88
+ ...commonBucketProps,
113
89
  });
114
90
 
115
- new s3deploy.BucketDeployment(this, 'DeployMe6', {
91
+ // Test that objectKeys are not returned when outputObjectKeys is disabled
92
+ new s3deploy.BucketDeployment(this, 'DeployWithoutObjectKeys', {
116
93
  sources: [s3deploy.Source.asset(path.join(__dirname, 'my-website-second'))],
117
- destinationBucket: bucket6,
118
- retainOnDelete: false, // default is true, which will block the integration test cleanup
94
+ destinationBucket: bucketWithoutObjectKeys,
95
+ retainOnDelete: false,
119
96
  outputObjectKeys: false,
120
97
  });
121
98
  }
@@ -128,13 +105,14 @@ const app = new cdk.App({
128
105
  });
129
106
  const testCase = new TestBucketDeployment(app, 'test-bucket-deployments');
130
107
 
131
- // Assert that DeployMeWithoutExtractingFilesOnDestination deploys a zip file to bucket4
132
108
  const integTest = new integ.IntegTest(app, 'integ-test-bucket-deployments', {
133
109
  testCases: [testCase],
134
110
  diffAssets: true,
135
111
  });
112
+
113
+ // Assert that addSource() successfully adds the data source alongside the asset source
136
114
  const listObjectsCall = integTest.assertions.awsApiCall('S3', 'listObjects', {
137
- Bucket: testCase.bucket5.bucketName,
115
+ Bucket: testCase.bucketWithAddSource.bucketName,
138
116
  });
139
117
  listObjectsCall.provider.addToRolePolicy({
140
118
  Effect: 'Allow',
@@ -154,12 +132,12 @@ listObjectsCall.expect(integ.ExpectedResult.objectLike({
154
132
  ),
155
133
  }));
156
134
 
157
- // Assert that there is one object key returned from the custom resource
135
+ // Assert that objectKeys output contains the deployed object keys when outputObjectKeys is enabled (default)
158
136
  const describe = integTest.assertions.awsApiCall('CloudFormation', 'describeStacks', {
159
137
  StackName: 'test-bucket-deployments',
160
138
  });
161
139
 
162
140
  describe.assertAtPath('Stacks.0.Outputs.0.OutputKey', integ.ExpectedResult.stringLikeRegexp('customResourceData'));
163
- describe.assertAtPath('Stacks.0.Outputs.0.OutputValue', integ.ExpectedResult.stringLikeRegexp('Object Keys are ([0-9a-f])+\.zip'));
141
+ describe.assertAtPath('Stacks.0.Outputs.0.OutputValue', integ.ExpectedResult.stringLikeRegexp('Object Keys are ([0-9a-f])+\\.zip(,([0-9a-f])+\\.zip)*'));
164
142
 
165
143
  app.synth();
@@ -1,68 +1,106 @@
1
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
1
2
  import * as s3 from 'aws-cdk-lib/aws-s3';
2
- import * as sqs from 'aws-cdk-lib/aws-sqs';
3
3
  import * as cdk from 'aws-cdk-lib';
4
- import * as integ from '@aws-cdk/integ-tests-alpha';
5
4
  import * as s3n from 'aws-cdk-lib/aws-s3-notifications';
5
+ import { STANDARD_NODEJS_RUNTIME } from '../../../config';
6
+ import * as constructs from 'constructs';
7
+ import * as integ from '@aws-cdk/integ-tests-alpha';
6
8
 
7
9
  const app = new cdk.App({
8
10
  postCliContext: {
11
+ '@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
9
12
  '@aws-cdk/aws-s3:keepNotificationInImportedBucket': false,
10
13
  },
11
14
  });
12
15
 
13
- const stack = new cdk.Stack(app, 'sqs-bucket-notifications');
16
+ const stack = new cdk.Stack(app, 'cdk-integ-lambda-bucket-s3-notifications');
14
17
 
15
- const bucket1 = new s3.Bucket(stack, 'Bucket1', {
18
+ const bucketA = new s3.Bucket(stack, 'MyBucket', {
16
19
  removalPolicy: cdk.RemovalPolicy.DESTROY,
17
20
  });
18
- const queue = new sqs.Queue(stack, 'MyQueue');
19
21
 
20
- bucket1.addObjectCreatedNotification(new s3n.SqsDestination(queue));
22
+ const fn = new lambda.Function(stack, 'MyFunction', {
23
+ runtime: STANDARD_NODEJS_RUNTIME,
24
+ handler: 'index.handler',
25
+ code: lambda.Code.fromInline(`exports.handler = ${handler.toString()}`),
26
+ });
21
27
 
22
- const bucket2 = new s3.Bucket(stack, 'Bucket2', {
28
+ const bucketB = new s3.Bucket(stack, 'YourBucket', {
23
29
  removalPolicy: cdk.RemovalPolicy.DESTROY,
24
- autoDeleteObjects: true,
25
30
  });
26
- bucket2.addObjectCreatedNotification(new s3n.SqsDestination(queue), { suffix: '.png' });
27
31
 
28
- const encryptedQueue = new sqs.Queue(stack, 'EncryptedQueue', { encryption: sqs.QueueEncryption.KMS });
29
- bucket1.addObjectRemovedNotification(new s3n.SqsDestination(encryptedQueue));
32
+ bucketB.addEventNotification(s3.EventType.OBJECT_REMOVED, new s3n.LambdaDestination(fn));
30
33
 
31
- const bucket3 = new s3.Bucket(stack, 'Bucket3WithSkipDestinationValidation', {
32
- notificationsSkipDestinationValidation: true,
33
- removalPolicy: cdk.RemovalPolicy.DESTROY,
34
- });
35
- const queueWithIncorrectS3Permissions = new sqs.Queue(stack, 'MyQueueWithIncorrectS3Permissions');
36
- queueWithIncorrectS3Permissions.addToResourcePolicy(
37
- new cdk.aws_iam.PolicyStatement({
38
- effect: cdk.aws_iam.Effect.DENY,
39
- actions: ['sqs:SendMessage'],
40
- principals: [new cdk.aws_iam.ServicePrincipal('s3.amazonaws.com')],
41
- resources: [queueWithIncorrectS3Permissions.queueArn],
42
- }));
43
- bucket3.addEventNotification(s3.EventType.OBJECT_TAGGING_PUT, new s3n.SqsDestination(queueWithIncorrectS3Permissions));
34
+ const c1 = new constructs.Construct(stack, 'Construct1');
35
+ const unmanagedBucket = s3.Bucket.fromBucketName(c1, 'IntegUnmanagedBucket1', bucketA.bucketName);
44
36
 
45
- const integTest = new integ.IntegTest(app, 'SQSBucketNotificationsTest', {
37
+ unmanagedBucket.addObjectCreatedNotification(new s3n.LambdaDestination(fn), { prefix: 'TEST1/', suffix: '.png' });
38
+ unmanagedBucket.addEventNotification(s3.EventType.OBJECT_CREATED, new s3n.LambdaDestination(fn), { prefix: 'TEST2/' });
39
+
40
+ /* eslint-disable no-console */
41
+ function handler(event: any, _context: any, callback: any) {
42
+ console.log(JSON.stringify(event, undefined, 2));
43
+ return callback(null, event);
44
+ }
45
+
46
+ const integTest = new integ.IntegTest(app, 'LambdaBucketNotificationsTest', {
47
+ cdkCommandOptions: {
48
+ deploy: {
49
+ args: {
50
+ rollback: false,
51
+ },
52
+ },
53
+ },
46
54
  testCases: [stack],
47
55
  diffAssets: true,
48
56
  });
49
57
 
50
- integTest.assertions
51
- // First remove the test notifications
52
- .awsApiCall('SQS', 'purgeQueue', {
53
- QueueUrl: queue.queueUrl,
54
- })
55
- .next(integTest.assertions
56
- .awsApiCall('S3', 'putObject', {
57
- Bucket: bucket2.bucketName,
58
- Key: 'image.png',
59
- Body: 'Some content',
60
- }))
61
- .next(integTest.assertions
62
- .awsApiCall('SQS', 'receiveMessage', {
63
- QueueUrl: queue.queueUrl,
64
- WaitTimeSeconds: 20,
65
- })
66
- .assertAtPath('Messages.0.Body.Records.0.s3.object.key', integ.ExpectedResult.stringLikeRegexp('image\\.png')));
58
+ const getNotifications = integTest.assertions
59
+ .awsApiCall('S3', 'getBucketNotificationConfiguration', {
60
+ Bucket: unmanagedBucket.bucketName,
61
+ });
62
+ getNotifications.provider.addToRolePolicy({
63
+ Effect: 'Allow',
64
+ Action: ['s3:GetBucketNotification'],
65
+ Resource: ['*'],
66
+ });
67
67
 
68
+ getNotifications.expect(integ.ExpectedResult.objectLike({
69
+ LambdaFunctionConfigurations: [
70
+ {
71
+ Events: [
72
+ 's3:ObjectCreated:*',
73
+ ],
74
+ Filter: {
75
+ Key: {
76
+ FilterRules: [
77
+ {
78
+ Name: 'Prefix',
79
+ Value: 'TEST1/',
80
+ },
81
+ {
82
+ Name: 'Suffix',
83
+ Value: '.png',
84
+ },
85
+ ],
86
+ },
87
+ },
88
+ },
89
+ {
90
+ Events: [
91
+ 's3:ObjectCreated:*',
92
+ ],
93
+ Filter: {
94
+ Key: {
95
+ FilterRules: [
96
+ {
97
+ Name: 'Prefix',
98
+ Value: 'TEST2/',
99
+ },
100
+ ],
101
+ },
102
+ },
103
+ },
104
+ ],
105
+ }));
68
106
  app.synth();
@@ -0,0 +1,38 @@
1
+ import * as cdk from 'aws-cdk-lib';
2
+ import { SecretValue } from 'aws-cdk-lib';
3
+ import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
4
+ import * as integ from '@aws-cdk/integ-tests-alpha';
5
+
6
+ class TestStack extends cdk.Stack {
7
+ constructor(scope: cdk.App, id: string) {
8
+ super(scope, id);
9
+
10
+ // Create a default secret
11
+ const secret = new secretsmanager.Secret(this, 'Secret');
12
+
13
+ // Create a JSON secret containing cfnDynamicReferenceKey values extracted from the default secret
14
+ new secretsmanager.Secret(this, 'JSONSecret', {
15
+ secretObjectValue: {
16
+ cfnDynamicReferenceKeyWithDefaults: SecretValue.unsafePlainText(secret.cfnDynamicReferenceKey()),
17
+ cfnDynamicReferenceKeyWithJsonFieldAndVersionStage: SecretValue.unsafePlainText(secret.cfnDynamicReferenceKey({
18
+ jsonField: 'json-key',
19
+ versionStage: 'version-stage',
20
+ })),
21
+ cfnDynamicReferenceKeyWithJsonFieldAndVersionId: SecretValue.unsafePlainText(secret.cfnDynamicReferenceKey({
22
+ jsonField: 'json-key',
23
+ versionId: 'version-id',
24
+ })),
25
+ },
26
+ });
27
+ }
28
+ }
29
+
30
+ const app = new cdk.App();
31
+
32
+ const stack = new TestStack(app, 'cdk-integ-secrets-dynamic-reference-key');
33
+
34
+ new integ.IntegTest(app, 'cdk-integ-secrets-dynamic-reference-key-test', {
35
+ testCases: [stack],
36
+ });
37
+
38
+ app.synth();
@@ -16,6 +16,11 @@ new signer.SigningProfile(stack, 'SigningProfileOCI', {
16
16
  signatureValidity: cdk.Duration.days(60),
17
17
  });
18
18
 
19
+ new signer.SigningProfile(stack, 'SigningProfileWithName', {
20
+ platform: signer.Platform.AWS_LAMBDA_SHA384_ECDSA,
21
+ signingProfileName: 'test-signing-profile-name',
22
+ });
23
+
19
24
  new IntegTest(app, 'cdk-integ-signer-signing-profile', {
20
25
  testCases: [stack],
21
26
  });
@@ -121,6 +121,7 @@ declare const fn: lambda.Function;
121
121
 
122
122
  // Lambda should receive only message matching the following conditions on message body:
123
123
  // color: 'red' or 'orange'
124
+ // store: property must not be present
124
125
  myTopic.addSubscription(new subscriptions.LambdaSubscription(fn, {
125
126
  filterPolicyWithMessageBody: {
126
127
  background: sns.FilterOrPolicy.policy({
@@ -128,6 +129,7 @@ myTopic.addSubscription(new subscriptions.LambdaSubscription(fn, {
128
129
  allowlist: ['red', 'orange'],
129
130
  })),
130
131
  }),
132
+ store: sns.FilterOrPolicy.filter(sns.SubscriptionFilter.notExistsFilter()),
131
133
  },
132
134
  }));
133
135
  ```
@@ -0,0 +1,75 @@
1
+ import * as sns from 'aws-cdk-lib/aws-sns';
2
+ import * as sqs from 'aws-cdk-lib/aws-sqs';
3
+ import * as cdk from 'aws-cdk-lib';
4
+ import { IntegTest, ExpectedResult } from '@aws-cdk/integ-tests-alpha';
5
+ import * as subs from 'aws-cdk-lib/aws-sns-subscriptions';
6
+
7
+ const app = new cdk.App();
8
+
9
+ const stack = new cdk.Stack(app, 'sns-sqs-subscription-filter');
10
+
11
+ const topic = new sns.Topic(stack, 'MyTopic');
12
+
13
+ const queue1 = new sqs.Queue(stack, 'MyQueue1');
14
+ const queue2 = new sqs.Queue(stack, 'MyQueue2');
15
+
16
+ topic.addSubscription(new subs.SqsSubscription(queue1, {
17
+ filterPolicyWithMessageBody: {
18
+ background: sns.Policy.policy({
19
+ color: sns.Filter.filter(sns.SubscriptionFilter.stringFilter({
20
+ allowlist: ['red', 'green'],
21
+ })),
22
+ }),
23
+ price: sns.Filter.filter(sns.SubscriptionFilter.numericFilter({
24
+ allowlist: [100, 200],
25
+ })),
26
+ store: sns.Filter.filter(sns.SubscriptionFilter.existsFilter()),
27
+ },
28
+ rawMessageDelivery: true,
29
+ }));
30
+
31
+ topic.addSubscription(new subs.SqsSubscription(queue2, {
32
+ filterPolicyWithMessageBody: {
33
+ background: sns.Policy.policy({
34
+ color: sns.Filter.filter(sns.SubscriptionFilter.stringFilter({
35
+ denylist: ['red', 'green'],
36
+ })),
37
+ }),
38
+ price: sns.Filter.filter(sns.SubscriptionFilter.numericFilter({
39
+ betweenStrict: { start: 100, stop: 200 },
40
+ })),
41
+ store: sns.Filter.filter(sns.SubscriptionFilter.notExistsFilter()),
42
+ },
43
+ rawMessageDelivery: true,
44
+ }));
45
+
46
+ const integTest = new IntegTest(app, 'SNS Subscription filters', {
47
+ testCases: [stack],
48
+ });
49
+
50
+ const message1 = JSON.stringify({ background: { color: 'green' }, price: 200, store: 'fans' }); // matches queue1 subscription filter
51
+ const message2 = JSON.stringify({ background: { color: 'blue' }, price: 150 }); // matches queue2 subscription filter
52
+
53
+ // publish messages to SNS topic
54
+ integTest.assertions.awsApiCall('SNS', 'publish', {
55
+ Message: message1,
56
+ TopicArn: topic.topicArn,
57
+ });
58
+ integTest.assertions.awsApiCall('SNS', 'publish', {
59
+ Message: message2,
60
+ TopicArn: topic.topicArn,
61
+ });
62
+
63
+ // check messages arrived at expected destination queue
64
+ integTest.assertions.awsApiCall('SQS', 'receiveMessage', {
65
+ QueueUrl: queue1.queueUrl,
66
+ WaitTimeSeconds: 20,
67
+ }).expect(ExpectedResult.objectLike({
68
+ Messages: [{ Body: message1 }],
69
+ }));
70
+ integTest.assertions.awsApiCall('SQS', 'receiveMessage', {
71
+ QueueUrl: queue2.queueUrl,
72
+ WaitTimeSeconds: 20,
73
+ }).expect(ExpectedResult.objectLike({
74
+ Messages: [{ Body: message2 }],
75
+ }));