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
@@ -67,6 +67,297 @@ new cloudfront.Distribution(this, 'myDist', {
67
67
  defaultBehavior: { origin: new origins.HttpOrigin('www.example.com') },
68
68
  });
69
69
  ```
70
+ ### CloudFront SaaS Manager resources
71
+
72
+ #### Multi-tenant distribution and tenant providing ACM certificates
73
+ You can use Cloudfront to build multi-tenant distributions to house applications.
74
+
75
+ To create a multi-tenant distribution w/parameters, create a Distribution construct, and then update DistributionConfig in the CfnDistribution to use connectionMode: "tenant-only"
76
+
77
+ Then create a tenant
78
+ ```ts
79
+ // Create the simple Origin
80
+ const myBucket = new s3.Bucket(this, 'myBucket');
81
+ const s3Origin = origins.S3BucketOrigin.withOriginAccessControl(myBucket, {
82
+ originAccessLevels: [cloudfront.AccessLevel.READ, cloudfront.AccessLevel.LIST],
83
+ });
84
+
85
+ // Create the Distribution construct
86
+ const myMultiTenantDistribution = new cloudfront.Distribution(this, 'distribution', {
87
+ defaultBehavior: {
88
+ origin: s3Origin,
89
+ },
90
+ defaultRootObject: 'index.html', // recommended to specify
91
+ });
92
+
93
+ // Access the underlying L1 CfnDistribution to configure SaaS Manager properties which are not yet available in the L2 Distribution construct
94
+ const cfnDistribution = myMultiTenantDistribution.node.defaultChild as cloudfront.CfnDistribution;
95
+
96
+ const defaultCacheBehavior: cloudfront.CfnDistribution.DefaultCacheBehaviorProperty = {
97
+ targetOriginId: myBucket.bucketArn,
98
+ viewerProtocolPolicy: 'allow-all',
99
+ compress: false,
100
+ allowedMethods: ['GET', 'HEAD'],
101
+ cachePolicyId: cloudfront.CachePolicy.CACHING_OPTIMIZED.cachePolicyId
102
+ };
103
+ // Create the updated distributionConfig
104
+ const distributionConfig: cloudfront.CfnDistribution.DistributionConfigProperty = {
105
+ defaultCacheBehavior: defaultCacheBehavior,
106
+ enabled: true,
107
+ // the properties below are optional
108
+ connectionMode: 'tenant-only',
109
+ origins: [
110
+ {
111
+ id: myBucket.bucketArn,
112
+ domainName: myBucket.bucketDomainName,
113
+ s3OriginConfig: {},
114
+ originPath: "/{{tenantName}}"
115
+ },
116
+ ],
117
+ tenantConfig: {
118
+ parameterDefinitions: [
119
+ {
120
+ definition: {
121
+ stringSchema: {
122
+ required: false,
123
+ // the properties below are optional
124
+ comment: 'tenantName',
125
+ defaultValue: 'root',
126
+ },
127
+ },
128
+ name: 'tenantName',
129
+ },
130
+ ],
131
+ },
132
+ };
133
+
134
+ // Override the distribution configuration to enable multi-tenancy.
135
+ cfnDistribution.distributionConfig = distributionConfig;
136
+
137
+ // Create a distribution tenant using an existing ACM certificate
138
+ const cfnDistributionTenant = new cloudfront.CfnDistributionTenant(this, 'distribution-tenant', {
139
+ distributionId: myMultiTenantDistribution.distributionId,
140
+ domains: ['my-tenant.my.domain.com'],
141
+ name: 'my-tenant',
142
+ enabled: true,
143
+ parameters: [ // Override the default 'tenantName' parameter (root) defined in the multi-tenant distribution.
144
+ {
145
+ name: 'tenantName',
146
+ value: 'app',
147
+ },
148
+ ],
149
+ customizations: {
150
+ certificate: {
151
+ arn: 'REPLACE_WITH_ARN', // Certificate must be in us-east-1 region and cover 'my-tenant.my.domain.com'
152
+ },
153
+ },
154
+ });
155
+ ```
156
+
157
+ #### Multi-tenant distribution and tenant with CloudFront-hosted certificate
158
+ A distribution tenant with CloudFront-hosted domain validation is useful if you don't currently have traffic to the domain.
159
+
160
+ Start by creating a parent multi-tenant distribution, then create the distribution tenant.
161
+ ```ts
162
+ import * as route53 from 'aws-cdk-lib/aws-route53';
163
+
164
+ // Create the simple Origin
165
+ const myBucket = new s3.Bucket(this, 'myBucket');
166
+ const s3Origin = origins.S3BucketOrigin.withOriginAccessControl(myBucket, {
167
+ originAccessLevels: [cloudfront.AccessLevel.READ, cloudfront.AccessLevel.LIST],
168
+ });
169
+
170
+ // Create the Distribution construct
171
+ const myMultiTenantDistribution = new cloudfront.Distribution(this, 'cf-hosted-distribution', {
172
+ defaultBehavior: {
173
+ origin: s3Origin,
174
+ },
175
+ defaultRootObject: 'index.html', // recommended to specify
176
+ });
177
+
178
+ // Access the underlying L1 CfnDistribution to configure SaaS Manager properties which are not yet available in the L2 Distribution construct
179
+ const cfnDistribution = myMultiTenantDistribution.node.defaultChild as cloudfront.CfnDistribution;
180
+
181
+ const defaultCacheBehavior: cloudfront.CfnDistribution.DefaultCacheBehaviorProperty = {
182
+ targetOriginId: myBucket.bucketArn,
183
+ viewerProtocolPolicy: 'allow-all',
184
+ compress: false,
185
+ allowedMethods: ['GET', 'HEAD'],
186
+ cachePolicyId: cloudfront.CachePolicy.CACHING_OPTIMIZED.cachePolicyId
187
+ };
188
+ // Create the updated distributionConfig
189
+ const distributionConfig: cloudfront.CfnDistribution.DistributionConfigProperty = {
190
+ defaultCacheBehavior: defaultCacheBehavior,
191
+ enabled: true,
192
+ // the properties below are optional
193
+ connectionMode: 'tenant-only',
194
+ origins: [
195
+ {
196
+ id: myBucket.bucketArn,
197
+ domainName: myBucket.bucketDomainName,
198
+ s3OriginConfig: {},
199
+ originPath: "/{{tenantName}}"
200
+ },
201
+ ],
202
+ tenantConfig: {
203
+ parameterDefinitions: [
204
+ {
205
+ definition: {
206
+ stringSchema: {
207
+ required: false,
208
+ // the properties below are optional
209
+ comment: 'tenantName',
210
+ defaultValue: 'root',
211
+ },
212
+ },
213
+ name: 'tenantName',
214
+ },
215
+ ],
216
+ },
217
+ };
218
+
219
+ // Override the distribution configuration to enable multi-tenancy.
220
+ cfnDistribution.distributionConfig = distributionConfig;
221
+
222
+ // Create a connection group and a cname record in an existing hosted zone to validate domain ownership
223
+ const connectionGroup = new cloudfront.CfnConnectionGroup(this, 'cf-hosted-connection-group', {
224
+ enabled: true,
225
+ ipv6Enabled: true,
226
+ name: 'my-connection-group',
227
+ });
228
+
229
+ // Import the existing hosted zone info, replacing with your hostedZoneId and zoneName
230
+ const hostedZoneId = 'YOUR_HOSTED_ZONE_ID';
231
+ const zoneName = 'my.domain.com';
232
+ const hostedZone = route53.HostedZone.fromHostedZoneAttributes(this, 'hosted-zone', {
233
+ hostedZoneId,
234
+ zoneName,
235
+ });
236
+
237
+ const record = new route53.CnameRecord(this, 'cname-record', {
238
+ domainName: connectionGroup.attrRoutingEndpoint,
239
+ zone: hostedZone,
240
+ recordName: 'cf-hosted-tenant.my.domain.com',
241
+ });
242
+
243
+ // Create the cloudfront-hosted tenant, passing in the previously created connection group
244
+ const cloudfrontHostedTenant = new cloudfront.CfnDistributionTenant(this, 'cf-hosted-tenant', {
245
+ distributionId: myMultiTenantDistribution.distributionId,
246
+ name: 'cf-hosted-tenant',
247
+ domains: ['cf-hosted-tenant.my.domain.com'],
248
+ connectionGroupId: connectionGroup.attrId,
249
+ enabled: true,
250
+ managedCertificateRequest: {
251
+ validationTokenHost: 'cloudfront'
252
+ },
253
+ });
254
+ ```
255
+
256
+ #### Multi-tenant distribution and tenant with self-hosted certificate
257
+ A tenant with self-hosted domain validation is useful if you already have traffic to the domain and can't tolerate downtime during migration to multi-tenant architecture.
258
+
259
+ The tenant will be created, and the managed certificate will be awaiting validation of domain ownership. You can then validate domain ownership via http redirect or token file upload. [More details here](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managed-cloudfront-certificates.html#complete-domain-ownership)
260
+
261
+ Traffic won't be migrated until you update your hosted zone to point the tenant domain to the CloudFront RoutingEndpoint.
262
+
263
+ Start by creating a parent multi-tenant distribution
264
+ ```ts
265
+ // Create the simple Origin
266
+ const myBucket = new s3.Bucket(this, 'myBucket');
267
+ const s3Origin = origins.S3BucketOrigin.withOriginAccessControl(myBucket, {
268
+ originAccessLevels: [cloudfront.AccessLevel.READ, cloudfront.AccessLevel.LIST],
269
+ });
270
+
271
+ // Create the Distribution construct
272
+ const myMultiTenantDistribution = new cloudfront.Distribution(this, 'cf-hosted-distribution', {
273
+ defaultBehavior: {
274
+ origin: s3Origin,
275
+ },
276
+ defaultRootObject: 'index.html', // recommended to specify
277
+ });
278
+
279
+ // Access the underlying L1 CfnDistribution to configure SaaS Manager properties which are not yet available in the L2 Distribution construct
280
+ const cfnDistribution = myMultiTenantDistribution.node.defaultChild as cloudfront.CfnDistribution;
281
+
282
+ const defaultCacheBehavior: cloudfront.CfnDistribution.DefaultCacheBehaviorProperty = {
283
+ targetOriginId: myBucket.bucketArn,
284
+ viewerProtocolPolicy: 'allow-all',
285
+ compress: false,
286
+ allowedMethods: ['GET', 'HEAD'],
287
+ cachePolicyId: cloudfront.CachePolicy.CACHING_OPTIMIZED.cachePolicyId
288
+ };
289
+ // Create the updated distributionConfig
290
+ const distributionConfig: cloudfront.CfnDistribution.DistributionConfigProperty = {
291
+ defaultCacheBehavior: defaultCacheBehavior,
292
+ enabled: true,
293
+ // the properties below are optional
294
+ connectionMode: 'tenant-only',
295
+ origins: [
296
+ {
297
+ id: myBucket.bucketArn,
298
+ domainName: myBucket.bucketDomainName,
299
+ s3OriginConfig: {},
300
+ originPath: "/{{tenantName}}"
301
+ },
302
+ ],
303
+ tenantConfig: {
304
+ parameterDefinitions: [
305
+ {
306
+ definition: {
307
+ stringSchema: {
308
+ required: false,
309
+ // the properties below are optional
310
+ comment: 'tenantName',
311
+ defaultValue: 'root',
312
+ },
313
+ },
314
+ name: 'tenantName',
315
+ },
316
+ ],
317
+ },
318
+ };
319
+
320
+ // Override the distribution configuration to enable multi-tenancy.
321
+ cfnDistribution.distributionConfig = distributionConfig;
322
+
323
+ // Create a connection group so we have access to the RoutingEndpoint associated with the tenant we are about to create
324
+ const connectionGroup = new cloudfront.CfnConnectionGroup(this, 'self-hosted-connection-group', {
325
+ enabled: true,
326
+ ipv6Enabled: true,
327
+ name: 'self-hosted-connection-group',
328
+ });
329
+
330
+ // Export the RoutingEndpoint, skip this step if you'd prefer to fetch it from the CloudFront console or via Cloudfront.ListConnectionGroups API
331
+ new CfnOutput(this, 'RoutingEndpoint', {
332
+ value: connectionGroup.attrRoutingEndpoint,
333
+ description: 'CloudFront Routing Endpoint to be added to my hosted zone CNAME records',
334
+ });
335
+
336
+ // Create a distribution tenant with a self-hosted domain.
337
+ const selfHostedTenant = new cloudfront.CfnDistributionTenant(this, 'self-hosted-tenant', {
338
+ distributionId: myMultiTenantDistribution.distributionId,
339
+ connectionGroupId: connectionGroup.attrId,
340
+ name: 'self-hosted-tenant',
341
+ domains: ['self-hosted-tenant.my.domain.com'],
342
+ enabled: true,
343
+ managedCertificateRequest: {
344
+ primaryDomainName: 'self-hosted-tenant.my.domain.com',
345
+ validationTokenHost: 'self-hosted',
346
+ },
347
+ });
348
+ ```
349
+ While CDK is deploying, it will attempt to validate domain ownership by confirming that a validation token is served directly from your domain, or via http redirect.
350
+
351
+ [follow the steps here](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managed-cloudfront-certificates.html#complete-domain-ownership) to complete domain setup before deploying this CDK stack, or while CDK is in the waiting state during tenant creation. Refer to the section "I have existing traffic"
352
+
353
+ A simple option for validating via http redirect, would be to add a rewrite rule like so to your server (Apache in this example)
354
+ ```
355
+ RewriteEngine On
356
+ RewriteCond %{REQUEST_URI} ^/\.well-known/pki-validation/(.+)$ [NC]
357
+ RewriteRule ^(.*)$ https://validation.us-east-1.acm-validations.aws/%{ENV:AWS_ACCOUNT_ID}/.well-known/pki-validation/%1 [R=301,L]
358
+ ```
359
+
360
+ Then, when you are ready to accept traffic, follow the steps [here](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managed-cloudfront-certificates.html#point-domains-to-cloudfront) using the RoutingEndpoint from above to configure DNS to point to CloudFront.
70
361
 
71
362
  ### VPC origins
72
363
 
@@ -548,7 +839,7 @@ const functionVersion = lambda.Version.fromVersionArn(this, 'Version', 'arn:aws:
548
839
 
549
840
  new cloudfront.Distribution(this, 'distro', {
550
841
  defaultBehavior: {
551
- origin: new origins.S3Origin(s3Bucket),
842
+ origin: origins.S3BucketOrigin.withOriginAccessControl(s3Bucket),
552
843
  edgeLambdas: [
553
844
  {
554
845
  functionVersion,
@@ -577,6 +577,7 @@ const origin = new origins.LoadBalancerV2Origin(loadBalancer, {
577
577
  connectionAttempts: 3,
578
578
  connectionTimeout: Duration.seconds(5),
579
579
  readTimeout: Duration.seconds(45),
580
+ responseCompletionTimeout: Duration.seconds(120),
580
581
  keepaliveTimeout: Duration.seconds(45),
581
582
  protocolPolicy: cloudfront.OriginProtocolPolicy.MATCH_VIEWER,
582
583
  });
@@ -596,6 +597,36 @@ new cloudfront.Distribution(this, 'myDist', {
596
597
  });
597
598
  ```
598
599
 
600
+ You can specify the IP address type for connecting to the origin:
601
+
602
+ ```ts
603
+ const origin = new origins.HttpOrigin('www.example.com', {
604
+ ipAddressType: cloudfront.OriginIpAddressType.IPV6, // IPv4, IPv6, or DUALSTACK
605
+ });
606
+
607
+ new cloudfront.Distribution(this, 'Distribution', {
608
+ defaultBehavior: { origin },
609
+ });
610
+ ```
611
+
612
+ The `ipAddressType` property allows you to specify whether CloudFront should use IPv4, IPv6, or both (dual-stack) when connecting to your origin.
613
+
614
+ The origin can be customized with timeout settings to handle different response scenarios:
615
+
616
+ ```ts
617
+ new cloudfront.Distribution(this, 'Distribution', {
618
+ defaultBehavior: {
619
+ origin: new origins.HttpOrigin('api.example.com', {
620
+ readTimeout: Duration.seconds(60),
621
+ responseCompletionTimeout: Duration.seconds(120),
622
+ keepaliveTimeout: Duration.seconds(45),
623
+ }),
624
+ },
625
+ });
626
+ ```
627
+
628
+ The `responseCompletionTimeout` property specifies the time that a request from CloudFront to the origin can stay open and wait for a response. If the complete response isn't received from the origin by this time, CloudFront ends the connection. Valid values are 1-3600 seconds, and if set, the value must be equal to or greater than the `readTimeout` value.
629
+
599
630
  See the documentation of `aws-cdk-lib/aws-cloudfront` for more information.
600
631
 
601
632
  ## VPC origins
@@ -801,6 +832,58 @@ new cloudfront.Distribution(this, 'Distribution', {
801
832
  });
802
833
  ```
803
834
 
835
+ You can also configure timeout settings for Lambda Function URL origins:
836
+
837
+ ```ts
838
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
839
+
840
+ declare const fn: lambda.Function;
841
+ const fnUrl = fn.addFunctionUrl({ authType: lambda.FunctionUrlAuthType.NONE });
842
+
843
+ new cloudfront.Distribution(this, 'Distribution', {
844
+ defaultBehavior: {
845
+ origin: new origins.FunctionUrlOrigin(fnUrl, {
846
+ readTimeout: Duration.seconds(30),
847
+ responseCompletionTimeout: Duration.seconds(90),
848
+ keepaliveTimeout: Duration.seconds(45),
849
+ }),
850
+ },
851
+ });
852
+ ```
853
+
854
+ ### Configuring IP Address Type
855
+
856
+ You can specify which IP protocol CloudFront uses when connecting to your Lambda Function URL origin. By default, CloudFront uses IPv4 only.
857
+
858
+ ```ts
859
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
860
+ import { OriginIpAddressType } from 'aws-cdk-lib/aws-cloudfront';
861
+
862
+ declare const fn: lambda.Function;
863
+ const fnUrl = fn.addFunctionUrl({ authType: lambda.FunctionUrlAuthType.NONE });
864
+
865
+ // Uses default IPv4 only
866
+ new cloudfront.Distribution(this, 'Distribution', {
867
+ defaultBehavior: {
868
+ origin: new origins.FunctionUrlOrigin(fnUrl)
869
+ },
870
+ });
871
+
872
+ // Explicitly specify IP address type
873
+ new cloudfront.Distribution(this, 'Distribution', {
874
+ defaultBehavior: {
875
+ origin: new origins.FunctionUrlOrigin(fnUrl, {
876
+ ipAddressType: OriginIpAddressType.DUALSTACK, // Use both IPv4 and IPv6
877
+ })
878
+ },
879
+ });
880
+ ```
881
+
882
+ Supported values for `ipAddressType`:
883
+ - `OriginIpAddressType.IPV4` - CloudFront uses IPv4 only to connect to the origin (default)
884
+ - `OriginIpAddressType.IPV6` - CloudFront uses IPv6 only to connect to the origin
885
+ - `OriginIpAddressType.DUALSTACK` - CloudFront uses both IPv4 and IPv6 to connect to the origin
886
+
804
887
  ### Lambda Function URL with Origin Access Control (OAC)
805
888
  You can configure the Lambda Function URL with Origin Access Control (OAC) for enhanced security. When using OAC with Signing SIGV4_ALWAYS, it is recommended to set the Lambda Function URL authType to AWS_IAM to ensure proper authorization.
806
889
 
@@ -0,0 +1,84 @@
1
+ import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
2
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
3
+ import { FunctionUrlOrigin } from 'aws-cdk-lib/aws-cloudfront-origins';
4
+ import { App, Stack } from 'aws-cdk-lib';
5
+ import { ExpectedResult, IntegTest } from '@aws-cdk/integ-tests-alpha';
6
+ import { OriginIpAddressType } from 'aws-cdk-lib/aws-cloudfront';
7
+
8
+ const app = new App();
9
+ const stack = new Stack(app, 'FunctionUrlOriginIpAddressTypeStack');
10
+
11
+ // Lambda function
12
+ const fn = new lambda.Function(stack, 'TestFunction', {
13
+ code: lambda.Code.fromInline('exports.handler = async () => ({ statusCode: 200, body: "Hello" });'),
14
+ handler: 'index.handler',
15
+ runtime: lambda.Runtime.NODEJS_20_X,
16
+ });
17
+
18
+ // Function URL with IAM auth
19
+ const fnUrl = fn.addFunctionUrl({
20
+ authType: lambda.FunctionUrlAuthType.AWS_IAM,
21
+ });
22
+
23
+ // CloudFront distribution with IPv4 IP address type
24
+ new cloudfront.Distribution(stack, 'DistributionWithoutIpAddressTypeProp(IPv4)', {
25
+ defaultBehavior: {
26
+ origin: FunctionUrlOrigin.withOriginAccessControl(fnUrl, {}),
27
+ },
28
+ });
29
+
30
+ // CloudFront distribution with IPv4 IP address type
31
+ const distributionIPv4 = new cloudfront.Distribution(stack, 'DistributionWithIPv4', {
32
+ defaultBehavior: {
33
+ origin: FunctionUrlOrigin.withOriginAccessControl(fnUrl, {
34
+ ipAddressType: OriginIpAddressType.IPV4,
35
+ }),
36
+ },
37
+ });
38
+
39
+ // CloudFront distribution with IPv6 IP address type
40
+ const distributionIPv6 = new cloudfront.Distribution(stack, 'DistributionWithIPv6', {
41
+ defaultBehavior: {
42
+ origin: FunctionUrlOrigin.withOriginAccessControl(fnUrl, {
43
+ ipAddressType: OriginIpAddressType.IPV6,
44
+ }),
45
+ },
46
+ });
47
+
48
+ // CloudFront distribution with dualstack IP address type
49
+ const distributionDualstack = new cloudfront.Distribution(stack, 'DistributionWithDualstack', {
50
+ defaultBehavior: {
51
+ origin: FunctionUrlOrigin.withOriginAccessControl(fnUrl, {
52
+ ipAddressType: OriginIpAddressType.DUALSTACK,
53
+ }),
54
+ },
55
+ });
56
+
57
+ const integ = new IntegTest(app, 'FunctionUrlOriginIpAddressTypeTest', {
58
+ testCases: [stack],
59
+ });
60
+
61
+ // Assert that distributions are created with expected IP address type settings
62
+ integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
63
+ Id: distributionIPv4.distributionId,
64
+ }).assertAtPath('Distribution.DistributionConfig.IsIPV4Enabled', ExpectedResult.exact(true));
65
+
66
+ integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
67
+ Id: distributionIPv4.distributionId,
68
+ }).assertAtPath('Distribution.DistributionConfig.IsIPV6Enabled', ExpectedResult.exact(false));
69
+
70
+ integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
71
+ Id: distributionIPv6.distributionId,
72
+ }).assertAtPath('Distribution.DistributionConfig.IsIPV4Enabled', ExpectedResult.exact(false));
73
+
74
+ integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
75
+ Id: distributionIPv6.distributionId,
76
+ }).assertAtPath('Distribution.DistributionConfig.IsIPV6Enabled', ExpectedResult.exact(true));
77
+
78
+ integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
79
+ Id: distributionDualstack.distributionId,
80
+ }).assertAtPath('Distribution.DistributionConfig.IsIPV4Enabled', ExpectedResult.exact(true));
81
+
82
+ integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
83
+ Id: distributionDualstack.distributionId,
84
+ }).assertAtPath('Distribution.DistributionConfig.IsIPV6Enabled', ExpectedResult.exact(true));
@@ -1,13 +1,16 @@
1
1
  import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
2
2
  import * as cdk from 'aws-cdk-lib';
3
3
  import * as origins from 'aws-cdk-lib/aws-cloudfront-origins';
4
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
4
5
 
5
6
  const app = new cdk.App();
6
7
 
7
8
  const stack = new cdk.Stack(app, 'cloudfront-http-origin');
8
9
 
9
10
  new cloudfront.Distribution(stack, 'Distribution', {
10
- defaultBehavior: { origin: new origins.HttpOrigin('www.example.com') },
11
+ defaultBehavior: { origin: new origins.HttpOrigin('www.example.com', { ipAddressType: cloudfront.OriginIpAddressType.DUALSTACK }) },
11
12
  });
12
13
 
13
- app.synth();
14
+ new IntegTest(app, 'http-origin-test-integ', {
15
+ testCases: [stack],
16
+ });
@@ -0,0 +1,50 @@
1
+ import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
2
+ import * as origins from 'aws-cdk-lib/aws-cloudfront-origins';
3
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
4
+ import * as cdk from 'aws-cdk-lib';
5
+ import { IntegTest } from '@aws-cdk/integ-tests-alpha';
6
+
7
+ const app = new cdk.App();
8
+ const stack = new cdk.Stack(app, 'integ-cloudfront-response-completion-timeout');
9
+
10
+ const httpOrigin = new origins.HttpOrigin('example.com', {
11
+ responseCompletionTimeout: cdk.Duration.seconds(120),
12
+ readTimeout: cdk.Duration.seconds(60),
13
+ });
14
+
15
+ const fn = new lambda.Function(stack, 'Function', {
16
+ runtime: lambda.Runtime.NODEJS_20_X,
17
+ handler: 'index.handler',
18
+ code: lambda.Code.fromInline('exports.handler = async () => ({ statusCode: 200, body: "Hello from Lambda!" });'),
19
+ });
20
+
21
+ const fnUrl = fn.addFunctionUrl({
22
+ authType: lambda.FunctionUrlAuthType.NONE,
23
+ });
24
+
25
+ const functionUrlOrigin = new origins.FunctionUrlOrigin(fnUrl, {
26
+ responseCompletionTimeout: cdk.Duration.seconds(90),
27
+ readTimeout: cdk.Duration.seconds(30),
28
+ });
29
+
30
+ const httpOriginNoReadTimeout = new origins.HttpOrigin('api.example.com', {
31
+ responseCompletionTimeout: cdk.Duration.seconds(300),
32
+ });
33
+
34
+ new cloudfront.Distribution(stack, 'Distribution', {
35
+ defaultBehavior: {
36
+ origin: httpOrigin,
37
+ },
38
+ additionalBehaviors: {
39
+ '/api/*': {
40
+ origin: functionUrlOrigin,
41
+ },
42
+ '/files/*': {
43
+ origin: httpOriginNoReadTimeout,
44
+ },
45
+ },
46
+ });
47
+
48
+ new IntegTest(app, 'CloudFrontResponseCompletionTimeoutTest', {
49
+ testCases: [stack],
50
+ });
@@ -13,7 +13,7 @@ const stack = new cdk.Stack(app, 'integ-cloudtrail-data-events');
13
13
 
14
14
  const bucket = new s3.Bucket(stack, 'Bucket', { removalPolicy: cdk.RemovalPolicy.DESTROY });
15
15
  const lambdaFunction = new lambda.Function(stack, 'LambdaFunction', {
16
- runtime: lambda.Runtime.NODEJS_18_X,
16
+ runtime: lambda.Runtime.NODEJS_20_X,
17
17
  handler: 'hello.handler',
18
18
  code: lambda.Code.fromInline('exports.handler = {}'),
19
19
  });