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,147 @@
1
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
+ import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2';
3
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
4
+ import * as cdk from 'aws-cdk-lib';
5
+ import * as ecs from 'aws-cdk-lib/aws-ecs';
6
+ import * as integ from '@aws-cdk/integ-tests-alpha';
7
+
8
+ const app = new cdk.App();
9
+ const stack = new cdk.Stack(app, 'aws-ecs-blue-green-deployment');
10
+
11
+ // Create VPC and Cluster
12
+ const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2, restrictDefaultSecurityGroup: false });
13
+ const cluster = new ecs.Cluster(stack, 'FargateCluster', {
14
+ vpc,
15
+ defaultCloudMapNamespace: {
16
+ name: 'bluegreendeployment.com',
17
+ useForServiceConnect: true,
18
+ },
19
+ });
20
+
21
+ // Create Blue target group for B/G deployment
22
+ const blueTargetGroup = new elbv2.ApplicationTargetGroup(stack, 'BlueTG', {
23
+ vpc: cluster.vpc,
24
+ port: 80,
25
+ protocol: elbv2.ApplicationProtocol.HTTP,
26
+ targetType: elbv2.TargetType.IP,
27
+ healthCheck: {
28
+ path: '/',
29
+ healthyHttpCodes: '200',
30
+ },
31
+ });
32
+
33
+ // Create Green target group for B/G deployment
34
+ const greenTargetGroup = new elbv2.ApplicationTargetGroup(stack, 'GreenTG', {
35
+ vpc: cluster.vpc,
36
+ port: 80,
37
+ protocol: elbv2.ApplicationProtocol.HTTP,
38
+ targetType: elbv2.TargetType.IP,
39
+ healthCheck: {
40
+ path: '/',
41
+ healthyHttpCodes: '200',
42
+ },
43
+ });
44
+
45
+ // Create security groups
46
+ const lbSecurityGroup = new ec2.SecurityGroup(stack, 'LBSecurityGroup', {
47
+ vpc: cluster.vpc,
48
+ allowAllOutbound: true,
49
+ });
50
+ lbSecurityGroup.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(80));
51
+
52
+ const ecsSecurityGroup = new ec2.SecurityGroup(stack, 'ECSSecurityGroup', {
53
+ vpc: cluster.vpc,
54
+ allowAllOutbound: true,
55
+ });
56
+ ecsSecurityGroup.addIngressRule(lbSecurityGroup, ec2.Port.tcp(80));
57
+
58
+ // Create ALB
59
+ const alb = new elbv2.ApplicationLoadBalancer(stack, 'ALB', {
60
+ vpc: cluster.vpc,
61
+ internetFacing: true,
62
+ securityGroup: lbSecurityGroup,
63
+ idleTimeout: cdk.Duration.seconds(60),
64
+ });
65
+
66
+ // Create ALB listener with default 404 response
67
+ const listener = alb.addListener('ALBListenerHTTP', {
68
+ port: 80,
69
+ defaultAction: elbv2.ListenerAction.fixedResponse(404),
70
+ });
71
+
72
+ // Create Prod listener rule
73
+ const prodListenerRule = new elbv2.ApplicationListenerRule(stack, 'ALBProductionListenerRule', {
74
+ listener: listener,
75
+ priority: 1,
76
+ conditions: [
77
+ elbv2.ListenerCondition.pathPatterns(['/*']),
78
+ ],
79
+ action: elbv2.ListenerAction.weightedForward([
80
+ {
81
+ targetGroup: blueTargetGroup,
82
+ weight: 100,
83
+ },
84
+ {
85
+ targetGroup: greenTargetGroup,
86
+ weight: 0,
87
+ },
88
+ ]),
89
+ });
90
+
91
+ // Create Lambda hook
92
+ const lambdaHook = new lambda.Function(stack, 'LambdaHook', {
93
+ handler: 'index.handler',
94
+ runtime: lambda.Runtime.NODEJS_22_X,
95
+ code: lambda.Code.fromInline(`exports.handler = async (event, context) => {
96
+ console.log('Event received:', JSON.stringify(event));
97
+ return { hookStatus: 'SUCCEEDED' };
98
+ };`),
99
+ });
100
+
101
+ // Create task definition
102
+ const taskDefinition = new ecs.FargateTaskDefinition(stack, 'TaskDef', {
103
+ memoryLimitMiB: 512,
104
+ cpu: 256,
105
+ });
106
+
107
+ // Add container to task definition
108
+ taskDefinition.addContainer('container', {
109
+ containerName: 'nginx',
110
+ image: ecs.ContainerImage.fromRegistry('public.ecr.aws/nginx/nginx:latest'),
111
+ portMappings: [{
112
+ name: 'api',
113
+ containerPort: 80,
114
+ appProtocol: ecs.AppProtocol.http,
115
+ }],
116
+ });
117
+
118
+ // Create Fargate service with escape hatching for B/G deployment
119
+ const service = new ecs.FargateService(stack, 'Service', {
120
+ cluster,
121
+ taskDefinition,
122
+ securityGroups: [ecsSecurityGroup],
123
+ deploymentStrategy: ecs.DeploymentStrategy.BLUE_GREEN,
124
+ });
125
+
126
+ service.addLifecycleHook(new ecs.DeploymentLifecycleLambdaTarget(lambdaHook, 'PreScaleUp', {
127
+ lifecycleStages: [ecs.DeploymentLifecycleStage.PRE_SCALE_UP],
128
+ }));
129
+
130
+ const target = service.loadBalancerTarget({
131
+ containerName: 'nginx',
132
+ containerPort: 80,
133
+ protocol: ecs.Protocol.TCP,
134
+ alternateTarget: new ecs.AlternateTarget('LBAlternateOptions', {
135
+ alternateTargetGroup: greenTargetGroup,
136
+ productionListener: ecs.ListenerRuleConfiguration.applicationListenerRule(prodListenerRule),
137
+ }),
138
+ });
139
+
140
+ target.attachToApplicationTargetGroup(blueTargetGroup);
141
+
142
+ // Create integration test
143
+ new integ.IntegTest(app, 'aws-ecs-blue-green', {
144
+ testCases: [stack],
145
+ });
146
+
147
+ app.synth();
@@ -32,8 +32,8 @@ insRole.applyRemovalPolicy(cdk.RemovalPolicy.DESTROY);
32
32
  const autoScalingGroup = new autoscaling.AutoScalingGroup(stack, 'ASG', {
33
33
  vpc,
34
34
  role: insRole,
35
- instanceType: ec2.InstanceType.of(ec2.InstanceClass.T2, ec2.InstanceSize.LARGE),
36
- machineImage: ecs.EcsOptimizedImage.windows(ecs.WindowsOptimizedVersion.SERVER_2022),
35
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.SMALL),
36
+ machineImage: ecs.EcsOptimizedImage.windows(ecs.WindowsOptimizedVersion.SERVER_2025),
37
37
  minCapacity: 1,
38
38
  });
39
39
 
@@ -46,10 +46,9 @@ cluster.addAsgCapacityProvider(cp);
46
46
 
47
47
  const taskDefinition = new ecs.Ec2TaskDefinition(stack, 'TaskDef', {});
48
48
 
49
- taskDefinition.addContainer('fluent-bit', {
50
- image: ecs.ContainerImage.fromRegistry('public.ecr.aws/aws-observability/aws-for-fluent-bit:windowsservercore-stable'),
51
- memoryLimitMiB: 2096,
52
- cpu: 1024,
49
+ taskDefinition.addContainer('main', {
50
+ image: ecs.ContainerImage.fromRegistry('hello-world'),
51
+ memoryLimitMiB: 256,
53
52
  });
54
53
 
55
54
  new ecs.Ec2Service(stack, 'EC2Service', {
@@ -0,0 +1,80 @@
1
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
+ import * as cdk from 'aws-cdk-lib';
3
+ import * as ecs from 'aws-cdk-lib/aws-ecs';
4
+ import * as integ from '@aws-cdk/integ-tests-alpha';
5
+ import { Construct } from 'constructs';
6
+
7
+ /*
8
+ * This integration test demonstrates how to use EBS volume initialization rate
9
+ * with Service Managed Volumes.
10
+ *
11
+ * To run this test with a real EBS snapshot:
12
+ * 1. Create an EBS volume:
13
+ * aws ec2 create-volume --size 1 --volume-type gp3 --availability-zone us-east-1a
14
+ * 2. Create a snapshot from the volume:
15
+ * aws ec2 create-snapshot --volume-id vol-xxxxxxxxx --description "Test snapshot"
16
+ * 3. Wait for snapshot completion:
17
+ * aws ec2 wait snapshot-completed --snapshot-ids snap-xxxxxxxxx
18
+ * 4. Set the environment variable SNAPSHOT_ID to the snapshot ID:
19
+ * export SNAPSHOT_ID=snap-xxxxxxxxx
20
+ */
21
+
22
+ const snapShotId = process.env.SNAPSHOT_ID ?? 'snap-123456789abcdef0';
23
+
24
+ class TestStack extends cdk.Stack {
25
+ constructor(scope: Construct, id: string) {
26
+ super(scope, id);
27
+
28
+ const vpc = new ec2.Vpc(this, 'Vpc', {
29
+ maxAzs: 1,
30
+ restrictDefaultSecurityGroup: false,
31
+ });
32
+
33
+ const cluster = new ecs.Cluster(this, 'FargateCluster', {
34
+ vpc,
35
+ });
36
+
37
+ const taskDefinition = new ecs.FargateTaskDefinition(this, 'TaskDef');
38
+
39
+ const container = taskDefinition.addContainer('web', {
40
+ image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'),
41
+ portMappings: [{
42
+ containerPort: 80,
43
+ protocol: ecs.Protocol.TCP,
44
+ }],
45
+ });
46
+
47
+ const volume = new ecs.ServiceManagedVolume(this, 'EBSVolume', {
48
+ name: 'ebs1',
49
+ managedEBSVolume: {
50
+ volumeType: ec2.EbsDeviceVolumeType.GP3,
51
+ size: cdk.Size.gibibytes(1),
52
+ fileSystemType: ecs.FileSystemType.EXT4,
53
+ volumeInitializationRate: cdk.Size.mebibytes(200),
54
+ snapShotId: snapShotId,
55
+ },
56
+ });
57
+
58
+ volume.mountIn(container, {
59
+ containerPath: '/var/lib',
60
+ readOnly: false,
61
+ });
62
+
63
+ taskDefinition.addVolume(volume);
64
+
65
+ const service = new ecs.FargateService(this, 'FargateService', {
66
+ cluster,
67
+ taskDefinition,
68
+ desiredCount: 1,
69
+ });
70
+
71
+ service.addVolume(volume);
72
+ }
73
+ }
74
+
75
+ const app = new cdk.App();
76
+ const stack = new TestStack(app, 'integ-aws-ecs-ebs-volume-initialization-rate');
77
+
78
+ new integ.IntegTest(app, 'EBSVolumeInitializationRate', {
79
+ testCases: [stack],
80
+ });
@@ -1,30 +1,53 @@
1
- import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
- import * as kms from 'aws-cdk-lib/aws-kms';
1
+
2
+ import * as autoscaling from 'aws-cdk-lib/aws-autoscaling';
3
3
  import * as s3 from 'aws-cdk-lib/aws-s3';
4
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
4
5
  import * as cdk from 'aws-cdk-lib';
5
- import { Duration } from 'aws-cdk-lib';
6
6
  import * as integ from '@aws-cdk/integ-tests-alpha';
7
7
  import * as ecs from 'aws-cdk-lib/aws-ecs';
8
8
 
9
9
  const app = new cdk.App({
10
10
  postCliContext: {
11
+ '@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
11
12
  '@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions': true,
13
+ '@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature': false,
14
+ '@aws-cdk/aws-ecs:disableEcsImdsBlocking': false,
15
+ '@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy': false,
12
16
  },
13
17
  });
14
18
  const stack = new cdk.Stack(app, 'aws-ecs-integ-enable-execute-command');
15
19
 
16
- const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2, restrictDefaultSecurityGroup: false });
20
+ const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2 });
21
+
22
+ const taskDefinition = new ecs.Ec2TaskDefinition(stack, 'TaskDef');
23
+
24
+ taskDefinition.addContainer('web', {
25
+ image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'),
26
+ memoryReservationMiB: 256,
27
+ portMappings: [
28
+ {
29
+ containerPort: 80,
30
+ hostPort: 8080,
31
+ protocol: ecs.Protocol.TCP,
32
+ },
33
+ ],
34
+ });
17
35
 
18
- const kmsKey = new kms.Key(stack, 'KmsKey');
36
+ const execBucket = new s3.Bucket(stack, 'EcsExecBucket');
19
37
 
20
- const execBucket = new s3.Bucket(stack, 'EcsExecBucket', {
21
- encryptionKey: kmsKey,
38
+ const cp = new ecs.AsgCapacityProvider(stack, 'EC2CapacityProvider', {
39
+ autoScalingGroup: new autoscaling.AutoScalingGroup(stack, 'ASG', {
40
+ vpc,
41
+ instanceType: new ec2.InstanceType('t2.micro'),
42
+ machineImage: ecs.EcsOptimizedImage.amazonLinux2(),
43
+ }),
44
+ // This is to allow cdk destroy to work; otherwise deletion will hang bc ASG cannot be deleted
45
+ enableManagedTerminationProtection: false,
22
46
  });
23
47
 
24
- const cluster = new ecs.Cluster(stack, 'FargateCluster', {
48
+ const cluster = new ecs.Cluster(stack, 'EC2CPCluster', {
25
49
  vpc,
26
50
  executeCommandConfiguration: {
27
- kmsKey,
28
51
  logConfiguration: {
29
52
  s3Bucket: execBucket,
30
53
  s3EncryptionEnabled: true,
@@ -33,19 +56,9 @@ const cluster = new ecs.Cluster(stack, 'FargateCluster', {
33
56
  logging: ecs.ExecuteCommandLogging.OVERRIDE,
34
57
  },
35
58
  });
59
+ cluster.addAsgCapacityProvider(cp);
36
60
 
37
- const taskDefinition = new ecs.FargateTaskDefinition(stack, 'TaskDef');
38
-
39
- taskDefinition.addContainer('web', {
40
- image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'),
41
- healthCheck: {
42
- command: ['CMD-SHELL', 'curl localhost:8000'],
43
- interval: Duration.seconds(60),
44
- timeout: Duration.seconds(40),
45
- },
46
- });
47
-
48
- new ecs.FargateService(stack, 'FargateService', {
61
+ new ecs.Ec2Service(stack, 'EC2Service', {
49
62
  cluster,
50
63
  taskDefinition,
51
64
  enableExecuteCommand: true,
@@ -53,12 +66,5 @@ new ecs.FargateService(stack, 'FargateService', {
53
66
 
54
67
  new integ.IntegTest(app, 'enable-execute-command-test', {
55
68
  testCases: [stack],
56
- diffAssets: true,
57
- cdkCommandOptions: {
58
- deploy: {
59
- args: {
60
- rollback: true,
61
- },
62
- },
63
- },
64
69
  });
70
+ app.synth();
@@ -3,11 +3,16 @@ import * as kms from 'aws-cdk-lib/aws-kms';
3
3
  import * as logs from 'aws-cdk-lib/aws-logs';
4
4
  import * as s3 from 'aws-cdk-lib/aws-s3';
5
5
  import * as cdk from 'aws-cdk-lib';
6
- import { Duration } from 'aws-cdk-lib';
7
- import * as integ from '@aws-cdk/integ-tests-alpha';
8
6
  import * as ecs from 'aws-cdk-lib/aws-ecs';
9
7
 
10
- const app = new cdk.App();
8
+ const app = new cdk.App({
9
+ postCliContext: {
10
+ '@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
11
+ '@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature': false,
12
+ '@aws-cdk/aws-ecs:disableEcsImdsBlocking': false,
13
+ '@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy': false,
14
+ },
15
+ });
11
16
  const stack = new cdk.Stack(app, 'aws-ecs-integ-exec-command');
12
17
 
13
18
  const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2, restrictDefaultSecurityGroup: false });
@@ -22,7 +27,7 @@ const execBucket = new s3.Bucket(stack, 'EcsExecBucket', {
22
27
  encryptionKey: kmsKey,
23
28
  });
24
29
 
25
- const cluster = new ecs.Cluster(stack, 'FargateCluster', {
30
+ const cluster = new ecs.Cluster(stack, 'Ec2Cluster', {
26
31
  vpc,
27
32
  executeCommandConfiguration: {
28
33
  kmsKey,
@@ -36,32 +41,21 @@ const cluster = new ecs.Cluster(stack, 'FargateCluster', {
36
41
  logging: ecs.ExecuteCommandLogging.OVERRIDE,
37
42
  },
38
43
  });
44
+ cluster.addCapacity('DefaultAutoScalingGroup', {
45
+ instanceType: new ec2.InstanceType('t2.micro'),
46
+ });
39
47
 
40
- const taskDefinition = new ecs.FargateTaskDefinition(stack, 'TaskDef');
48
+ const taskDefinition = new ecs.Ec2TaskDefinition(stack, 'TaskDef');
41
49
 
42
50
  taskDefinition.addContainer('web', {
43
51
  image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'),
44
- healthCheck: {
45
- command: ['CMD-SHELL', 'curl localhost:8000'],
46
- interval: Duration.seconds(60),
47
- timeout: Duration.seconds(40),
48
- },
52
+ memoryLimitMiB: 256,
49
53
  });
50
54
 
51
- new ecs.FargateService(stack, 'FargateService', {
55
+ new ecs.Ec2Service(stack, 'Ec2Service', {
52
56
  cluster,
53
57
  taskDefinition,
54
58
  enableExecuteCommand: true,
55
59
  });
56
60
 
57
- new integ.IntegTest(app, 'exec-command-integ-test', {
58
- testCases: [stack],
59
- diffAssets: true,
60
- cdkCommandOptions: {
61
- deploy: {
62
- args: {
63
- rollback: true,
64
- },
65
- },
66
- },
67
- });
61
+ app.synth();
@@ -3,38 +3,48 @@ import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2';
3
3
  import * as cdk from 'aws-cdk-lib';
4
4
  import * as ecs from 'aws-cdk-lib/aws-ecs';
5
5
 
6
- const app = new cdk.App();
6
+ const app = new cdk.App({
7
+ postCliContext: {
8
+ '@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
9
+ '@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature': false,
10
+ '@aws-cdk/aws-ecs:disableEcsImdsBlocking': false,
11
+ '@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy': false,
12
+ },
13
+ });
7
14
  const stack = new cdk.Stack(app, 'aws-ecs-integ');
8
15
 
9
16
  const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2, restrictDefaultSecurityGroup: false });
10
17
 
11
- const cluster = new ecs.Cluster(stack, 'FargateCluster', { vpc });
18
+ const cluster = new ecs.Cluster(stack, 'EcsCluster', { vpc });
19
+ cluster.addCapacity('DefaultAutoScalingGroup', {
20
+ instanceType: new ec2.InstanceType('t2.micro'),
21
+ });
12
22
 
13
- const taskDefinition = new ecs.FargateTaskDefinition(stack, 'TaskDef', {
14
- memoryLimitMiB: 1024,
15
- cpu: 512,
23
+ const taskDefinition = new ecs.Ec2TaskDefinition(stack, 'TaskDef', {
24
+ networkMode: ecs.NetworkMode.AWS_VPC,
16
25
  });
17
26
 
18
- taskDefinition.addContainer('web', {
27
+ const container = taskDefinition.addContainer('web', {
19
28
  image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'),
20
- portMappings: [{
21
- containerPort: 80,
22
- protocol: ecs.Protocol.TCP,
23
- }],
29
+ memoryLimitMiB: 256,
30
+ environment: {
31
+ SOME_VARIABLE: 'value',
32
+ },
24
33
  });
25
34
 
26
- const service = new ecs.FargateService(stack, 'Service', {
35
+ container.addPortMappings({
36
+ containerPort: 80,
37
+ protocol: ecs.Protocol.TCP,
38
+ });
39
+
40
+ const service = new ecs.Ec2Service(stack, 'Service', {
27
41
  cluster,
28
42
  taskDefinition,
29
43
  });
30
44
 
31
- const scaling = service.autoScaleTaskCount({ maxCapacity: 10 });
32
- // Quite low to try and force it to scale
33
- scaling.scaleOnCpuUtilization('ReasonableCpu', { targetUtilizationPercent: 10 });
34
-
35
45
  const lb = new elbv2.ApplicationLoadBalancer(stack, 'LB', { vpc, internetFacing: true });
36
46
  const listener = lb.addListener('PublicListener', { port: 80, open: true });
37
- listener.addTargets('Fargate', {
47
+ listener.addTargets('ECS', {
38
48
  port: 80,
39
49
  targets: [service],
40
50
  });
@@ -0,0 +1,114 @@
1
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
+ import * as iam from 'aws-cdk-lib/aws-iam';
3
+ import * as cdk from 'aws-cdk-lib';
4
+ import * as ecs from 'aws-cdk-lib/aws-ecs';
5
+ import * as integ from '@aws-cdk/integ-tests-alpha';
6
+
7
+ const app = new cdk.App({
8
+ postCliContext: {
9
+ '@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm': true,
10
+ '@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature': false,
11
+ '@aws-cdk/aws-ecs:disableEcsImdsBlocking': false,
12
+ },
13
+ });
14
+ const stack = new cdk.Stack(app, 'integ-managedinstances-capacity-provider');
15
+
16
+ const vpc = new ec2.Vpc(stack, 'Vpc', { maxAzs: 2, restrictDefaultSecurityGroup: false });
17
+ const cluster = new ecs.Cluster(stack, 'ManagedInstancesCluster', {
18
+ vpc,
19
+ enableFargateCapacityProviders: true,
20
+ });
21
+
22
+ // Create IAM roles required for FMI following Omakase specifications
23
+ const infrastructureRole = new iam.Role(stack, 'InfrastructureRole', {
24
+ roleName: 'AmazonECSInfrastructureRoleForOmakase',
25
+ assumedBy: new iam.ServicePrincipal('ecs.amazonaws.com'),
26
+ managedPolicies: [
27
+ iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonECSInfrastructureRolePolicyForManagedInstances'),
28
+ ],
29
+ });
30
+
31
+ const instanceRole = new iam.Role(stack, 'InstanceRole', {
32
+ roleName: 'AmazonECSInstanceRoleForOmakase',
33
+ assumedBy: new iam.ServicePrincipal('ec2.amazonaws.com'),
34
+ managedPolicies: [
35
+ iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonECSInstanceRolePolicyForManagedInstances'),
36
+ ],
37
+ });
38
+
39
+ const instanceProfile = new iam.InstanceProfile(stack, 'InstanceProfile', {
40
+ instanceProfileName: 'AmazonECSInstanceRoleForOmakase',
41
+ role: instanceRole,
42
+ });
43
+
44
+ // Create a security group for FMI instances
45
+ const fmiSecurityGroup = new ec2.SecurityGroup(stack, 'ManagedInstancesSecurityGroup', {
46
+ vpc,
47
+ description: 'Security group for ManagedInstances capacity provider instances',
48
+ allowAllOutbound: true,
49
+ });
50
+
51
+ // Create MI Capacity Provider
52
+ const miCapacityProvider = new ecs.ManagedInstancesCapacityProvider(stack, 'ManagedInstancesCapacityProvider', {
53
+ infrastructureRole: infrastructureRole,
54
+ ec2InstanceProfile: instanceProfile,
55
+ subnets: vpc.privateSubnets,
56
+ securityGroups: [fmiSecurityGroup],
57
+ propagateTags: ecs.PropagateManagedInstancesTags.CAPACITY_PROVIDER,
58
+ instanceRequirements: {
59
+ vCpuCountMin: 1,
60
+ memoryMin: cdk.Size.gibibytes(2),
61
+ cpuManufacturers: [ec2.CpuManufacturer.INTEL],
62
+ acceleratorManufacturers: [ec2.AcceleratorManufacturer.NVIDIA],
63
+ },
64
+ });
65
+
66
+ // Configure security group rules using IConnectable interface
67
+ miCapacityProvider.connections.allowFrom(ec2.Peer.ipv4(vpc.vpcCidrBlock), ec2.Port.tcp(80));
68
+
69
+ // Add FMI capacity provider to cluster
70
+ cluster.addManagedInstancesCapacityProvider(miCapacityProvider);
71
+ cluster.addDefaultCapacityProviderStrategy([
72
+ {
73
+ capacityProvider: miCapacityProvider.capacityProviderName,
74
+ weight: 1,
75
+ },
76
+ ]);
77
+
78
+ // Create a task definition compatible with Managed Instances and Fargate
79
+ const taskDefinition = new ecs.TaskDefinition(stack, 'TaskDef', {
80
+ compatibility: ecs.Compatibility.FARGATE_AND_MANAGED_INSTANCES,
81
+ cpu: '256',
82
+ memoryMiB: '512',
83
+ networkMode: ecs.NetworkMode.AWS_VPC,
84
+ });
85
+
86
+ taskDefinition.addContainer('web', {
87
+ image: ecs.ContainerImage.fromRegistry('public.ecr.aws/docker/library/httpd:2.4'),
88
+ memoryLimitMiB: 512,
89
+ portMappings: [
90
+ {
91
+ containerPort: 80,
92
+ protocol: ecs.Protocol.TCP,
93
+ },
94
+ ],
95
+ });
96
+
97
+ // Create a service using the MI capacity provider
98
+ new ecs.FargateService(stack, 'ManagedInstancesService', {
99
+ cluster,
100
+ taskDefinition,
101
+ capacityProviderStrategies: [
102
+ {
103
+ capacityProvider: miCapacityProvider.capacityProviderName,
104
+ weight: 1,
105
+ },
106
+ ],
107
+ desiredCount: 1,
108
+ });
109
+
110
+ new integ.IntegTest(app, 'ManagedInstancesCapacityProviders', {
111
+ testCases: [stack],
112
+ });
113
+
114
+ app.synth();