konokenj.cdk-api-mcp-server 0.2.0__py3-none-any.whl → 0.2.2__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.

Potentially problematic release.


This version of konokenj.cdk-api-mcp-server might be problematic. Click here for more details.

Files changed (1357) hide show
  1. cdk_api_mcp_server/__about__.py +1 -1
  2. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/app-staging-synthesizer-alpha/README.md +405 -0
  3. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/app-staging-synthesizer-alpha/resource-names.md +30 -0
  4. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-amplify-alpha/README.md +295 -0
  5. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-applicationsignals-alpha/README.md +289 -0
  6. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-apprunner-alpha/README.md +354 -0
  7. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-cloud9-alpha/README.md +190 -0
  8. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-codestar-alpha/README.md +39 -0
  9. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-custom-resource-sdk-adapter/README.md +94 -0
  10. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-ec2-alpha/README.md +909 -0
  11. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/MANUAL_TEST.md +58 -0
  12. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/README.md +1168 -0
  13. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-gamelift-alpha/README.md +718 -0
  14. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-glue-alpha/README.md +877 -0
  15. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-actions-alpha/README.md +394 -0
  16. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-alpha/README.md +194 -0
  17. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iotevents-actions-alpha/README.md +146 -0
  18. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iotevents-alpha/README.md +101 -0
  19. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-ivs-alpha/README.md +224 -0
  20. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-kinesisanalytics-flink-alpha/README.md +86 -0
  21. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-go-alpha/README.md +300 -0
  22. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-python-alpha/README.md +335 -0
  23. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-location-alpha/README.md +215 -0
  24. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-msk-alpha/README.md +254 -0
  25. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-neptune-alpha/README.md +238 -0
  26. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-pipes-alpha/README.md +463 -0
  27. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-pipes-enrichments-alpha/README.md +110 -0
  28. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-pipes-sources-alpha/README.md +104 -0
  29. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-pipes-targets-alpha/README.md +461 -0
  30. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-redshift-alpha/README.md +736 -0
  31. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-route53resolver-alpha/README.md +116 -0
  32. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-s3objectlambda-alpha/README.md +107 -0
  33. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-s3tables-alpha/README.md +114 -0
  34. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-sagemaker-alpha/README.md +282 -0
  35. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-servicecatalogappregistry-alpha/README.md +355 -0
  36. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/cfnspec/README.md +2 -0
  37. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/custom-resource-handlers/README.md +83 -0
  38. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/example-construct-library/README.md +92 -0
  39. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/integ-tests-alpha/README.md +577 -0
  40. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/README.md/README.md +1630 -0
  41. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/assertions/MIGRATING.md +123 -0
  42. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/assertions/README.md +681 -0
  43. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/assets/README.md +4 -0
  44. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-acmpca/README.md +59 -0
  45. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/README.md +1707 -0
  46. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.api-definition.asset.ts +42 -0
  47. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.api-definition.inline.ts +70 -0
  48. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.api-with-authorizer-and-method.ts +39 -0
  49. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.api-with-authorizer-and-proxy.ts +64 -0
  50. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.api-with-overriding-default-authorizer.ts +70 -0
  51. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.base-path-mapping.ts +46 -0
  52. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.cloudwatch-disabled.ts +20 -0
  53. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.cognito-authorizer.ts +48 -0
  54. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.cors-allow-multiple-origins.ts +35 -0
  55. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.cors.ts +42 -0
  56. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.domain-name.ts +210 -0
  57. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-api-nonproxy.ts +45 -0
  58. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-api.latebound-deploymentstage.ts +40 -0
  59. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-api.ts +49 -0
  60. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.method-grant-execute.ts +18 -0
  61. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.request-authorizer.lit.ts +65 -0
  62. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi-cloudwatch-removal-policy.ts +20 -0
  63. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi-default-apikey.ts +36 -0
  64. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi-import.lit.ts +130 -0
  65. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi-ip-address-type.ts +62 -0
  66. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi-metrics.ts +34 -0
  67. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi.access-log-firehose.ts +65 -0
  68. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi.access-log.ts +47 -0
  69. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi.books.ts +75 -0
  70. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi.defaults.ts +16 -0
  71. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi.multistack.ts +54 -0
  72. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi.multiuse.ts +42 -0
  73. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi.ts +107 -0
  74. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.restapi.vpc-endpoint.ts +163 -0
  75. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.spec-restapi-endpointconfiguration.ts +27 -0
  76. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.spec-restapi.import-deploymentstage.ts +74 -0
  77. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.spec-restapi.ts +100 -0
  78. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.stepfunctions-api-without-default-method-responses.ts +37 -0
  79. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.stepfunctions-api.ts +58 -0
  80. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.stepfunctions-startexecution-without-default-method-responses.ts +44 -0
  81. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.stepfunctions-startexecution.ts +51 -0
  82. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.token-authorizer-iam-role.ts +58 -0
  83. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.token-authorizer.ts +132 -0
  84. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.usage-plan.multikey.ts +20 -0
  85. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.usage-plan.sharing.ts +37 -0
  86. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/README.md +591 -0
  87. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-apikey.ts +13 -0
  88. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-domain-name.ts +51 -0
  89. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-dualstack.ts +17 -0
  90. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-grant-invoke.ts +36 -0
  91. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api.ts +16 -0
  92. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.stage.ts +33 -0
  93. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/README.md +355 -0
  94. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.iam.ts +69 -0
  95. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.lambda.ts +75 -0
  96. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.user-pool.ts +59 -0
  97. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/README.md +453 -0
  98. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.add-subroute-integration.ts +117 -0
  99. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.alb.ts +48 -0
  100. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.aws.ts +74 -0
  101. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.http-proxy.ts +40 -0
  102. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-connect-disconnect-trigger.ts +85 -0
  103. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-proxy.ts +31 -0
  104. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda.ts +63 -0
  105. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.mock.ts +35 -0
  106. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.nlb.ts +40 -0
  107. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.route-response.ts +18 -0
  108. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.service-discovery.ts +27 -0
  109. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.sqs.ts +85 -0
  110. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.stepfunctions.ts +56 -0
  111. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appconfig/README.md +703 -0
  112. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appconfig/integ.application.ts +24 -0
  113. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appconfig/integ.configuration-kms.ts +31 -0
  114. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appconfig/integ.configuration.ts +294 -0
  115. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appconfig/integ.deployment-strategy.ts +23 -0
  116. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appconfig/integ.environment-grant.ts +24 -0
  117. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appconfig/integ.environment.ts +87 -0
  118. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appconfig/integ.extension.ts +130 -0
  119. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appconfig/integ.multi-config-env.ts +44 -0
  120. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-applicationautoscaling/README.md +266 -0
  121. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appmesh/README.md +944 -0
  122. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appmesh/integ.mesh-port-match.ts +121 -0
  123. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appmesh/integ.mesh.ts +431 -0
  124. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/README.md +1423 -0
  125. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.api-import.ts +90 -0
  126. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-channel-namespace.ts +103 -0
  127. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-disable-introspection.ts +23 -0
  128. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-event-api.ts +307 -0
  129. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-api-key-auth.ts +91 -0
  130. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-cognito-auth.ts +116 -0
  131. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-dynamodb.ts +124 -0
  132. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-eventbridge.ts +89 -0
  133. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-grants.ts +176 -0
  134. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-http.ts +101 -0
  135. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-iam-auth.ts +93 -0
  136. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-lambda-auth.ts +122 -0
  137. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-lambda-direct-async.ts +84 -0
  138. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-lambda-direct.ts +90 -0
  139. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-lambda.ts +84 -0
  140. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-opensearch.ts +132 -0
  141. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventapi-rds.ts +167 -0
  142. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-eventbridge.ts +30 -0
  143. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-function-max-batch-size.ts +37 -0
  144. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-global-api.ts +23 -0
  145. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-lambda.ts +87 -0
  146. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-limit-configs.ts +24 -0
  147. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-logmetrics.ts +33 -0
  148. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-merged-api-arn-flag-enabled.ts +52 -0
  149. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-merged-api.ts +52 -0
  150. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-none.ts +22 -0
  151. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-owner-contact.ts +21 -0
  152. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-private-api.ts +23 -0
  153. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.appsync-source-api-association.ts +75 -0
  154. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.auth-apikey.ts +63 -0
  155. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.environment-variables.ts +21 -0
  156. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-elasticsearch.ts +66 -0
  157. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-field-level-log.ts +19 -0
  158. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-grant-imported-api.ts +90 -0
  159. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-iam.ts +115 -0
  160. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-lambda-permission.ts +61 -0
  161. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-opensearch.ts +82 -0
  162. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-rds-serverlessv2.ts +133 -0
  163. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql.ts +312 -0
  164. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.js-resolver.ts +117 -0
  165. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.lambda-auth.ts +66 -0
  166. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.log-retention.ts +39 -0
  167. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/README.md +836 -0
  168. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.amazonlinux2.ts +21 -0
  169. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-capacity-distribution-strategy.ts +26 -0
  170. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-capacity-rebalance.ts +26 -0
  171. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-instance-maintenance-policy.ts +27 -0
  172. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-instance-termination-policy.ts +62 -0
  173. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-keypair.ts +28 -0
  174. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-lc.ts +102 -0
  175. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-lt.ts +132 -0
  176. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-step-scaling.ts +49 -0
  177. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-update-policy.ts +26 -0
  178. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-w-classic-loadbalancer.ts +32 -0
  179. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-w-elbv2.ts +99 -0
  180. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.capacity.ts +43 -0
  181. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.custom-scaling.ts +44 -0
  182. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.external-role.ts +28 -0
  183. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.health-checks.ts +56 -0
  184. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.role-target-hook.ts +79 -0
  185. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.spot-instances.ts +21 -0
  186. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.step-scaling-with-cooldown.ts +39 -0
  187. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.warm-pool.ts +28 -0
  188. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling-common/README.md +8 -0
  189. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling-hooktargets/README.md +18 -0
  190. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling-hooktargets/integ.queue-hook.ts +80 -0
  191. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/README.md +258 -0
  192. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/integ.backup-selection.ts +64 -0
  193. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/integ.backup.ts +69 -0
  194. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/README.md +716 -0
  195. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.batch-unique-name.ts +41 -0
  196. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.ecs-job-definition.ts +111 -0
  197. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.eks-job-definition.ts +60 -0
  198. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.grants.ts +37 -0
  199. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.job-queue-job-state-time-limit-actions.ts +42 -0
  200. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.job-queue.ts +47 -0
  201. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.managed-compute-environment.ts +119 -0
  202. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.multinode-job-definition.ts +50 -0
  203. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.unmanaged-compute-environment.ts +27 -0
  204. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-bedrock/README.md +36 -0
  205. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-certificatemanager/README.md +214 -0
  206. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-certificatemanager/integ.certificate-key-algorithm.ts +50 -0
  207. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-certificatemanager/integ.certificate-name.ts +35 -0
  208. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-certificatemanager/integ.dns-validated-certificate.ts +54 -0
  209. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-chatbot/README.md +66 -0
  210. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-chatbot/integ.chatbot-guardrails.ts +24 -0
  211. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-chatbot/integ.chatbot-logretention.ts +32 -0
  212. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-chatbot/integ.chatbot-user-role-required.ts +16 -0
  213. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-chatbot/integ.chatbot.ts +31 -0
  214. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/README.md +4 -0
  215. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-cross-region-references.ts +101 -0
  216. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-node-18.ts +60 -0
  217. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-service-timeout.ts +35 -0
  218. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources.ts +56 -0
  219. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-deps.ts +79 -0
  220. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.nested-stack.ts +73 -0
  221. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.nested-stacks-assets.ts +35 -0
  222. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.nested-stacks-multi-refs.ts +30 -0
  223. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.nested-stacks-multi.ts +29 -0
  224. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.nested-stacks-nested-export-to-sibling.ts +19 -0
  225. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.nested-stacks-refs1.ts +39 -0
  226. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.nested-stacks-refs2.ts +42 -0
  227. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.nested-stacks-refs3.ts +41 -0
  228. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/README.md +1253 -0
  229. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-bucket-logging.ts +55 -0
  230. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-cross-region-cert.ts +55 -0
  231. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-custom-s3.ts +45 -0
  232. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-custom.ts +27 -0
  233. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-empty-root.ts +28 -0
  234. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-failover.ts +21 -0
  235. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-geo-restrictions.ts +25 -0
  236. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-ipv6-disabled.ts +26 -0
  237. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-key-group.ts +25 -0
  238. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-lambda-association.ts +46 -0
  239. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-s3.ts +31 -0
  240. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-security-policy.ts +32 -0
  241. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-vpc-origin.ts +75 -0
  242. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront-with-webacl.ts +35 -0
  243. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.cloudfront.ts +25 -0
  244. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-additional-metrics.ts +44 -0
  245. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-basic.ts +25 -0
  246. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-default-metrics.ts +41 -0
  247. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-extensive.ts +26 -0
  248. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-function-autopublish.ts +17 -0
  249. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-function-runtime.ts +43 -0
  250. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-function.ts +31 -0
  251. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-grpc.ts +23 -0
  252. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-http-version.ts +30 -0
  253. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-key-group.ts +32 -0
  254. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-lambda-cross-region.ts +50 -0
  255. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-lambda.ts +31 -0
  256. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-logbucket.ts +26 -0
  257. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-origin-id.ts +21 -0
  258. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-origin-shield.ts +21 -0
  259. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.distribution-policies.ts +76 -0
  260. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.function-key-value-store-association.ts +23 -0
  261. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.key-value-store-frominline.ts +28 -0
  262. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.key-value-store.ts +18 -0
  263. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/integ.realtime-log-config.ts +30 -0
  264. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md +846 -0
  265. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-oac-alias.ts +102 -0
  266. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-oac-custom.ts +106 -0
  267. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-oac.ts +98 -0
  268. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin.ts +31 -0
  269. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.http-origin.ts +13 -0
  270. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.load-balancer-origin.ts +17 -0
  271. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-group-selection-criteria.ts +35 -0
  272. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-group.ts +27 -0
  273. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.rest-api-origin-custom-origin-path.ts +20 -0
  274. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.rest-api-origin.ts +20 -0
  275. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.s3-bucket-origin-default.ts +39 -0
  276. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.s3-bucket-origin-oai.ts +53 -0
  277. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.s3-encrypted-bucket-origin-oac.ts +43 -0
  278. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.s3-origin-oac-list-access.ts +29 -0
  279. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.s3-origin-oac-read-versioned.ts +29 -0
  280. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.s3-origin-oac.ts +56 -0
  281. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.s3-origin-oai.ts +18 -0
  282. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.s3-origin.ts +15 -0
  283. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.s3-static-website-origin.ts +46 -0
  284. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.spec-rest-api-origin-custom-origin.ts +69 -0
  285. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.vpc-origin.ts +151 -0
  286. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/README.md +203 -0
  287. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/SAMPLE-EVENTS.md +68 -0
  288. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail-data-events-only.ts +31 -0
  289. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail-defaults.ts +14 -0
  290. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail-insight.ts +45 -0
  291. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail-supplied-bucket.lit.ts +55 -0
  292. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail.lit.ts +32 -0
  293. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/README.md +961 -0
  294. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.alarm-and-dashboard.ts +113 -0
  295. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.alarm-with-label.ts +32 -0
  296. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.anomaly-detection-alarm.ts +124 -0
  297. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.composite-alarm.ts +83 -0
  298. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-and-widget-with-start-and-end.ts +44 -0
  299. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-variables.ts +64 -0
  300. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-with-graphwidget-with-annotations.ts +79 -0
  301. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-with-graphwidget-with-statistic.ts +52 -0
  302. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard.ts +25 -0
  303. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.gauge-alarm.ts +33 -0
  304. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.gauge-widget.ts +41 -0
  305. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.math-alarm-and-dashboard.ts +77 -0
  306. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.metric-with-dimensions.ts +39 -0
  307. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.period-singlevaluewidget-and-dashboard.ts +28 -0
  308. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.sparkline-singlevaluewidget-and-dashboard.ts +28 -0
  309. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.table-widget.ts +36 -0
  310. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch-actions/README.md +69 -0
  311. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch-actions/integ.lambda-alarm-action.ts +98 -0
  312. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch-actions/integ.lambda-alarm-multiple-stepscalingpolicy.ts +91 -0
  313. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch-actions/integ.ssm-incident-alarm-action.ts +64 -0
  314. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/README.md +1018 -0
  315. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.asset-build-spec.ts +55 -0
  316. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.aws-deep-learning-container-build-image.ts +21 -0
  317. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.breakpoint.ts +35 -0
  318. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.caching.ts +28 -0
  319. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.defaults.lit.ts +29 -0
  320. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.docker-asset.lit.ts +34 -0
  321. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.docker-registry-arm.lit.ts +36 -0
  322. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.docker-registry.lit.ts +37 -0
  323. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.ecr.lit.ts +34 -0
  324. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.github-org-webhook.ts +30 -0
  325. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.github-webhook-batch.ts +29 -0
  326. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.github.ts +24 -0
  327. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-amazonlinux-image.lit.ts +28 -0
  328. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-auto-retry-limit.ts +32 -0
  329. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-bucket.ts +25 -0
  330. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-buildspec-artifacts.ts +28 -0
  331. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-file-system-location.ts +38 -0
  332. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-attribute-based-compute.ts +77 -0
  333. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet.ts +61 -0
  334. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-linux-arm-lambda-image.lit.ts +41 -0
  335. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-linux-arm.ts +48 -0
  336. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-linux-lambda-image.lit.ts +41 -0
  337. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-logging.ts +25 -0
  338. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-macos-fleet.ts +62 -0
  339. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-notification.ts +25 -0
  340. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-secondary-sources-artifacts.ts +35 -0
  341. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-standard-image.ts +32 -0
  342. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-visibility.ts +33 -0
  343. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-vpc.ts +34 -0
  344. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-windows-2019-fleet.ts +62 -0
  345. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-windows-2022-fleet.ts +62 -0
  346. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-windows-image.ts +33 -0
  347. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.report-group-delete-reports.ts +42 -0
  348. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.report-group.ts +49 -0
  349. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codecommit/README.md +104 -0
  350. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codecommit/integ.codecommit-code-asset-zip.ts +13 -0
  351. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codecommit/integ.codecommit-code-asset.ts +13 -0
  352. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codecommit/integ.codecommit-events.ts +24 -0
  353. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codecommit/integ.repository-encryption.ts +19 -0
  354. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codecommit/integ.repository-notification.ts +19 -0
  355. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codecommit/test.md +1 -0
  356. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codedeploy/README.md +784 -0
  357. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codedeploy/integ.deployment-config.ts +30 -0
  358. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codedeploy/integ.deployment-group-multiple-load-balancers.ts +54 -0
  359. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codedeploy/integ.deployment-group-zonal-config.ts +62 -0
  360. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codedeploy/integ.deployment-group.ts +62 -0
  361. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codeguruprofiler/README.md +37 -0
  362. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codeguruprofiler/integ.profiler-group-import-functions.ts +73 -0
  363. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codeguruprofiler/integ.profiler-group.ts +28 -0
  364. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline/README.md +925 -0
  365. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/README.md +1509 -0
  366. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.cfn-template-from-repo.lit.ts +68 -0
  367. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.codepipeline-with-nested-stack.ts +100 -0
  368. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.cross-account-pipeline-cfn-action.ts +159 -0
  369. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.cross-account-pipeline-sfn-action.ts +172 -0
  370. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.lambda-deployed-through-codepipeline.lit.ts +141 -0
  371. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.lambda-pipeline.ts +55 -0
  372. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-alexa-deploy.ts +53 -0
  373. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-cfn-cross-region.ts +55 -0
  374. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-cfn-with-action-role.ts +61 -0
  375. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-cfn.ts +74 -0
  376. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-code-build-batch.ts +60 -0
  377. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-code-build-multiple-inputs-outputs.ts +89 -0
  378. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-code-commit-build.ts +70 -0
  379. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-code-commit-custom-event.ts +120 -0
  380. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-code-commit-main.ts +45 -0
  381. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-code-commit.ts +42 -0
  382. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-code-deploy-ecs.ts +56 -0
  383. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-code-deploy.ts +56 -0
  384. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-commands.ts +129 -0
  385. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecr-build-and-publish-private.ts +108 -0
  386. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecr-build-and-publish-public.ts +113 -0
  387. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecr-image-scan-action.ts +110 -0
  388. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecr-source.ts +70 -0
  389. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecs-deploy.ts +119 -0
  390. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-ecs-separate-source.lit.ts +222 -0
  391. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts +155 -0
  392. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-events.ts +72 -0
  393. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-invoke-action.ts +104 -0
  394. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-jenkins.ts +69 -0
  395. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-manual-approval.ts +44 -0
  396. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-s3-deploy.ts +130 -0
  397. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-source-code-scan-action.ts +112 -0
  398. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-stepfunctions.ts +49 -0
  399. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-type-v2-by-default.ts +64 -0
  400. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-type-v2.ts +63 -0
  401. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-use-pipeline-role-for-actions.ts +62 -0
  402. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-with-codestarnotifications.ts +70 -0
  403. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-with-pipeline-triggers.ts +217 -0
  404. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-with-pipeline-variables.ts +98 -0
  405. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-with-replication.ts +68 -0
  406. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-with-stage-conditions.ts +135 -0
  407. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.source-bucket-events-cross-stack-same-env.ts +53 -0
  408. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.stacksets.ts +89 -0
  409. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codestarnotifications/README.md +72 -0
  410. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/README.md +1271 -0
  411. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-client-analytics.ts +95 -0
  412. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-client-default-redirect-uri.ts +21 -0
  413. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-client-enable-propagate-additional-data.ts +25 -0
  414. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-client-explicit-props.ts +70 -0
  415. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-client-secret.ts +62 -0
  416. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-custom-sender.ts +52 -0
  417. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-domain-cfdist.ts +36 -0
  418. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-domain-managed-login.ts +23 -0
  419. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-domain-signinurl.ts +33 -0
  420. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-explicit-props.ts +107 -0
  421. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-feature-plans.ts +23 -0
  422. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-group.ts +35 -0
  423. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-idp.amazon.ts +41 -0
  424. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-idp.apple.ts +42 -0
  425. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-idp.google.ts +58 -0
  426. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-idp.oidc.ts +46 -0
  427. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-idp.saml.ts +58 -0
  428. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-link-custom-placeholder.ts +32 -0
  429. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-mfa-email.ts +42 -0
  430. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-password-history-size.ts +16 -0
  431. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-passwordless.ts +31 -0
  432. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-pre-token-generation-v2.ts +37 -0
  433. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-pre-token-generation.ts +44 -0
  434. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-resource-server.ts +45 -0
  435. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-ses-email.ts +24 -0
  436. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-signup-code.ts +51 -0
  437. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-signup-link.ts +57 -0
  438. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-threat-protection.ts +20 -0
  439. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool.ts +15 -0
  440. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito-identitypool/README.md +368 -0
  441. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito-identitypool/integ.identitypool.ts +109 -0
  442. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-config/README.md +298 -0
  443. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-config/integ.custompolicy.ts +42 -0
  444. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-config/integ.rule-evaluation-mode.ts +59 -0
  445. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-config/integ.rule.ts +53 -0
  446. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-config/integ.scoped-rule.ts +30 -0
  447. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/README.md +280 -0
  448. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-copy-tags-to-snapshot.ts +38 -0
  449. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-instance-ca-certificate.ts +30 -0
  450. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-removal-policy-snapshot.ts +58 -0
  451. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-rotation.lit.ts +31 -0
  452. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-storage-type.ts +28 -0
  453. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster.ts +55 -0
  454. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/README.md +968 -0
  455. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/TABLE_V1_API.md +316 -0
  456. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/index.md +28 -0
  457. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.autoscaling.lit.ts +31 -0
  458. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.max-request-units.ts +41 -0
  459. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.ondemand.ts +60 -0
  460. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.pitr.ts +37 -0
  461. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.policy-ff.ts +46 -0
  462. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.policy.ts +43 -0
  463. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.warm-throughput.ts +48 -0
  464. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.alarm-metrics.ts +42 -0
  465. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.contirubtor-insights-for-gsi.ts +39 -0
  466. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.deletion-protection.ts +45 -0
  467. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.kinesis-stream.ts +17 -0
  468. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.mixed-key-gsi.ts +32 -0
  469. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.ondemand.ts +137 -0
  470. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.pitr.ts +30 -0
  471. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.policy.ts +50 -0
  472. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.sse.ts +144 -0
  473. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.ts +152 -0
  474. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.warm-throughput.ts +40 -0
  475. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.global-replicas-provisioned.ts +32 -0
  476. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.global.ts +48 -0
  477. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.import-source.ts +126 -0
  478. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-skip-replica-deletion.ts +41 -0
  479. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-global.ts +82 -0
  480. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-replica.ts +50 -0
  481. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-with-customized-role.ts +70 -0
  482. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md +2621 -0
  483. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.bastion-host-arm-support.ts +28 -0
  484. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.bastion-host-disable-al2023-feature-flag.ts +31 -0
  485. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.bastion-host-userdatacausesreplacement.ts +38 -0
  486. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.bastion-host.ts +21 -0
  487. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.client-vpn-endpoint.ts +83 -0
  488. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.core-cross-stack-string-list-references.ts +75 -0
  489. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.enable-sum-timeout-instance-init.ts +76 -0
  490. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.graviton3.ts +39 -0
  491. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.import-default-vpc.lit.ts +38 -0
  492. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-credit.ts +36 -0
  493. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-disable-api-termination.ts +32 -0
  494. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-ebs-optimized.ts +41 -0
  495. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-iam-profile.ts +40 -0
  496. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-init-multiple.ts +75 -0
  497. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-init.ts +76 -0
  498. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-ipv6-address-count.ts +37 -0
  499. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-multipart-userdata.ts +70 -0
  500. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-nitro-enclaves-hibernation.ts +49 -0
  501. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-placement-group.ts +38 -0
  502. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-public-and-privateip.ts +52 -0
  503. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance-public.ts +57 -0
  504. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.instance.ts +44 -0
  505. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.key-pair.ts +24 -0
  506. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.launch-template.ts +60 -0
  507. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.machine-image.ts +66 -0
  508. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.nat-gateway-provider.ts +33 -0
  509. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.nat-instance-credit.ts +27 -0
  510. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.nat-instances-v2-arm.ts +54 -0
  511. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.nat-instances-v2-custom.ts +89 -0
  512. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.nat-instances-v2.ts +54 -0
  513. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.nat-instances-with-public-ip.ts +36 -0
  514. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.nat-instances.lit.ts +40 -0
  515. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.placement-group.d.ts +1 -0
  516. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.placement-group.ts +44 -0
  517. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.ports.ts +34 -0
  518. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.prefix-list-lookup.ts +23 -0
  519. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.prefix-list.ts +31 -0
  520. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.reserved-private-subnet.ts +42 -0
  521. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.reserved-public-subnet.ts +34 -0
  522. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.share-vpcs.lit.ts +66 -0
  523. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.userdata.ts +20 -0
  524. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.volume.ts +22 -0
  525. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-azs.ts +13 -0
  526. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-dual-stack-ec2.ts +84 -0
  527. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-dual-stack.ts +34 -0
  528. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-egress-only-igw-feature-flag.ts +60 -0
  529. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-endpoint-service.ts +32 -0
  530. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-endpoint.lit.ts +62 -0
  531. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-filter-subnets.ts +41 -0
  532. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs-customformat.ts +92 -0
  533. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs-from-transit-gateway.ts +33 -0
  534. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs-interval.ts +80 -0
  535. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs-kinesis.ts +61 -0
  536. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs.ts +145 -0
  537. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-gateway.ts +29 -0
  538. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-global-endpoint.ts +63 -0
  539. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-ipam.ts +84 -0
  540. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-ipv6.ts +34 -0
  541. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-lookup.ts +50 -0
  542. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-networkacl.ts +33 -0
  543. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-no-default-igw.ts +23 -0
  544. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-reserved-azs.ts +17 -0
  545. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-restrict-default-sg.ts +28 -0
  546. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc.ts +27 -0
  547. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpn-pre-shared-key-token.ts +31 -0
  548. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpn-two-tunnels.ts +32 -0
  549. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpn.ts +31 -0
  550. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/README.md +250 -0
  551. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.basic.ts +50 -0
  552. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.grant.ts +26 -0
  553. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.imagescan.ts +21 -0
  554. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.repository-auto-delete-images.ts +21 -0
  555. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.repository-lookup.ts +43 -0
  556. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/README.md +221 -0
  557. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.assets-docker.ts +68 -0
  558. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.assets-tarball.ts +29 -0
  559. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.nested-stacks-docker.ts +32 -0
  560. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/CONTRIBUTING.md +51 -0
  561. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md +2075 -0
  562. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.add-docker-label.ts +46 -0
  563. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.add-environment-variable.ts +37 -0
  564. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.app-mesh-proxy-config.ts +56 -0
  565. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.availability-zone-rebalancing.ts +37 -0
  566. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.awslogs-driver.ts +51 -0
  567. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.bottlerocket.ts +24 -0
  568. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.capacity-provider-managed-draining.ts +66 -0
  569. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.capacity-provider.ts +55 -0
  570. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.capacity-providers.ts +37 -0
  571. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.clb-host-nw.ts +50 -0
  572. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cloudmap-container-port.ts +78 -0
  573. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster-amazonlinux2-neuron-ami.ts +40 -0
  574. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster-bottlerocket-nvidia-ami.ts +31 -0
  575. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster-encrypt-ephemeral-storage.ts +34 -0
  576. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster-encrypt-storage.ts +31 -0
  577. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster-enhanced-container-insights.ts +28 -0
  578. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster-grant-task-protection.ts +20 -0
  579. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster-imported.ts +46 -0
  580. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster-windows-server-ami.ts +64 -0
  581. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster.amazonlinux2023-ami.ts +66 -0
  582. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.container-port-range.ts +35 -0
  583. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.custom-task-revision.ts +39 -0
  584. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.daemon-service.ts +31 -0
  585. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.default-capacity-provider.ts +57 -0
  586. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.deployment-alarms.ts +70 -0
  587. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.disable-circuit-breaker.ts +34 -0
  588. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.ebs-taskattach.ts +81 -0
  589. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.enable-execute-command.ts +70 -0
  590. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.environment-file.ts +86 -0
  591. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.exec-command.ts +61 -0
  592. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.external-deploy-controller.ts +38 -0
  593. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.fargate-with-efs.ts +39 -0
  594. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.firelens-cloudwatch.ts +45 -0
  595. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.firelens-s3-config.ts +78 -0
  596. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.fluentd-driver.ts +71 -0
  597. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.graviton-bottlerocket.ts +21 -0
  598. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.graviton.ts +23 -0
  599. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.lb-awsvpc-nw.ts +54 -0
  600. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.lb-bridge-nw.ts +54 -0
  601. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.nlb-awsvpc-nw.ts +50 -0
  602. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.placement-constraint-default-empty.ts +43 -0
  603. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.placement-strategies.ts +45 -0
  604. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.pseudo-terminal.ts +42 -0
  605. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.runtime.ts +55 -0
  606. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.sd-awsvpc-nw.ts +53 -0
  607. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.sd-bridge-nw.ts +52 -0
  608. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.secret-json-field.ts +32 -0
  609. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.secret.ts +32 -0
  610. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.service-connect.ts +115 -0
  611. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.spot-drain.ts +51 -0
  612. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.swap-parameters.ts +54 -0
  613. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.task-definition-add-interactive-container.ts +22 -0
  614. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.task-definition-container-credentialspecs.ts +51 -0
  615. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.task-definition-container-restart-policy.ts +21 -0
  616. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.task-definition-container-ulimits.ts +25 -0
  617. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.task-definition-container-version-consistency.ts +17 -0
  618. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.task-definition-enable-fault-injection.ts +27 -0
  619. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.task-definition-placement-constraints.ts +39 -0
  620. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.task-definition-without-container-level-memory.ts +23 -0
  621. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/CONTRIBUTING.md +1 -0
  622. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/README.md +1293 -0
  623. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-ecs-service-command-entry-point.ts +69 -0
  624. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-command-entry-point.ts +43 -0
  625. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-custom-storage.ts +34 -0
  626. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-health-check.ts +33 -0
  627. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-https.ts +40 -0
  628. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-idle-timeout.ts +31 -0
  629. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-ipv6.ts +36 -0
  630. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.application-load-balanced-ecs-service.ts +73 -0
  631. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.asset-image.ts +33 -0
  632. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.circuit-breaker-load-balanced-fargate-service.ts +26 -0
  633. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.circuit-breaker-no-deployment-controller-fargate-service.ts +25 -0
  634. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.circuit-breaker-queue-processing-fargate-service.ts +27 -0
  635. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.container-cpu-memory.ts +27 -0
  636. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.executionrole.ts +34 -0
  637. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.healthchecks-multiple-application-load-balanced-ecs-service.ts +94 -0
  638. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.healthchecks-multiple-application-load-balanced-fargate-service.ts +71 -0
  639. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.healthchecks-multiple-network-load-balanced-ecs-service.ts +76 -0
  640. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.healthchecks-multiple-network-load-balanced-fargate-service.ts +55 -0
  641. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.l3-autocreate.ts +35 -0
  642. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.l3-capacity-provider-strategies.ts +63 -0
  643. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.l3-vpconly.ts +37 -0
  644. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.l3.ts +38 -0
  645. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.multiple-application-load-balanced-ecs-service-idle-timeout.ts +94 -0
  646. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.multiple-application-load-balanced-ecs-service.ts +55 -0
  647. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.multiple-network-load-balanced-fargate-service.ts +53 -0
  648. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.network-load-balanced-ecs-service.ts +72 -0
  649. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.network-load-balanced-fargate-service-custom-health.ts +44 -0
  650. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.nlb-ipv6.ts +52 -0
  651. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.nlb-sg.ts +44 -0
  652. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.queue-processing-fargate-service-custom-cpu-scaling.ts +28 -0
  653. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.queue-processing-fargate-service-grace-period.ts +27 -0
  654. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.queue-processing-fargate-service-health-check.ts +32 -0
  655. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.queue-processing-fargate-service-isolated.ts +60 -0
  656. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.queue-processing-fargate-service-no-cpu-scaling.ts +28 -0
  657. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.queue-processing-fargate-service-task-definition-with-cooldown.ts +31 -0
  658. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.queue-processing-fargate-service-task-definition.ts +39 -0
  659. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.queue-processing-fargate-service.ts +26 -0
  660. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.runtime-platform-application-load-balanced-fargate-service.ts +35 -0
  661. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.scheduled-ecs-task.ts +79 -0
  662. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.scheduled-fargate-task.ts +67 -0
  663. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.special-listener.ts +38 -0
  664. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.tls-network-load-balanced-ecs-service.ts +47 -0
  665. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.tls-network-load-balanced-fargate-service.ts +34 -0
  666. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/README.md +301 -0
  667. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs-filesystem-one-zone.ts +27 -0
  668. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs-filesystem-policy.ts +54 -0
  669. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs-filesystem-protection.ts +22 -0
  670. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs-filesystem-replication.ts +38 -0
  671. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs-from-imported-subnet.ts +34 -0
  672. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs-transition.ts +21 -0
  673. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs.permission.ts +97 -0
  674. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-efs/integ.efs.ts +33 -0
  675. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/MANUAL_TEST.md +58 -0
  676. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/README.md +2058 -0
  677. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.alb-controller-authapi.ts +44 -0
  678. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.alb-controller.ts +87 -0
  679. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-addon.ts +38 -0
  680. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-al2023-nodegroup.ts +68 -0
  681. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-bottlerocket-ng.ts +56 -0
  682. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-handlers-vpc.ts +34 -0
  683. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-imported.ts +230 -0
  684. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-ipv6.ts +395 -0
  685. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-private-endpoint.ts +58 -0
  686. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-tags.ts +44 -0
  687. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster.ts +387 -0
  688. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-helm-asset.ts +137 -0
  689. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-hybrid-nodes.ts +57 -0
  690. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-inference-nodegroup.ts +54 -0
  691. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-inference.ts +56 -0
  692. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-oidc-provider.ts +21 -0
  693. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-pod-identities.ts +80 -0
  694. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-service-account-sdk-call.ts +91 -0
  695. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-standard-access-entry.ts +61 -0
  696. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-subnet-updates.ts +36 -0
  697. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-windows-ng.ts +64 -0
  698. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.fargate-cluster.ts +54 -0
  699. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.nodegroup-repair-config.ts +50 -0
  700. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancing/README.md +61 -0
  701. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancing/integ.elb.ts +26 -0
  702. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancing/integ.instanceTarget.elb.ts +54 -0
  703. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md +1145 -0
  704. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-lambda-multi-value-headers.ts +91 -0
  705. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-mtls.ts +167 -0
  706. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-target-group-cross-zone.ts +25 -0
  707. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-target-group-ip-address-type.ts +40 -0
  708. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.attributes.ts +52 -0
  709. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.dualstack-without-public-ipv4.ts +126 -0
  710. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.dualstack.ts +121 -0
  711. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.extended.log.ts +63 -0
  712. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.log.imported-bucket.ts +49 -0
  713. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.log.ts +47 -0
  714. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.minimum-capacity-unit.ts +30 -0
  715. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.oidc.ts +226 -0
  716. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.ts +54 -0
  717. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.two-target-groups.ts +32 -0
  718. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.weighte-random-algorithm.ts +39 -0
  719. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb2.ts +58 -0
  720. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.connection-termination.nlb.ts +41 -0
  721. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.crosszone.ts +27 -0
  722. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-enable-prefix-for-ipv6-nat.ts +73 -0
  723. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-listener-tcp-idle-timeout.ts +33 -0
  724. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-lookup.ts +121 -0
  725. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-subnet-mapping.ts +113 -0
  726. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-target-group-cross-zone.ts +25 -0
  727. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-target-group-ip-address-type.ts +40 -0
  728. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.attributes.ts +24 -0
  729. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.dualstack.internal.ts +70 -0
  730. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.dualstack.internet-facing.ts +99 -0
  731. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.enforce-sg-inbound-rules.ts +23 -0
  732. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.minimum-capacity-unit.ts +32 -0
  733. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.ts +74 -0
  734. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.vpc-endpoint-service.ts +50 -0
  735. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-actions/README.md +73 -0
  736. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-actions/integ.cognito.ts +246 -0
  737. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-targets/README.md +4 -0
  738. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-targets/integ.alb-listner-target.ts +36 -0
  739. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-targets/integ.alb-target.ts +50 -0
  740. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-targets/integ.lambda-target.ts +61 -0
  741. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/README.md +441 -0
  742. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/integ.elasticsearch-vpc.ts +41 -0
  743. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/integ.elasticsearch.advancedsecurity.ts +29 -0
  744. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/integ.elasticsearch.custom-kms-key.ts +57 -0
  745. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/integ.elasticsearch.ts +54 -0
  746. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/integ.elasticsearch.ultrawarm.ts +22 -0
  747. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticsearch/integ.elasticsearch.unsignedbasicauth.ts +28 -0
  748. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/README.md +337 -0
  749. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.archive.ts +21 -0
  750. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.connection.ts +39 -0
  751. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.cross-account-rule.ts +97 -0
  752. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus-cross-account-grants.ts +123 -0
  753. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus-customer-managed-key.ts +17 -0
  754. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus-grants.ts +180 -0
  755. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus.ts +35 -0
  756. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.rule.ts +94 -0
  757. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/README.md +662 -0
  758. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.api-destination.ts +83 -0
  759. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.api-gateway.ts +79 -0
  760. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.api-gatewayv2.ts +32 -0
  761. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.appsync-events.ts +48 -0
  762. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.aws-api.ts +140 -0
  763. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.ecs-imported-task-def.ts +54 -0
  764. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.event-bus.ts +32 -0
  765. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.event-ec2-task.ts +70 -0
  766. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.event-fargate-task.ts +91 -0
  767. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.events.ts +50 -0
  768. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.job-definition-events.d.ts +1 -0
  769. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.job-definition-events.ts +45 -0
  770. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-firehose-stream.ts +33 -0
  771. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-stream-customer-key.ts +27 -0
  772. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-stream-dead-letter-queue.ts +28 -0
  773. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-stream.ts +22 -0
  774. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.log-group-from-object-v2.ts +42 -0
  775. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.log-group.ts +92 -0
  776. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.pipeline-event-target.ts +85 -0
  777. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.project-events.ts +57 -0
  778. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.redshift-query.ts +50 -0
  779. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.sns-event-rule-target-custom-role.ts +39 -0
  780. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.sns-event-rule-target-role-enabled.ts +35 -0
  781. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.sns-event-rule-target.ts +31 -0
  782. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.sqs-event-rule-target.ts +33 -0
  783. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-fsx/README.md +281 -0
  784. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-fsx/integ.lustre-file-system-automatic-backup.ts +31 -0
  785. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-fsx/integ.lustre-file-system-file-system-type-version.ts +28 -0
  786. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-fsx/integ.lustre-file-system-maintenance-time.ts +30 -0
  787. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-fsx/integ.lustre-file-system-storage-type.ts +73 -0
  788. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-fsx/integ.lustre-file-system-with-s3.ts +36 -0
  789. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-fsx/integ.lustre-file-system.ts +36 -0
  790. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-globalaccelerator/README.md +195 -0
  791. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-globalaccelerator/integ.globalaccelerator-endpoints.ts +41 -0
  792. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-globalaccelerator/integ.globalaccelerator-ip-address-type.ts +18 -0
  793. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-globalaccelerator/integ.globalaccelerator-unique-name.ts +16 -0
  794. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-globalaccelerator-endpoints/README.md +10 -0
  795. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-globalaccelerator-endpoints/integ.globalaccelerator.ts +68 -0
  796. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/README.md +963 -0
  797. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.access-key.ts +17 -0
  798. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.composite-principal.ts +24 -0
  799. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.condition-with-ref.ts +32 -0
  800. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.customize-role.ts +36 -0
  801. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.customize-roles-restapi.ts +42 -0
  802. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.emr-service-principal-cn-partition.ts +106 -0
  803. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.group.ts +17 -0
  804. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.imported-role.ts +82 -0
  805. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.instance-profile.ts +79 -0
  806. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.managed-policy.ts +39 -0
  807. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.oidc-provider-native.ts +94 -0
  808. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.oidc-provider-reject-unauthorized-connection.ts +45 -0
  809. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.oidc-provider.ts +45 -0
  810. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.permissions-boundary.ts +33 -0
  811. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.policy.ts +26 -0
  812. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.principal-with-conditions-and-tags.ts +23 -0
  813. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.principal-with-conditions.ts +23 -0
  814. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.role-from-lookup.ts +35 -0
  815. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.role.ts +38 -0
  816. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.saml-provider.ts +28 -0
  817. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.user-import.ts +30 -0
  818. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.user.ts +41 -0
  819. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.users-and-groups.ts +29 -0
  820. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/README.md +304 -0
  821. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.cross-account-stream-consumption.ts +52 -0
  822. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.resource-policy.ts +37 -0
  823. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream-consumer.ts +25 -0
  824. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream-dashboard.ts +57 -0
  825. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream.ts +14 -0
  826. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/README.md +524 -0
  827. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.delivery-stream.source-stream.ts +75 -0
  828. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.delivery-stream.ts +50 -0
  829. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.kinesis-stream-events-target.ts +65 -0
  830. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.s3-bucket.lit.ts +112 -0
  831. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/README.md +270 -0
  832. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-alias.ts +21 -0
  833. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-from-lookup-dummy.ts +21 -0
  834. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-grants.ts +22 -0
  835. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-hmac.ts +30 -0
  836. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-key-agreement.ts +19 -0
  837. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-multi-region.ts +19 -0
  838. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-rotation.ts +20 -0
  839. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key-sharing.lit.ts +44 -0
  840. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.key.ts +25 -0
  841. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md +1527 -0
  842. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.assets.file.ts +27 -0
  843. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.assets.lit.ts +27 -0
  844. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.autoscaling.lit.ts +70 -0
  845. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.binary-payload.ts +61 -0
  846. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.bundling.docker-opts.ts +60 -0
  847. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.bundling.ts +58 -0
  848. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.current-version.ts +36 -0
  849. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.function-url.ts +83 -0
  850. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-adot.ts +103 -0
  851. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-allow-all-ipv6-outbound.ts +29 -0
  852. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-circular-test.ts +43 -0
  853. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-customize-roles.ts +43 -0
  854. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-insights-mapping.ts +62 -0
  855. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-profiling.ts +38 -0
  856. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-recursive-loop.ts +36 -0
  857. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-snapstart.ts +44 -0
  858. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-sourceKMSKeyArn.ts +115 -0
  859. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-version-arn.ts +57 -0
  860. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda.docker-arm64.ts +23 -0
  861. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda.docker.ts +35 -0
  862. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda.filesystem.ts +168 -0
  863. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda.loggroup-tag-inherit.ts +39 -0
  864. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda.prov.concurrent.ts +75 -0
  865. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda.ts +61 -0
  866. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda_with_dualStack_vpc.ts +46 -0
  867. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.layer-version.lit.ts +39 -0
  868. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.log-retention.ts +36 -0
  869. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.logging-config.ts +82 -0
  870. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.params-and-secrets.ts +72 -0
  871. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.permissions.ts +43 -0
  872. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.ruby.file.ts +75 -0
  873. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime-management.ts +24 -0
  874. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.fromasset.ts +44 -0
  875. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.inlinecode.ts +81 -0
  876. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtimes.ts +21 -0
  877. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.vpc-lambda.ts +21 -0
  878. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-destinations/README.md +150 -0
  879. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-destinations/integ.destinations.ts +112 -0
  880. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-destinations/integ.lambda-chain.ts +87 -0
  881. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/README.md +453 -0
  882. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.dynamodb-with-boolean-filter.ts +45 -0
  883. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.dynamodb-with-filter-criteria.ts +74 -0
  884. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.dynamodb-with-metrics-config.ts +48 -0
  885. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.dynamodb.ts +38 -0
  886. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.kafka-selfmanaged.ts +144 -0
  887. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.kinesis-at-timestamp.ts +29 -0
  888. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.kinesis-stream-consumer.ts +34 -0
  889. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.kinesis-with-metrics-config.ts +40 -0
  890. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.kinesis.ts +30 -0
  891. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.kinesiswithdlq.ts +52 -0
  892. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.s3-onfailuire-destination.ts +138 -0
  893. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.s3.imported-bucket.ts +31 -0
  894. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.s3.ts +36 -0
  895. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.sns.ts +23 -0
  896. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.sqs-max-concurrency.ts +32 -0
  897. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.sqs-null-filter.ts +34 -0
  898. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.sqs-with-filter-criteria.ts +55 -0
  899. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.sqs-with-metrics-config.ts +41 -0
  900. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.sqs.ts +28 -0
  901. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/README.md +454 -0
  902. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.bundling-user.ts +37 -0
  903. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.compilations.ts +42 -0
  904. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-bun.ts +48 -0
  905. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-pnpm.ts +42 -0
  906. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies.ts +88 -0
  907. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.esbuildArgs.ts +37 -0
  908. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.esm.ts +31 -0
  909. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.function-exclude-smithy-models.ts +33 -0
  910. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.function.ts +115 -0
  911. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.latest.ts +46 -0
  912. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.modules.ts +66 -0
  913. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.nodejs.build.images.ts +55 -0
  914. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.specifycode.ts +50 -0
  915. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/README.md +487 -0
  916. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.expose-metric.ts +47 -0
  917. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-group-metrics.ts +25 -0
  918. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-group.ts +35 -0
  919. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-resource-policy-any-principal.ts +22 -0
  920. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-retention-retries.ts +40 -0
  921. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.log-retention.ts +29 -0
  922. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroup-grantread.ts +15 -0
  923. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroupclass.ts +64 -0
  924. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter-dimensions.ts +32 -0
  925. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter-unit.ts +34 -0
  926. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter.lit.ts +30 -0
  927. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.save-logs-insights-query-definition.ts +55 -0
  928. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.subscriptionfilter-distribution.ts +28 -0
  929. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.subscriptionfilter.ts +36 -0
  930. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs-destinations/README.md +7 -0
  931. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs-destinations/integ.firehose.ts +40 -0
  932. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs-destinations/integ.kinesis.ts +34 -0
  933. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs-destinations/integ.lambda.ts +96 -0
  934. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/README.md +561 -0
  935. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.advancedsecurity-with-saml.ts +41 -0
  936. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.advancedsecurity.ts +32 -0
  937. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.cognitodashboardsauth.ts +56 -0
  938. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.coldstorage.ts +30 -0
  939. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.custom-kms-key.ts +77 -0
  940. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.disable-logging.ts +29 -0
  941. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ebs.ts +34 -0
  942. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.gp3.ts +31 -0
  943. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ip-address-type.ts +37 -0
  944. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts +34 -0
  945. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.multiaz-with-standby.ts +32 -0
  946. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.nodeoptions.ts +50 -0
  947. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ts +69 -0
  948. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ultrawarm.ts +23 -0
  949. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.unsignedbasicauth.ts +33 -0
  950. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.vpc.ts +43 -0
  951. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.without-logs-resource-policy.ts +59 -0
  952. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md +1601 -0
  953. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/aurora-serverless-v2.md +241 -0
  954. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-applyimmediately.ts +30 -0
  955. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-availability-zone.ts +46 -0
  956. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api-to-imported-cluster.ts +39 -0
  957. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api.ts +35 -0
  958. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-database-insights.ts +33 -0
  959. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-dual.ts +57 -0
  960. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-enable-local-write-forwarding.ts +33 -0
  961. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-engine-lifecycle-support.ts +30 -0
  962. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-enhanced-monitoring.ts +21 -0
  963. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-instance-ca-certificate.ts +38 -0
  964. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-instance-id.ts +30 -0
  965. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-io.ts +45 -0
  966. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-kerberos.ts +46 -0
  967. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-limitless.ts +41 -0
  968. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-performance-insights.ts +40 -0
  969. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-public-subnets.ts +52 -0
  970. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-replication.ts +48 -0
  971. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-rotation.lit.ts +66 -0
  972. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-s3.mysql-8.ts +31 -0
  973. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-s3.mysql-engine-version.ts +31 -0
  974. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-s3.postgres.ts +39 -0
  975. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-s3.ts +48 -0
  976. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-serverless-v2-acu-0.ts +26 -0
  977. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-serverless-v2-acu.ts +26 -0
  978. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-serverless-v2.ts +72 -0
  979. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-snapshot.ts +136 -0
  980. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster.ts +103 -0
  981. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-applyimmediately.ts +23 -0
  982. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-ca-certificate.ts +25 -0
  983. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-create-grant.ts +41 -0
  984. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-dual.ts +43 -0
  985. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-from-generated-password.ts +27 -0
  986. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-gp3.ts +30 -0
  987. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-io2.ts +27 -0
  988. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-kerberos-without-domainRole.ts +34 -0
  989. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-kerberos.ts +46 -0
  990. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-s3-postgres.ts +23 -0
  991. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-s3.ts +23 -0
  992. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-with-metric.ts +43 -0
  993. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-with-parameter-group.ts +39 -0
  994. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance.lit.ts +120 -0
  995. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-mariadb.ts +45 -0
  996. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-sql-server.ts +52 -0
  997. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy.ts +89 -0
  998. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.read-replica-with-allocated-storage.ts +31 -0
  999. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.read-replica.ts +86 -0
  1000. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.rolling-instance-updates.ts +47 -0
  1001. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.serverless-cluster-no-vpc.ts +28 -0
  1002. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.serverless-cluster-scaling.ts +44 -0
  1003. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.serverless-cluster-secret-rotation-custom-names.ts +35 -0
  1004. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.serverless-cluster-secret-rotation.ts +33 -0
  1005. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.serverless-cluster.ts +46 -0
  1006. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md +599 -0
  1007. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.cidr-routing-config.ts +60 -0
  1008. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.cross-account-zone-delegation.ts +135 -0
  1009. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.delete-existing-record-set.ts +39 -0
  1010. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.dnssec.ts +23 -0
  1011. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.health-check.ts +305 -0
  1012. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.import-existing-record-as-target.ts +35 -0
  1013. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.latency-based-routing.ts +35 -0
  1014. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.multi-value-answer-routing.ts +29 -0
  1015. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.record-weight-from-cfnparameter.ts +44 -0
  1016. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.rename-cross-account-zone-delegation.ts +102 -0
  1017. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.route53.ts +98 -0
  1018. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.vpc-endpoint-service-domain-name.ts +68 -0
  1019. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.weighted-record.ts +37 -0
  1020. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-patterns/README.md +74 -0
  1021. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-patterns/integ.hosted-redirect-same-region.ts +38 -0
  1022. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-patterns/integ.hosted-redirect.ts +43 -0
  1023. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/README.md +266 -0
  1024. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.alb-alias-target.ts +39 -0
  1025. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.api-gateway-domain-name.ts +73 -0
  1026. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.appsync-target.ts +60 -0
  1027. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.bucket-website-target.ts +47 -0
  1028. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.classic-load-balancer-target.ts +60 -0
  1029. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.cloudfront-alias-target.ts +34 -0
  1030. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.elastic-beanstalk-environment-target.ts +147 -0
  1031. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.elastic-beanstalk-hostedzoneid.ts +95 -0
  1032. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.elastic-beanstalk-token-endpoint.ts +96 -0
  1033. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.globalaccelerator-alias-target.ts +42 -0
  1034. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.interface-vpc-endpoint-target.ts +38 -0
  1035. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.route53-record.ts +30 -0
  1036. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.userpool-domain-alias-target.ts +35 -0
  1037. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/README.md +1058 -0
  1038. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-acls.ts +25 -0
  1039. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-auto-delete-objects.ts +70 -0
  1040. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-block-access.ts +42 -0
  1041. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-cross-account-replication.ts +125 -0
  1042. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-encryption.ts +31 -0
  1043. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-grant-write.ts +24 -0
  1044. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-grantdelete-kms.ts +24 -0
  1045. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-import-server-access-logs.ts +37 -0
  1046. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-intelligent-tiering.ts +21 -0
  1047. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-inventory.ts +40 -0
  1048. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-legacy-naming.ts +39 -0
  1049. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-minimum-tls-version.ts +17 -0
  1050. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-object-lock.ts +19 -0
  1051. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-replication-multiple-sources.ts +127 -0
  1052. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-replication-use-custom-role.ts +128 -0
  1053. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-replication.ts +141 -0
  1054. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-server-access-logs-sse-kms.ts +27 -0
  1055. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket-sharing.ts +44 -0
  1056. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.domain-name.ts +25 -0
  1057. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.inventory.ts +27 -0
  1058. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.notifications.ts +22 -0
  1059. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.server-access-logs.ts +50 -0
  1060. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.ts +29 -0
  1061. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.url.ts +25 -0
  1062. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.website-routing-rules.ts +23 -0
  1063. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.lifecycle-expiration.ts +18 -0
  1064. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.lifecycle-transitions.ts +53 -0
  1065. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.lifecycle.ts +26 -0
  1066. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/README.md +185 -0
  1067. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/index.md +3 -0
  1068. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/integ.assets.bundling.docker-opts.ts +27 -0
  1069. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/integ.assets.bundling.lit.ts +32 -0
  1070. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/integ.assets.directory.lit.ts +23 -0
  1071. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/integ.assets.file-bundling.lit.ts +50 -0
  1072. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/integ.assets.file.lit.ts +23 -0
  1073. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/integ.assets.permissions.lit.ts +23 -0
  1074. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/integ.assets.refs.lit.ts +28 -0
  1075. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/integ.multi-assets.ts +27 -0
  1076. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/README.md +548 -0
  1077. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-big-response.ts +84 -0
  1078. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cloudfront.ts +51 -0
  1079. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-data.ts +95 -0
  1080. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-deployed-bucket.ts +43 -0
  1081. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-large-file.ts +250 -0
  1082. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-loggroup.ts +40 -0
  1083. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-signcontent.d.ts +1 -0
  1084. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-signcontent.ts +59 -0
  1085. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution-with-destination-key.ts +69 -0
  1086. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution-with-role.ts +32 -0
  1087. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution.ts +68 -0
  1088. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment.ts +165 -0
  1089. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/README.md +46 -0
  1090. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/integ.bucket-notifications-sorting.ts +60 -0
  1091. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/integ.bucket-notifications-unmanaged.ts +79 -0
  1092. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/integ.bucket-notifications.ts +106 -0
  1093. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/integ.encrypted-sns-bucket-notifications.ts +67 -0
  1094. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/integ.notifications.ts +35 -0
  1095. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/integ.sns-bucket-notifications.ts +29 -0
  1096. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler/README.md +314 -0
  1097. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler/integ.schedule.ts +113 -0
  1098. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/README.md +391 -0
  1099. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.codebuild-start-build.ts +89 -0
  1100. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.codepipeline-start-pipeline-execution.ts +113 -0
  1101. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.ecs-run-task-ec2.ts +112 -0
  1102. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.ecs-run-task-fargate.ts +80 -0
  1103. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.event-bridge-put-events.ts +91 -0
  1104. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.firehose-put-record.ts +68 -0
  1105. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.inspector-start-assessment-run.ts +46 -0
  1106. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.kinesis-stream-put-record.ts +61 -0
  1107. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.lambda-invoke.ts +137 -0
  1108. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.sage-maker-start-pipeline-execution.ts +137 -0
  1109. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.schedule-with-dlq.ts +64 -0
  1110. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.sns-publish.ts +49 -0
  1111. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.sqs-send-message.ts +45 -0
  1112. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.stepfunction-start-execution.ts +68 -0
  1113. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-scheduler-targets/integ.universal.ts +36 -0
  1114. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-secretsmanager/README.md +304 -0
  1115. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-secretsmanager/integ.hosted-rotation.ts +35 -0
  1116. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-secretsmanager/integ.lambda-rotation.ts +42 -0
  1117. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-secretsmanager/integ.replica.ts +15 -0
  1118. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-secretsmanager/integ.secret-name-parsed.ts +44 -0
  1119. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-secretsmanager/integ.secret.lit.ts +57 -0
  1120. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-servicecatalog/README.md +576 -0
  1121. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-servicecatalog/integ.nested-stack-in-product-stack.ts +72 -0
  1122. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-servicecatalog/integ.portfolio.ts +97 -0
  1123. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-servicecatalog/integ.product.encrypted.asset.ts +146 -0
  1124. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-servicecatalog/integ.product.ts +165 -0
  1125. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-servicecatalog/integ.two-products.ts +106 -0
  1126. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-servicediscovery/README.md +45 -0
  1127. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-servicediscovery/integ.service-with-cname-record.lit.ts +21 -0
  1128. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-servicediscovery/integ.service-with-http-namespace.lit.ts +31 -0
  1129. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-servicediscovery/integ.service-with-private-dns-namespace.lit.ts +34 -0
  1130. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-servicediscovery/integ.service-with-public-dns-namespace.lit.ts +27 -0
  1131. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses/README.md +371 -0
  1132. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses/integ.configuration-set-event-bus.ts +34 -0
  1133. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses/integ.configuration-set-firehose.ts +62 -0
  1134. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses/integ.configuration-set-override-suppression-list-settings.ts +32 -0
  1135. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses/integ.configuration-set-tracking-options.ts +41 -0
  1136. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses/integ.configuration-set-vdmoptions.ts +79 -0
  1137. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses/integ.configuration-set.ts +42 -0
  1138. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses/integ.dedicated-ip-pool.ts +17 -0
  1139. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses/integ.email-identity-from-arn.ts +49 -0
  1140. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses/integ.email-identity.ts +43 -0
  1141. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses/integ.receipt.ts +35 -0
  1142. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses/integ.vdm-attributes.ts +20 -0
  1143. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses-actions/README.md +17 -0
  1144. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ses-actions/integ.actions.ts +101 -0
  1145. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-signer/README.md +41 -0
  1146. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-signer/integ.signing-profile.ts +21 -0
  1147. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns/README.md +366 -0
  1148. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns/integ.sns-fifo-archive-policy.ts +24 -0
  1149. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns/integ.sns-fifo-throughput-scope.ts +28 -0
  1150. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns/integ.sns-fifo.no-name.ts +17 -0
  1151. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns/integ.sns-fifo.ts +21 -0
  1152. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns/integ.sns-topic-grant-subscribe.ts +35 -0
  1153. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns/integ.sns-topic-policy.ts +51 -0
  1154. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns/integ.sns.ts +122 -0
  1155. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/README.md +176 -0
  1156. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.firehose-cross-region.ts +35 -0
  1157. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.firehose.ts +55 -0
  1158. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-lambda-cross-region.ts +39 -0
  1159. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-lambda.ts +82 -0
  1160. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-sqs-cross-region.lit.ts +28 -0
  1161. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-sqs.lit.ts +33 -0
  1162. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-sqs.ts +52 -0
  1163. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-url.ts +40 -0
  1164. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sqs/README.md +110 -0
  1165. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sqs/integ.sqs-source-queue-permission.ts +32 -0
  1166. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sqs/integ.sqs.ts +51 -0
  1167. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ssm/README.md +212 -0
  1168. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ssm/integ.import-parameter.ts +48 -0
  1169. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ssm/integ.list-parameter.ts +82 -0
  1170. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ssm/integ.parameter-arns.ts +27 -0
  1171. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ssm/integ.parameter-store-string-sharing.ts +138 -0
  1172. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ssm/integ.parameter-store-string.ts +100 -0
  1173. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ssm/integ.parameter.ts +33 -0
  1174. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ssm/integ.value-from-lookup-with-default.ts +43 -0
  1175. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/README.md +1725 -0
  1176. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.custom-state.ts +76 -0
  1177. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-csv-delimiter-with-result-writer-v2.ts +87 -0
  1178. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-csv-delimiter.ts +82 -0
  1179. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-execution-type.ts +32 -0
  1180. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-with-result-writer-v2-having-writer-config.ts +94 -0
  1181. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-with-result-writer-v2.ts +88 -0
  1182. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map.ts +83 -0
  1183. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distribution-map-result-writer-bucket-jsonpath.ts +67 -0
  1184. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distribution-map-with-result-writer-jsonata.ts +88 -0
  1185. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distribution-map-with-result-writer-v2-jsonata.ts +93 -0
  1186. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.intrinsics.ts +97 -0
  1187. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.listAt-after-parallel.ts +38 -0
  1188. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-distributed.ts +48 -0
  1189. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-inline.ts +37 -0
  1190. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-itemselector.ts +39 -0
  1191. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-with-catch.ts +94 -0
  1192. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.parallel-parameters.ts +64 -0
  1193. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.s3-json-item-reader.ts +168 -0
  1194. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.s3-objects-item-reader.ts +168 -0
  1195. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.state-machine-and-activity-cmk.ts +77 -0
  1196. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.state-machine-cmk-with-cwl-encryption.ts +82 -0
  1197. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.state-machine-credentials.ts +36 -0
  1198. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.state-machine-disable-xray.ts +14 -0
  1199. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.state-machine-jsonata.ts +66 -0
  1200. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.state-machine-logging.ts +32 -0
  1201. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.state-machine-string.ts +20 -0
  1202. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.state-machine-variables.ts +63 -0
  1203. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.state-machine.ts +47 -0
  1204. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/README.md +2014 -0
  1205. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region-task-token.ts +74 -0
  1206. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region.ts +140 -0
  1207. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-efs.ts +32 -0
  1208. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-elasticloadbalancingv2.ts +37 -0
  1209. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-jsonata.ts +94 -0
  1210. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-logs.ts +43 -0
  1211. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-mediapackagevod.ts +37 -0
  1212. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-mwaa.ts +37 -0
  1213. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-sfn.ts +51 -0
  1214. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service.ts +65 -0
  1215. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-dynamodb.ts +93 -0
  1216. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-rest-api-cross-region.ts +65 -0
  1217. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-rest-api.ts +53 -0
  1218. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-sagemaker.ts +121 -0
  1219. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call.ts +75 -0
  1220. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.create-job.ts +99 -0
  1221. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.create-model-customization-job.ts +120 -0
  1222. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.create-schedule.ts +89 -0
  1223. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.create-training-job-image.ts +73 -0
  1224. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.create-training-job.ts +71 -0
  1225. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.create-transform-job.ts +45 -0
  1226. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.ec2-run-task-ref-definition.ts +60 -0
  1227. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.ec2-run-task.ts +82 -0
  1228. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.ec2-task.ts +77 -0
  1229. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-add-step-runtime-role.ts +133 -0
  1230. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-auto-deletion-policy-idle-timeout.ts +72 -0
  1231. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-on-demand-instance-fleet.ts +43 -0
  1232. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-spot-instance-fleet.ts +43 -0
  1233. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-tags.ts +58 -0
  1234. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-v1-policy.ts +54 -0
  1235. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-v2-policy.ts +62 -0
  1236. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-default-runtime.ts +60 -0
  1237. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression.ts +65 -0
  1238. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.fargate-run-task.ts +100 -0
  1239. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.fargate-task.ts +69 -0
  1240. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.get-query-execution.ts +41 -0
  1241. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.get-query-results.ts +50 -0
  1242. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.glue-start-crawler.ts +63 -0
  1243. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.glue-task.ts +64 -0
  1244. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke-activity.ts +77 -0
  1245. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke-function.ts +61 -0
  1246. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke-jsonata.ts +119 -0
  1247. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke-model-guardrail-trace.ts +111 -0
  1248. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke-model.ts +166 -0
  1249. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke.payload.only.ts +81 -0
  1250. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke.ts +119 -0
  1251. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.job-poller.ts +50 -0
  1252. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.job-submission-workflow.ts +111 -0
  1253. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.publish.ts +74 -0
  1254. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.put-events.ts +62 -0
  1255. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.run-batch-job.d.ts +1 -0
  1256. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.run-batch-job.ts +82 -0
  1257. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.run-lambda.ts +73 -0
  1258. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.send-message-encrypted.ts +50 -0
  1259. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.send-message.ts +48 -0
  1260. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.start-build-batch.ts +94 -0
  1261. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.start-build.ts +68 -0
  1262. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.start-execution-jsonata.ts +41 -0
  1263. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.start-execution.ts +41 -0
  1264. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.start-job-run-dynamic-worker-type.ts +104 -0
  1265. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.start-job-run-execution-class.ts +95 -0
  1266. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.start-job-run-worker.ts +98 -0
  1267. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.start-job-run.ts +124 -0
  1268. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.start-query-execution-result-reuse-configuration.ts +70 -0
  1269. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.start-query-execution.ts +42 -0
  1270. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.stop-query-execution.ts +43 -0
  1271. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.stringset-after-parallel.ts +46 -0
  1272. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.submit-job-queue-jsonpath.ts +68 -0
  1273. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.submit-job.d.ts +1 -0
  1274. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.submit-job.ts +83 -0
  1275. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/README.md +347 -0
  1276. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-artifact-s3-encryption.ts +81 -0
  1277. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-auto-delete-lambda.ts +65 -0
  1278. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-provisioned-resource-cleanup.ts +51 -0
  1279. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-run-config.ts +32 -0
  1280. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary.ts +144 -0
  1281. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.vpc.ts +29 -0
  1282. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloud-assembly-schema/README.md +55 -0
  1283. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/README.md +468 -0
  1284. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.autoscaling-update-policy.ts +14 -0
  1285. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.intrinsic-deletion-policy.ts +15 -0
  1286. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.nested-stacks.ts +17 -0
  1287. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.resource-tags-wtih-intrinsics.ts +15 -0
  1288. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/README.md +1871 -0
  1289. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/acknowledge-warnings.md +148 -0
  1290. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/cross-region-stack-references.md +270 -0
  1291. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/integ.cfn-mappings-find-in-map.ts +49 -0
  1292. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/integ.cross-region-references.ts +58 -0
  1293. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/integ.logical-id.ts +22 -0
  1294. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/integ.nested-stack-references.ts +68 -0
  1295. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/integ.prop-injectors.ts +221 -0
  1296. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/integ.removal-policies.ts +53 -0
  1297. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/integ.stack.ts +21 -0
  1298. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/integ.token-aware-stringify-logical-ids.ts +41 -0
  1299. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/README.md +950 -0
  1300. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource-assumeRole.ts +49 -0
  1301. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource-athena.ts +166 -0
  1302. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource-cloudwatch.ts +53 -0
  1303. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource-dynamodb.ts +67 -0
  1304. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource-service-timeout.ts +74 -0
  1305. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource-ssm-ff.ts +66 -0
  1306. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource-ssm.ts +66 -0
  1307. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource-vpc.ts +42 -0
  1308. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource.ts +135 -0
  1309. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.cross-account-assumeRole.ts +114 -0
  1310. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-lambda-node-runtime.ts +37 -0
  1311. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-lambda-python-runtime.ts +33 -0
  1312. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-lambda-runtime.ts +27 -0
  1313. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-logGroup.ts +27 -0
  1314. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-logRetention.ts +25 -0
  1315. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-removalPolicy.ts +25 -0
  1316. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-undefined-log.ts +28 -0
  1317. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.invoke-function-payload.ts +48 -0
  1318. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.provider-no-echo.ts +62 -0
  1319. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.provider-with-waiter-state-machine-custom-role.ts +62 -0
  1320. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.provider-with-waiter-state-machine.ts +65 -0
  1321. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.provider.ts +61 -0
  1322. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md +2178 -0
  1323. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/NESTED_ASSEMBLIES.md +93 -0
  1324. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/README.md +749 -0
  1325. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/lambda-layer-awscli/README.md +22 -0
  1326. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/lambda-layer-awscli/integ.awscli-layer.ts +54 -0
  1327. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/lambda-layer-kubectl/integ.kubectl-layer.ts +53 -0
  1328. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/lambda-layer-node-proxy-agent/README.md +17 -0
  1329. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/lambda-layer-node-proxy-agent/integ.node-proxy-agent.ts +50 -0
  1330. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/ORIGINAL_API.md +747 -0
  1331. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/README.md +1856 -0
  1332. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.cross-account-pipeline-action.ts +141 -0
  1333. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-reduce-stagerole-scope.ts +85 -0
  1334. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-codebuild-logging.ts +83 -0
  1335. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-codestar-connection.ts +52 -0
  1336. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-cross-account-keys.ts +68 -0
  1337. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-cross-region-replication-buckets.ts +114 -0
  1338. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-file-system-locations.d.ts +1 -0
  1339. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-file-system-locations.ts +77 -0
  1340. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-with-vpc.ts +59 -0
  1341. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline.ts +62 -0
  1342. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-use-default-action-role.ts +68 -0
  1343. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-v2.ts +71 -0
  1344. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-with-artifact-bucket.ts +41 -0
  1345. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-with-stack-outputs-in-custom-step.ts +96 -0
  1346. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-with-variables.ts +68 -0
  1347. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-without-prepare.ts +82 -0
  1348. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/region-info/README.md +82 -0
  1349. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/README.md +107 -0
  1350. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/triggers/integ.triggers.ts +90 -0
  1351. cdk_api_mcp_server/server.py +12 -5
  1352. {konokenj_cdk_api_mcp_server-0.2.0.dist-info → konokenj_cdk_api_mcp_server-0.2.2.dist-info}/METADATA +1 -1
  1353. konokenj_cdk_api_mcp_server-0.2.2.dist-info/RECORD +1360 -0
  1354. konokenj_cdk_api_mcp_server-0.2.0.dist-info/RECORD +0 -11
  1355. {konokenj_cdk_api_mcp_server-0.2.0.dist-info → konokenj_cdk_api_mcp_server-0.2.2.dist-info}/WHEEL +0 -0
  1356. {konokenj_cdk_api_mcp_server-0.2.0.dist-info → konokenj_cdk_api_mcp_server-0.2.2.dist-info}/entry_points.txt +0 -0
  1357. {konokenj_cdk_api_mcp_server-0.2.0.dist-info → konokenj_cdk_api_mcp_server-0.2.2.dist-info}/licenses/LICENSE.txt +0 -0
@@ -0,0 +1,2621 @@
1
+ # Amazon EC2 Construct Library
2
+
3
+
4
+
5
+ The `aws-cdk-lib/aws-ec2` package contains primitives for setting up networking and
6
+ instances.
7
+
8
+ ```ts nofixture
9
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
10
+ ```
11
+
12
+ ## VPC
13
+
14
+ Most projects need a Virtual Private Cloud to provide security by means of
15
+ network partitioning. This is achieved by creating an instance of
16
+ `Vpc`:
17
+
18
+ ```ts
19
+ const vpc = new ec2.Vpc(this, 'VPC');
20
+ ```
21
+
22
+ All default constructs require EC2 instances to be launched inside a VPC, so
23
+ you should generally start by defining a VPC whenever you need to launch
24
+ instances for your project.
25
+
26
+ ### Subnet Types
27
+
28
+ A VPC consists of one or more subnets that instances can be placed into. CDK
29
+ distinguishes three different subnet types:
30
+
31
+ * **Public (`SubnetType.PUBLIC`)** - public subnets connect directly to the Internet using an
32
+ Internet Gateway. If you want your instances to have a public IP address
33
+ and be directly reachable from the Internet, you must place them in a
34
+ public subnet.
35
+ * **Private with Internet Access (`SubnetType.PRIVATE_WITH_EGRESS`)** - instances in private subnets are not directly routable from the
36
+ Internet, and you must provide a way to connect out to the Internet.
37
+ By default, a NAT gateway is created in every public subnet for maximum availability. Be
38
+ aware that you will be charged for NAT gateways.
39
+ Alternatively you can set `natGateways:0` and provide your own egress configuration (i.e through Transit Gateway)
40
+ * **Isolated (`SubnetType.PRIVATE_ISOLATED`)** - isolated subnets do not route from or to the Internet, and
41
+ as such do not require NAT gateways. They can only connect to or be
42
+ connected to from other instances in the same VPC. A default VPC configuration
43
+ will not include isolated subnets,
44
+
45
+ A default VPC configuration will create public and **private** subnets. However, if
46
+ `natGateways:0` **and** `subnetConfiguration` is undefined, default VPC configuration
47
+ will create public and **isolated** subnets. See [*Advanced Subnet Configuration*](#advanced-subnet-configuration)
48
+ below for information on how to change the default subnet configuration.
49
+
50
+ Constructs using the VPC will "launch instances" (or more accurately, create
51
+ Elastic Network Interfaces) into one or more of the subnets. They all accept
52
+ a property called `subnetSelection` (sometimes called `vpcSubnets`) to allow
53
+ you to select in what subnet to place the ENIs, usually defaulting to
54
+ *private* subnets if the property is omitted.
55
+
56
+ If you would like to save on the cost of NAT gateways, you can use
57
+ *isolated* subnets instead of *private* subnets (as described in Advanced
58
+ *Subnet Configuration*). If you need private instances to have
59
+ internet connectivity, another option is to reduce the number of NAT gateways
60
+ created by setting the `natGateways` property to a lower value (the default
61
+ is one NAT gateway per availability zone). Be aware that this may have
62
+ availability implications for your application.
63
+
64
+ [Read more about
65
+ subnets](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html).
66
+
67
+ ### Control over availability zones
68
+
69
+ By default, a VPC will spread over at most 3 Availability Zones available to
70
+ it. To change the number of Availability Zones that the VPC will spread over,
71
+ specify the `maxAzs` property when defining it.
72
+
73
+ The number of Availability Zones that are available depends on the *region*
74
+ and *account* of the Stack containing the VPC. If the [region and account are
75
+ specified](https://docs.aws.amazon.com/cdk/latest/guide/environments.html) on
76
+ the Stack, the CLI will [look up the existing Availability
77
+ Zones](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#using-regions-availability-zones-describe)
78
+ and get an accurate count. The result of this operation will be written to a file
79
+ called `cdk.context.json`. You must commit this file to source control so
80
+ that the lookup values are available in non-privileged environments such
81
+ as CI build steps, and to ensure your template builds are repeatable.
82
+
83
+
84
+ If region and account are not specified, the stack
85
+ could be deployed anywhere and it will have to make a safe choice, limiting
86
+ itself to 2 Availability Zones.
87
+
88
+ Therefore, to get the VPC to spread over 3 or more availability zones, you
89
+ must specify the environment where the stack will be deployed.
90
+
91
+ You can gain full control over the availability zones selection strategy by overriding the Stack's [`get availabilityZones()`](https://github.com/aws/aws-cdk/blob/main/packages/@aws-cdk/core/lib/stack.ts) method:
92
+
93
+ ```text
94
+ // This example is only available in TypeScript
95
+
96
+ class MyStack extends Stack {
97
+
98
+ constructor(scope: Construct, id: string, props?: StackProps) {
99
+ super(scope, id, props);
100
+
101
+ // ...
102
+ }
103
+
104
+ get availabilityZones(): string[] {
105
+ return ['us-west-2a', 'us-west-2b'];
106
+ }
107
+
108
+ }
109
+ ```
110
+
111
+ Note that overriding the `get availabilityZones()` method will override the default behavior for all constructs defined within the Stack.
112
+
113
+ ### Choosing subnets for resources
114
+
115
+ When creating resources that create Elastic Network Interfaces (such as
116
+ databases or instances), there is an option to choose which subnets to place
117
+ them in. For example, a VPC endpoint by default is placed into a subnet in
118
+ every availability zone, but you can override which subnets to use. The property
119
+ is typically called one of `subnets`, `vpcSubnets` or `subnetSelection`.
120
+
121
+ The example below will place the endpoint into two AZs (`us-east-1a` and `us-east-1c`),
122
+ in Isolated subnets:
123
+
124
+ ```ts
125
+ declare const vpc: ec2.Vpc;
126
+
127
+ new ec2.InterfaceVpcEndpoint(this, 'VPC Endpoint', {
128
+ vpc,
129
+ service: new ec2.InterfaceVpcEndpointService('com.amazonaws.vpce.us-east-1.vpce-svc-uuddlrlrbastrtsvc', 443),
130
+ subnets: {
131
+ subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
132
+ availabilityZones: ['us-east-1a', 'us-east-1c']
133
+ }
134
+ });
135
+ ```
136
+
137
+ You can also specify specific subnet objects for granular control:
138
+
139
+ ```ts
140
+ declare const vpc: ec2.Vpc;
141
+ declare const subnet1: ec2.Subnet;
142
+ declare const subnet2: ec2.Subnet;
143
+
144
+ new ec2.InterfaceVpcEndpoint(this, 'VPC Endpoint', {
145
+ vpc,
146
+ service: new ec2.InterfaceVpcEndpointService('com.amazonaws.vpce.us-east-1.vpce-svc-uuddlrlrbastrtsvc', 443),
147
+ subnets: {
148
+ subnets: [subnet1, subnet2]
149
+ }
150
+ });
151
+ ```
152
+
153
+ Which subnets are selected is evaluated as follows:
154
+
155
+ * `subnets`: if specific subnet objects are supplied, these are selected, and no other
156
+ logic is used.
157
+ * `subnetType`/`subnetGroupName`: otherwise, a set of subnets is selected by
158
+ supplying either type or name:
159
+ * `subnetType` will select all subnets of the given type.
160
+ * `subnetGroupName` should be used to distinguish between multiple groups of subnets of
161
+ the same type (for example, you may want to separate your application instances and your
162
+ RDS instances into two distinct groups of Isolated subnets).
163
+ * If neither are given, the first available subnet group of a given type that
164
+ exists in the VPC will be used, in this order: Private, then Isolated, then Public.
165
+ In short: by default ENIs will preferentially be placed in subnets not connected to
166
+ the Internet.
167
+ * `availabilityZones`/`onePerAz`: finally, some availability-zone based filtering may be done.
168
+ This filtering by availability zones will only be possible if the VPC has been created or
169
+ looked up in a non-environment agnostic stack (so account and region have been set and
170
+ availability zones have been looked up).
171
+ * `availabilityZones`: only the specific subnets from the selected subnet groups that are
172
+ in the given availability zones will be returned.
173
+ * `onePerAz`: per availability zone, a maximum of one subnet will be returned (Useful for resource
174
+ types that do not allow creating two ENIs in the same availability zone).
175
+ * `subnetFilters`: additional filtering on subnets using any number of user-provided filters which
176
+ extend `SubnetFilter`. The following methods on the `SubnetFilter` class can be used to create
177
+ a filter:
178
+ * `byIds`: chooses subnets from a list of ids
179
+ * `availabilityZones`: chooses subnets in the provided list of availability zones
180
+ * `onePerAz`: chooses at most one subnet per availability zone
181
+ * `containsIpAddresses`: chooses a subnet which contains *any* of the listed ip addresses
182
+ * `byCidrMask`: chooses subnets that have the provided CIDR netmask
183
+ * `byCidrRanges`: chooses subnets which are inside any of the specified CIDR ranges
184
+
185
+ ### Using NAT instances
186
+
187
+ By default, the `Vpc` construct will create NAT *gateways* for you, which
188
+ are managed by AWS. If you would prefer to use your own managed NAT
189
+ *instances* instead, specify a different value for the `natGatewayProvider`
190
+ property, as follows:
191
+
192
+ The construct will automatically selects the latest version of Amazon Linux 2023.
193
+ If you prefer to use a custom AMI, use `machineImage:
194
+ MachineImage.genericLinux({ ... })` and configure the right AMI ID for the
195
+ regions you want to deploy to.
196
+
197
+ > **Warning**
198
+ > The NAT instances created using this method will be **unmonitored**.
199
+ > They are not part of an Auto Scaling Group,
200
+ > and if they become unavailable or are terminated for any reason,
201
+ > will not be restarted or replaced.
202
+
203
+ By default, the NAT instances will route all traffic. To control what traffic
204
+ gets routed, pass a custom value for `defaultAllowedTraffic` and access the
205
+ `NatInstanceProvider.connections` member after having passed the NAT provider to
206
+ the VPC:
207
+
208
+ ```ts
209
+ declare const instanceType: ec2.InstanceType;
210
+
211
+ const provider = ec2.NatProvider.instanceV2({
212
+ instanceType,
213
+ defaultAllowedTraffic: ec2.NatTrafficDirection.OUTBOUND_ONLY,
214
+ });
215
+ new ec2.Vpc(this, 'TheVPC', {
216
+ natGatewayProvider: provider,
217
+ });
218
+ provider.connections.allowFrom(ec2.Peer.ipv4('1.2.3.4/8'), ec2.Port.HTTP);
219
+ ```
220
+
221
+ You can also customize the characteristics of your NAT instances, including their security group,
222
+ as well as their initialization scripts:
223
+
224
+ ```ts
225
+ declare const bucket: s3.Bucket;
226
+
227
+ const userData = ec2.UserData.forLinux();
228
+ userData.addCommands(
229
+ ...ec2.NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS,
230
+ 'echo "hello world!" > hello.txt',
231
+ `aws s3 cp hello.txt s3://${bucket.bucketName}`,
232
+ );
233
+
234
+ const provider = ec2.NatProvider.instanceV2({
235
+ instanceType: new ec2.InstanceType('t3.small'),
236
+ creditSpecification: ec2.CpuCredits.UNLIMITED,
237
+ defaultAllowedTraffic: ec2.NatTrafficDirection.NONE,
238
+ });
239
+
240
+ const vpc = new ec2.Vpc(this, 'TheVPC', {
241
+ natGatewayProvider: provider,
242
+ natGateways: 2,
243
+ });
244
+
245
+ const securityGroup = new ec2.SecurityGroup(this, 'SecurityGroup', { vpc });
246
+ securityGroup.addEgressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(443));
247
+ for (const gateway of provider.gatewayInstances) {
248
+ bucket.grantWrite(gateway);
249
+ gateway.addSecurityGroup(securityGroup);
250
+ }
251
+ ```
252
+
253
+ [using NAT instances](test/integ.nat-instances.lit.ts) [Deprecated]
254
+
255
+ The V1 `NatProvider.instance` construct will use the AWS official NAT instance AMI, which has already
256
+ reached EOL on Dec 31, 2023. For more information, see the following blog post:
257
+ [Amazon Linux AMI end of life](https://aws.amazon.com/blogs/aws/update-on-amazon-linux-ami-end-of-life/).
258
+
259
+ ```ts
260
+ declare const instanceType: ec2.InstanceType;
261
+
262
+ const provider = ec2.NatProvider.instance({
263
+ instanceType,
264
+ defaultAllowedTraffic: ec2.NatTrafficDirection.OUTBOUND_ONLY,
265
+ });
266
+ new ec2.Vpc(this, 'TheVPC', {
267
+ natGatewayProvider: provider,
268
+ });
269
+ provider.connections.allowFrom(ec2.Peer.ipv4('1.2.3.4/8'), ec2.Port.HTTP);
270
+ ```
271
+
272
+ ### Associate Public IP Address to NAT Instance
273
+
274
+ You can choose to associate public IP address to a NAT instance V2 by specifying `associatePublicIpAddress`
275
+ like the following:
276
+
277
+ ```ts
278
+ const natGatewayProvider = ec2.NatProvider.instanceV2({
279
+ instanceType: new ec2.InstanceType('t3.small'),
280
+ associatePublicIpAddress: true,
281
+ });
282
+ ```
283
+
284
+ In certain scenarios where the public subnet has set `mapPublicIpOnLaunch` to `false`, NAT instances does not
285
+ get public IP addresses assigned which would result in non-working NAT instance as NAT instance requires a public
286
+ IP address to enable outbound internet connectivity. Users can specify `associatePublicIpAddress` to `true` to
287
+ solve this problem.
288
+
289
+ ### Ip Address Management
290
+
291
+ The VPC spans a supernet IP range, which contains the non-overlapping IPs of its contained subnets. Possible sources for this IP range are:
292
+
293
+ * You specify an IP range directly by specifying a CIDR
294
+ * You allocate an IP range of a given size automatically from AWS IPAM
295
+
296
+ By default the Vpc will allocate the `10.0.0.0/16` address range which will be exhaustively spread across all subnets in the subnet configuration. This behavior can be changed by passing an object that implements `IIpAddresses` to the `ipAddress` property of a Vpc. See the subsequent sections for the options.
297
+
298
+ Be aware that if you don't explicitly reserve subnet groups in `subnetConfiguration`, the address space will be fully allocated! If you predict you may need to add more subnet groups later, add them early on and set `reserved: true` (see the "Advanced Subnet Configuration" section for more information).
299
+
300
+ #### Specifying a CIDR directly
301
+
302
+ Use `IpAddresses.cidr` to define a Cidr range for your Vpc directly in code:
303
+
304
+ ```ts
305
+ import { IpAddresses } from 'aws-cdk-lib/aws-ec2';
306
+
307
+ new ec2.Vpc(this, 'TheVPC', {
308
+ ipAddresses: IpAddresses.cidr('10.0.1.0/20')
309
+ });
310
+ ```
311
+
312
+ Space will be allocated to subnets in the following order:
313
+
314
+ * First, spaces is allocated for all subnets groups that explicitly have a `cidrMask` set as part of their configuration (including reserved subnets).
315
+ * Afterwards, any remaining space is divided evenly between the rest of the subnets (if any).
316
+
317
+ The argument to `IpAddresses.cidr` may not be a token, and concrete Cidr values are generated in the synthesized CloudFormation template.
318
+
319
+ #### Allocating an IP range from AWS IPAM
320
+
321
+ Amazon VPC IP Address Manager (IPAM) manages a large IP space, from which chunks can be allocated for use in the Vpc. For information on Amazon VPC IP Address Manager please see the [official documentation](https://docs.aws.amazon.com/vpc/latest/ipam/what-it-is-ipam.html). An example of allocating from AWS IPAM looks like this:
322
+
323
+ ```ts
324
+ import { IpAddresses } from 'aws-cdk-lib/aws-ec2';
325
+
326
+ declare const pool: ec2.CfnIPAMPool;
327
+
328
+ new ec2.Vpc(this, 'TheVPC', {
329
+ ipAddresses: IpAddresses.awsIpamAllocation({
330
+ ipv4IpamPoolId: pool.ref,
331
+ ipv4NetmaskLength: 18,
332
+ defaultSubnetIpv4NetmaskLength: 24
333
+ })
334
+ });
335
+ ```
336
+
337
+ `IpAddresses.awsIpamAllocation` requires the following:
338
+
339
+ * `ipv4IpamPoolId`, the id of an IPAM Pool from which the VPC range should be allocated.
340
+ * `ipv4NetmaskLength`, the size of the IP range that will be requested from the Pool at deploy time.
341
+ * `defaultSubnetIpv4NetmaskLength`, the size of subnets in groups that don't have `cidrMask` set.
342
+
343
+ With this method of IP address management, no attempt is made to guess at subnet group sizes or to exhaustively allocate the IP range. All subnet groups must have an explicit `cidrMask` set as part of their subnet configuration, or `defaultSubnetIpv4NetmaskLength` must be set for a default size. If not, synthesis will fail and you must provide one or the other.
344
+
345
+ ### Dual Stack configuration
346
+
347
+ To allocate both IPv4 and IPv6 addresses in your VPC, you can configure your VPC to have a dual stack protocol.
348
+
349
+ ```ts
350
+ new ec2.Vpc(this, 'DualStackVpc', {
351
+ ipProtocol: ec2.IpProtocol.DUAL_STACK,
352
+ })
353
+ ```
354
+
355
+ By default, a dual stack VPC will create an Amazon provided IPv6 /56 CIDR block associated to the VPC. It will then assign /64 portions of the block to each subnet. For each subnet, auto-assigning an IPv6 address will be enabled, and auto-asigning a public IPv4 address will be disabled. An egress only internet gateway will be created for `PRIVATE_WITH_EGRESS` subnets, and IPv6 routes will be added for IGWs and EIGWs.
356
+
357
+ Disabling the auto-assigning of a public IPv4 address by default can avoid the cost of public IPv4 addresses starting 2/1/2024. For use cases that need an IPv4 address, the `mapPublicIpOnLaunch` property in `subnetConfiguration` can be set to auto-assign the IPv4 address. Note that private IPv4 address allocation will not be changed.
358
+
359
+ See [Advanced Subnet Configuration](#advanced-subnet-configuration) for all IPv6 specific properties.
360
+
361
+ ### Reserving availability zones
362
+
363
+ There are situations where the IP space for availability zones will
364
+ need to be reserved. This is useful in situations where availability
365
+ zones would need to be added after the vpc is originally deployed,
366
+ without causing IP renumbering for availability zones subnets. The IP
367
+ space for reserving `n` availability zones can be done by setting the
368
+ `reservedAzs` to `n` in vpc props, as shown below:
369
+
370
+ ```ts
371
+ const vpc = new ec2.Vpc(this, 'TheVPC', {
372
+ cidr: '10.0.0.0/21',
373
+ maxAzs: 3,
374
+ reservedAzs: 1,
375
+ });
376
+ ```
377
+
378
+ In the example above, the subnets for reserved availability zones is not
379
+ actually provisioned but its IP space is still reserved. If, in the future,
380
+ new availability zones needs to be provisioned, then we would decrement
381
+ the value of `reservedAzs` and increment the `maxAzs` or `availabilityZones`
382
+ accordingly. This action would not cause the IP address of subnets to get
383
+ renumbered, but rather the IP space that was previously reserved will be
384
+ used for the new availability zones subnets.
385
+
386
+ ### Advanced Subnet Configuration
387
+
388
+ If the default VPC configuration (public and private subnets spanning the
389
+ size of the VPC) don't suffice for you, you can configure what subnets to
390
+ create by specifying the `subnetConfiguration` property. It allows you
391
+ to configure the number and size of all subnets. Specifying an advanced
392
+ subnet configuration could look like this:
393
+
394
+ ```ts
395
+ const vpc = new ec2.Vpc(this, 'TheVPC', {
396
+ // 'IpAddresses' configures the IP range and size of the entire VPC.
397
+ // The IP space will be divided based on configuration for the subnets.
398
+ ipAddresses: ec2.IpAddresses.cidr('10.0.0.0/21'),
399
+
400
+ // 'maxAzs' configures the maximum number of availability zones to use.
401
+ // If you want to specify the exact availability zones you want the VPC
402
+ // to use, use `availabilityZones` instead.
403
+ maxAzs: 3,
404
+
405
+ // 'subnetConfiguration' specifies the "subnet groups" to create.
406
+ // Every subnet group will have a subnet for each AZ, so this
407
+ // configuration will create `3 groups × 3 AZs = 9` subnets.
408
+ subnetConfiguration: [
409
+ {
410
+ // 'subnetType' controls Internet access, as described above.
411
+ subnetType: ec2.SubnetType.PUBLIC,
412
+
413
+ // 'name' is used to name this particular subnet group. You will have to
414
+ // use the name for subnet selection if you have more than one subnet
415
+ // group of the same type.
416
+ name: 'Ingress',
417
+
418
+ // 'cidrMask' specifies the IP addresses in the range of of individual
419
+ // subnets in the group. Each of the subnets in this group will contain
420
+ // `2^(32 address bits - 24 subnet bits) - 2 reserved addresses = 254`
421
+ // usable IP addresses.
422
+ //
423
+ // If 'cidrMask' is left out the available address space is evenly
424
+ // divided across the remaining subnet groups.
425
+ cidrMask: 24,
426
+ },
427
+ {
428
+ cidrMask: 24,
429
+ name: 'Application',
430
+ subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
431
+ },
432
+ {
433
+ cidrMask: 28,
434
+ name: 'Database',
435
+ subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
436
+
437
+ // 'reserved' can be used to reserve IP address space. No resources will
438
+ // be created for this subnet, but the IP range will be kept available for
439
+ // future creation of this subnet, or even for future subdivision.
440
+ reserved: true
441
+ }
442
+ ],
443
+ });
444
+ ```
445
+
446
+ The example above is one possible configuration, but the user can use the
447
+ constructs above to implement many other network configurations.
448
+
449
+ The `Vpc` from the above configuration in a Region with three
450
+ availability zones will be the following:
451
+
452
+ Subnet Name |Type |IP Block |AZ|Features
453
+ ------------------|----------|--------------|--|--------
454
+ IngressSubnet1 |`PUBLIC` |`10.0.0.0/24` |#1|NAT Gateway
455
+ IngressSubnet2 |`PUBLIC` |`10.0.1.0/24` |#2|NAT Gateway
456
+ IngressSubnet3 |`PUBLIC` |`10.0.2.0/24` |#3|NAT Gateway
457
+ ApplicationSubnet1|`PRIVATE` |`10.0.3.0/24` |#1|Route to NAT in IngressSubnet1
458
+ ApplicationSubnet2|`PRIVATE` |`10.0.4.0/24` |#2|Route to NAT in IngressSubnet2
459
+ ApplicationSubnet3|`PRIVATE` |`10.0.5.0/24` |#3|Route to NAT in IngressSubnet3
460
+ DatabaseSubnet1 |`ISOLATED`|`10.0.6.0/28` |#1|Only routes within the VPC
461
+ DatabaseSubnet2 |`ISOLATED`|`10.0.6.16/28`|#2|Only routes within the VPC
462
+ DatabaseSubnet3 |`ISOLATED`|`10.0.6.32/28`|#3|Only routes within the VPC
463
+
464
+ #### Dual Stack Configurations
465
+
466
+ Here is a break down of IPv4 and IPv6 specific `subnetConfiguration` properties in a dual stack VPC:
467
+
468
+ ```ts
469
+ const vpc = new ec2.Vpc(this, 'TheVPC', {
470
+ ipProtocol: ec2.IpProtocol.DUAL_STACK,
471
+
472
+ subnetConfiguration: [
473
+ {
474
+ // general properties
475
+ name: 'Public',
476
+ subnetType: ec2.SubnetType.PUBLIC,
477
+ reserved: false,
478
+
479
+ // IPv4 specific properties
480
+ mapPublicIpOnLaunch: true,
481
+ cidrMask: 24,
482
+
483
+ // new IPv6 specific property
484
+ ipv6AssignAddressOnCreation: true,
485
+ },
486
+ ],
487
+ });
488
+ ```
489
+
490
+ The property `mapPublicIpOnLaunch` controls if a public IPv4 address will be assigned. This defaults to `false` for dual stack VPCs to avoid inadvertant costs of having the public address. However, a public IP must be enabled (or otherwise configured with BYOIP or IPAM) in order for services that rely on the address to function.
491
+
492
+ The `ipv6AssignAddressOnCreation` property controls the same behavior for the IPv6 address. It defaults to true.
493
+
494
+ Using IPv6 specific properties in an IPv4 only VPC will result in errors.
495
+
496
+ ### Accessing the Internet Gateway
497
+
498
+ If you need access to the internet gateway, you can get its ID like so:
499
+
500
+ ```ts
501
+ declare const vpc: ec2.Vpc;
502
+
503
+ const igwId = vpc.internetGatewayId;
504
+ ```
505
+
506
+ For a VPC with only `ISOLATED` subnets, this value will be undefined.
507
+
508
+ This is only supported for VPCs created in the stack - currently you're
509
+ unable to get the ID for imported VPCs. To do that you'd have to specifically
510
+ look up the Internet Gateway by name, which would require knowing the name
511
+ beforehand.
512
+
513
+ This can be useful for configuring routing using a combination of gateways:
514
+ for more information see [Routing](#routing) below.
515
+
516
+ ### Disabling the creation of the default internet gateway
517
+
518
+ If you need to control the creation of the internet gateway explicitly,
519
+ you can disable the creation of the default one using the `createInternetGateway`
520
+ property:
521
+
522
+ ```ts
523
+ const vpc = new ec2.Vpc(this, "VPC", {
524
+ createInternetGateway: false,
525
+ subnetConfiguration: [{
526
+ subnetType: ec2.SubnetType.PUBLIC,
527
+ name: 'Public',
528
+ }]
529
+ });
530
+ ```
531
+
532
+ #### Routing
533
+
534
+ It's possible to add routes to any subnets using the `addRoute()` method. If for
535
+ example you want an isolated subnet to have a static route via the default
536
+ Internet Gateway created for the public subnet - perhaps for routing a VPN
537
+ connection - you can do so like this:
538
+
539
+ ```ts
540
+ const vpc = new ec2.Vpc(this, "VPC", {
541
+ subnetConfiguration: [{
542
+ subnetType: ec2.SubnetType.PUBLIC,
543
+ name: 'Public',
544
+ },{
545
+ subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
546
+ name: 'Isolated',
547
+ }]
548
+ });
549
+
550
+ (vpc.isolatedSubnets[0] as ec2.Subnet).addRoute("StaticRoute", {
551
+ routerId: vpc.internetGatewayId!,
552
+ routerType: ec2.RouterType.GATEWAY,
553
+ destinationCidrBlock: "8.8.8.8/32",
554
+ })
555
+ ```
556
+
557
+ *Note that we cast to `Subnet` here because the list of subnets only returns an
558
+ `ISubnet`.*
559
+
560
+ ### Reserving subnet IP space
561
+
562
+ There are situations where the IP space for a subnet or number of subnets
563
+ will need to be reserved. This is useful in situations where subnets would
564
+ need to be added after the vpc is originally deployed, without causing IP
565
+ renumbering for existing subnets. The IP space for a subnet may be reserved
566
+ by setting the `reserved` subnetConfiguration property to true, as shown
567
+ below:
568
+
569
+ ```ts
570
+ const vpc = new ec2.Vpc(this, 'TheVPC', {
571
+ natGateways: 1,
572
+ subnetConfiguration: [
573
+ {
574
+ cidrMask: 26,
575
+ name: 'Public',
576
+ subnetType: ec2.SubnetType.PUBLIC,
577
+ },
578
+ {
579
+ cidrMask: 26,
580
+ name: 'Application1',
581
+ subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
582
+ },
583
+ {
584
+ cidrMask: 26,
585
+ name: 'Application2',
586
+ subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
587
+ reserved: true, // <---- This subnet group is reserved
588
+ },
589
+ {
590
+ cidrMask: 27,
591
+ name: 'Database',
592
+ subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
593
+ }
594
+ ],
595
+ });
596
+ ```
597
+
598
+ In the example above, the subnet for Application2 is not actually provisioned
599
+ but its IP space is still reserved. If in the future this subnet needs to be
600
+ provisioned, then the `reserved: true` property should be removed. Reserving
601
+ parts of the IP space prevents the other subnets from getting renumbered.
602
+
603
+ ### Sharing VPCs between stacks
604
+
605
+ If you are creating multiple `Stack`s inside the same CDK application, you
606
+ can reuse a VPC defined in one Stack in another by simply passing the VPC
607
+ instance around:
608
+
609
+ [sharing VPCs between stacks](test/integ.share-vpcs.lit.ts)
610
+
611
+ > Note: If you encounter an error like "Delete canceled. Cannot delete export ..."
612
+ > when using a cross-stack reference to a VPC, it's likely due to CloudFormation
613
+ > export/import constraints. In such cases, it's safer to use Vpc.fromLookup()
614
+ > in the consuming stack instead of directly referencing the VPC object, more details
615
+ > is provided in [Importing an existing VPC](#importing-an-existing-vpc). This
616
+ > avoids creating CloudFormation exports and gives more flexibility, especially
617
+ > when stacks need to be deleted or updated independently.
618
+
619
+ ### Importing an existing VPC
620
+
621
+ If your VPC is created outside your CDK app, you can use `Vpc.fromLookup()`.
622
+ The CDK CLI will search for the specified VPC in the the stack's region and
623
+ account, and import the subnet configuration. Looking up can be done by VPC
624
+ ID, but more flexibly by searching for a specific tag on the VPC.
625
+
626
+ Subnet types will be determined from the `aws-cdk:subnet-type` tag on the
627
+ subnet if it exists, or the presence of a route to an Internet Gateway
628
+ otherwise. Subnet names will be determined from the `aws-cdk:subnet-name` tag
629
+ on the subnet if it exists, or will mirror the subnet type otherwise (i.e.
630
+ a public subnet will have the name `"Public"`).
631
+
632
+ The result of the `Vpc.fromLookup()` operation will be written to a file
633
+ called `cdk.context.json`. You must commit this file to source control so
634
+ that the lookup values are available in non-privileged environments such
635
+ as CI build steps, and to ensure your template builds are repeatable.
636
+
637
+ Here's how `Vpc.fromLookup()` can be used:
638
+
639
+ [importing existing VPCs](test/integ.import-default-vpc.lit.ts)
640
+
641
+ `Vpc.fromLookup` is the recommended way to import VPCs. If for whatever
642
+ reason you do not want to use the context mechanism to look up a VPC at
643
+ synthesis time, you can also use `Vpc.fromVpcAttributes`. This has the
644
+ following limitations:
645
+
646
+ * Every subnet group in the VPC must have a subnet in each availability zone
647
+ (for example, each AZ must have both a public and private subnet). Asymmetric
648
+ VPCs are not supported.
649
+ * All VpcId, SubnetId, RouteTableId, ... parameters must either be known at
650
+ synthesis time, or they must come from deploy-time list parameters whose
651
+ deploy-time lengths are known at synthesis time.
652
+
653
+ Using `Vpc.fromVpcAttributes()` looks like this:
654
+
655
+ ```ts
656
+ const vpc = ec2.Vpc.fromVpcAttributes(this, 'VPC', {
657
+ vpcId: 'vpc-1234',
658
+ availabilityZones: ['us-east-1a', 'us-east-1b'],
659
+
660
+ // Either pass literals for all IDs
661
+ publicSubnetIds: ['s-12345', 's-67890'],
662
+
663
+ // OR: import a list of known length
664
+ privateSubnetIds: Fn.importListValue('PrivateSubnetIds', 2),
665
+
666
+ // OR: split an imported string to a list of known length
667
+ isolatedSubnetIds: Fn.split(',', ssm.StringParameter.valueForStringParameter(this, `MyParameter`), 2),
668
+ });
669
+ ```
670
+
671
+ For each subnet group the import function accepts optional parameters for subnet
672
+ names, route table ids and IPv4 CIDR blocks. When supplied, the length of these
673
+ lists are required to match the length of the list of subnet ids, allowing the
674
+ lists to be zipped together to form `ISubnet` instances.
675
+
676
+ Public subnet group example (for private or isolated subnet groups, use the properties with the respective prefix):
677
+
678
+ ```ts
679
+ const vpc = ec2.Vpc.fromVpcAttributes(this, 'VPC', {
680
+ vpcId: 'vpc-1234',
681
+ availabilityZones: ['us-east-1a', 'us-east-1b', 'us-east-1c'],
682
+ publicSubnetIds: ['s-12345', 's-34567', 's-56789'],
683
+ publicSubnetNames: ['Subnet A', 'Subnet B', 'Subnet C'],
684
+ publicSubnetRouteTableIds: ['rt-12345', 'rt-34567', 'rt-56789'],
685
+ publicSubnetIpv4CidrBlocks: ['10.0.0.0/24', '10.0.1.0/24', '10.0.2.0/24'],
686
+ });
687
+ ```
688
+
689
+ The above example will create an `IVpc` instance with three public subnets:
690
+
691
+ | Subnet id | Availability zone | Subnet name | Route table id | IPv4 CIDR |
692
+ | --------- | ----------------- | ----------- | -------------- | ----------- |
693
+ | s-12345 | us-east-1a | Subnet A | rt-12345 | 10.0.0.0/24 |
694
+ | s-34567 | us-east-1b | Subnet B | rt-34567 | 10.0.1.0/24 |
695
+ | s-56789 | us-east-1c | Subnet B | rt-56789 | 10.0.2.0/24 |
696
+
697
+ ### Restricting access to the VPC default security group
698
+
699
+ AWS Security best practices recommend that the [VPC default security group should
700
+ not allow inbound and outbound
701
+ traffic](https://docs.aws.amazon.com/securityhub/latest/userguide/ec2-controls.html#ec2-2).
702
+ When the `@aws-cdk/aws-ec2:restrictDefaultSecurityGroup` feature flag is set to
703
+ `true` (default for new projects) this will be enabled by default. If you do not
704
+ have this feature flag set you can either set the feature flag _or_ you can set
705
+ the `restrictDefaultSecurityGroup` property to `true`.
706
+
707
+ ```ts
708
+ new ec2.Vpc(this, 'VPC', {
709
+ restrictDefaultSecurityGroup: true,
710
+ });
711
+ ```
712
+
713
+ If you set this property to `true` and then later remove it or set it to `false`
714
+ the default ingress/egress will be restored on the default security group.
715
+
716
+ ## Allowing Connections
717
+
718
+ In AWS, all network traffic in and out of **Elastic Network Interfaces** (ENIs)
719
+ is controlled by **Security Groups**. You can think of Security Groups as a
720
+ firewall with a set of rules. By default, Security Groups allow no incoming
721
+ (ingress) traffic and all outgoing (egress) traffic. You can add ingress rules
722
+ to them to allow incoming traffic streams. To exert fine-grained control over
723
+ egress traffic, set `allowAllOutbound: false` on the `SecurityGroup`, after
724
+ which you can add egress traffic rules.
725
+
726
+ You can manipulate Security Groups directly:
727
+
728
+ ```ts fixture=with-vpc
729
+ const mySecurityGroup = new ec2.SecurityGroup(this, 'SecurityGroup', {
730
+ vpc,
731
+ description: 'Allow ssh access to ec2 instances',
732
+ allowAllOutbound: true // Can be set to false
733
+ });
734
+ mySecurityGroup.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(22), 'allow ssh access from the world');
735
+ ```
736
+
737
+ All constructs that create ENIs on your behalf (typically constructs that create
738
+ EC2 instances or other VPC-connected resources) will all have security groups
739
+ automatically assigned. Those constructs have an attribute called
740
+ **connections**, which is an object that makes it convenient to update the
741
+ security groups. If you want to allow connections between two constructs that
742
+ have security groups, you have to add an **Egress** rule to one Security Group,
743
+ and an **Ingress** rule to the other. The connections object will automatically
744
+ take care of this for you:
745
+
746
+ ```ts
747
+ declare const loadBalancer: elbv2.ApplicationLoadBalancer;
748
+ declare const appFleet: autoscaling.AutoScalingGroup;
749
+ declare const dbFleet: autoscaling.AutoScalingGroup;
750
+
751
+ // Allow connections from anywhere
752
+ loadBalancer.connections.allowFromAnyIpv4(ec2.Port.HTTPS, 'Allow inbound HTTPS');
753
+
754
+ // The same, but an explicit IP address
755
+ loadBalancer.connections.allowFrom(ec2.Peer.ipv4('1.2.3.4/32'), ec2.Port.HTTPS, 'Allow inbound HTTPS');
756
+
757
+ // Allow connection between AutoScalingGroups
758
+ appFleet.connections.allowTo(dbFleet, ec2.Port.HTTPS, 'App can call database');
759
+ ```
760
+
761
+ ### Connection Peers
762
+
763
+ There are various classes that implement the connection peer part:
764
+
765
+ ```ts
766
+ declare const appFleet: autoscaling.AutoScalingGroup;
767
+ declare const dbFleet: autoscaling.AutoScalingGroup;
768
+
769
+ // Simple connection peers
770
+ let peer = ec2.Peer.ipv4('10.0.0.0/16');
771
+ peer = ec2.Peer.anyIpv4();
772
+ peer = ec2.Peer.ipv6('::0/0');
773
+ peer = ec2.Peer.anyIpv6();
774
+ appFleet.connections.allowTo(peer, ec2.Port.HTTPS, 'Allow outbound HTTPS');
775
+ ```
776
+
777
+ Any object that has a security group can itself be used as a connection peer:
778
+
779
+ ```ts
780
+ declare const fleet1: autoscaling.AutoScalingGroup;
781
+ declare const fleet2: autoscaling.AutoScalingGroup;
782
+ declare const appFleet: autoscaling.AutoScalingGroup;
783
+
784
+ // These automatically create appropriate ingress and egress rules in both security groups
785
+ fleet1.connections.allowTo(fleet2, ec2.Port.HTTP, 'Allow between fleets');
786
+
787
+ appFleet.connections.allowFromAnyIpv4(ec2.Port.HTTP, 'Allow from load balancer');
788
+ ```
789
+
790
+ A managed prefix list is also a connection peer:
791
+
792
+ ``` ts
793
+ declare const appFleet: autoscaling.AutoScalingGroup;
794
+
795
+ const prefixList = new ec2.PrefixList(this, 'PrefixList', { maxEntries: 10 });
796
+ appFleet.connections.allowFrom(prefixList, ec2.Port.HTTPS);
797
+ ```
798
+
799
+ ### Port Ranges
800
+
801
+ The connections that are allowed are specified by port ranges. A number of classes provide
802
+ the connection specifier:
803
+
804
+ ```ts
805
+ ec2.Port.tcp(80)
806
+ ec2.Port.HTTPS
807
+ ec2.Port.tcpRange(60000, 65535)
808
+ ec2.Port.allTcp()
809
+ ec2.Port.allIcmp()
810
+ ec2.Port.allIcmpV6()
811
+ ec2.Port.allTraffic()
812
+ ```
813
+
814
+ > NOTE: Not all protocols have corresponding helper methods. In the absence of a helper method,
815
+ > you can instantiate `Port` yourself with your own settings. You are also welcome to contribute
816
+ > new helper methods.
817
+
818
+ ### Default Ports
819
+
820
+ Some Constructs have default ports associated with them. For example, the
821
+ listener of a load balancer does (it's the public port), or instances of an
822
+ RDS database (it's the port the database is accepting connections on).
823
+
824
+ If the object you're calling the peering method on has a default port associated with it, you can call
825
+ `allowDefaultPortFrom()` and omit the port specifier. If the argument has an associated default port, call
826
+ `allowDefaultPortTo()`.
827
+
828
+ For example:
829
+
830
+ ```ts
831
+ declare const listener: elbv2.ApplicationListener;
832
+ declare const appFleet: autoscaling.AutoScalingGroup;
833
+ declare const rdsDatabase: rds.DatabaseCluster;
834
+
835
+ // Port implicit in listener
836
+ listener.connections.allowDefaultPortFromAnyIpv4('Allow public');
837
+
838
+ // Port implicit in peer
839
+ appFleet.connections.allowDefaultPortTo(rdsDatabase, 'Fleet can access database');
840
+ ```
841
+
842
+ ### Security group rules
843
+
844
+ By default, security group wills be added inline to the security group in the output cloud formation
845
+ template, if applicable. This includes any static rules by ip address and port range. This
846
+ optimization helps to minimize the size of the template.
847
+
848
+ In some environments this is not desirable, for example if your security group access is controlled
849
+ via tags. You can disable inline rules per security group or globally via the context key
850
+ `@aws-cdk/aws-ec2.securityGroupDisableInlineRules`.
851
+
852
+ ```ts fixture=with-vpc
853
+ const mySecurityGroupWithoutInlineRules = new ec2.SecurityGroup(this, 'SecurityGroup', {
854
+ vpc,
855
+ description: 'Allow ssh access to ec2 instances',
856
+ allowAllOutbound: true,
857
+ disableInlineRules: true
858
+ });
859
+ //This will add the rule as an external cloud formation construct
860
+ mySecurityGroupWithoutInlineRules.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.SSH, 'allow ssh access from the world');
861
+ ```
862
+
863
+ ### Importing an existing security group
864
+
865
+ If you know the ID and the configuration of the security group to import, you can use `SecurityGroup.fromSecurityGroupId`:
866
+
867
+ ```ts
868
+ const sg = ec2.SecurityGroup.fromSecurityGroupId(this, 'SecurityGroupImport', 'sg-1234', {
869
+ allowAllOutbound: true,
870
+ });
871
+ ```
872
+
873
+ Alternatively, use lookup methods to import security groups if you do not know the ID or the configuration details. Method `SecurityGroup.fromLookupByName` looks up a security group if the security group ID is unknown.
874
+
875
+ ```ts fixture=with-vpc
876
+ const sg = ec2.SecurityGroup.fromLookupByName(this, 'SecurityGroupLookup', 'security-group-name', vpc);
877
+ ```
878
+
879
+ If the security group ID is known and configuration details are unknown, use method `SecurityGroup.fromLookupById` instead. This method will lookup property `allowAllOutbound` from the current configuration of the security group.
880
+
881
+ ```ts
882
+ const sg = ec2.SecurityGroup.fromLookupById(this, 'SecurityGroupLookup', 'sg-1234');
883
+ ```
884
+
885
+ The result of `SecurityGroup.fromLookupByName` and `SecurityGroup.fromLookupById` operations will be written to a file called `cdk.context.json`. You must commit this file to source control so that the lookup values are available in non-privileged environments such as CI build steps, and to ensure your template builds are repeatable.
886
+
887
+ ### Cross Stack Connections
888
+
889
+ If you are attempting to add a connection from a peer in one stack to a peer in a different stack, sometimes it is necessary to ensure that you are making the connection in
890
+ a specific stack in order to avoid a cyclic reference. If there are no other dependencies between stacks then it will not matter in which stack you make
891
+ the connection, but if there are existing dependencies (i.e. stack1 already depends on stack2), then it is important to make the connection in the dependent stack (i.e. stack1).
892
+
893
+ Whenever you make a `connections` function call, the ingress and egress security group rules will be added to the stack that the calling object exists in.
894
+ So if you are doing something like `peer1.connections.allowFrom(peer2)`, then the security group rules (both ingress and egress) will be created in `peer1`'s Stack.
895
+
896
+ As an example, if we wanted to allow a connection from a security group in one stack (egress) to a security group in a different stack (ingress),
897
+ we would make the connection like:
898
+
899
+ **If Stack1 depends on Stack2**
900
+
901
+ ```ts fixture=with-vpc
902
+ // Stack 1
903
+ declare const stack1: Stack;
904
+ declare const stack2: Stack;
905
+
906
+ const sg1 = new ec2.SecurityGroup(stack1, 'SG1', {
907
+ allowAllOutbound: false, // if this is `true` then no egress rule will be created
908
+ vpc,
909
+ });
910
+
911
+ // Stack 2
912
+ const sg2 = new ec2.SecurityGroup(stack2, 'SG2', {
913
+ allowAllOutbound: false, // if this is `true` then no egress rule will be created
914
+ vpc,
915
+ });
916
+
917
+
918
+ // `connections.allowTo` on `sg1` since we want the
919
+ // rules to be created in Stack1
920
+ sg1.connections.allowTo(sg2, ec2.Port.tcp(3333));
921
+ ```
922
+
923
+ In this case both the Ingress Rule for `sg2` and the Egress Rule for `sg1` will both be created
924
+ in `Stack 1` which avoids the cyclic reference.
925
+
926
+
927
+ **If Stack2 depends on Stack1**
928
+
929
+ ```ts fixture=with-vpc
930
+ // Stack 1
931
+ declare const stack1: Stack;
932
+ declare const stack2: Stack;
933
+
934
+ const sg1 = new ec2.SecurityGroup(stack1, 'SG1', {
935
+ allowAllOutbound: false, // if this is `true` then no egress rule will be created
936
+ vpc,
937
+ });
938
+
939
+ // Stack 2
940
+ const sg2 = new ec2.SecurityGroup(stack2, 'SG2', {
941
+ allowAllOutbound: false, // if this is `true` then no egress rule will be created
942
+ vpc,
943
+ });
944
+
945
+
946
+ // `connections.allowFrom` on `sg2` since we want the
947
+ // rules to be created in Stack2
948
+ sg2.connections.allowFrom(sg1, ec2.Port.tcp(3333));
949
+ ```
950
+
951
+ In this case both the Ingress Rule for `sg2` and the Egress Rule for `sg1` will both be created
952
+ in `Stack 2` which avoids the cyclic reference.
953
+
954
+ ## Machine Images (AMIs)
955
+
956
+ AMIs control the OS that gets launched when you start your EC2 instance. The EC2
957
+ library contains constructs to select the AMI you want to use.
958
+
959
+ Depending on the type of AMI, you select it a different way. Here are some
960
+ examples of images you might want to use:
961
+
962
+ [example of creating images](test/example.images.lit.ts)
963
+
964
+ > NOTE: The AMIs selected by `MachineImage.lookup()` will be cached in
965
+ > `cdk.context.json`, so that your AutoScalingGroup instances aren't replaced while
966
+ > you are making unrelated changes to your CDK app.
967
+ >
968
+ > To query for the latest AMI again, remove the relevant cache entry from
969
+ > `cdk.context.json`, or use the `cdk context` command. For more information, see
970
+ > [Runtime Context](https://docs.aws.amazon.com/cdk/latest/guide/context.html) in the CDK
971
+ > developer guide.
972
+ >
973
+ > `MachineImage.genericLinux()`, `MachineImage.genericWindows()` will use `CfnMapping` in
974
+ > an agnostic stack.
975
+
976
+ ## Special VPC configurations
977
+
978
+ ### VPN connections to a VPC
979
+
980
+ Create your VPC with VPN connections by specifying the `vpnConnections` props (keys are construct `id`s):
981
+
982
+ ```ts
983
+ import { SecretValue } from 'aws-cdk-lib/core';
984
+
985
+ const vpc = new ec2.Vpc(this, 'MyVpc', {
986
+ vpnConnections: {
987
+ dynamic: { // Dynamic routing (BGP)
988
+ ip: '1.2.3.4',
989
+ tunnelOptions: [
990
+ {
991
+ preSharedKeySecret: SecretValue.unsafePlainText('secretkey1234'),
992
+ },
993
+ {
994
+ preSharedKeySecret: SecretValue.unsafePlainText('secretkey5678'),
995
+ },
996
+ ],
997
+ },
998
+ static: { // Static routing
999
+ ip: '4.5.6.7',
1000
+ staticRoutes: [
1001
+ '192.168.10.0/24',
1002
+ '192.168.20.0/24'
1003
+ ]
1004
+ }
1005
+ }
1006
+ });
1007
+ ```
1008
+
1009
+ To create a VPC that can accept VPN connections, set `vpnGateway` to `true`:
1010
+
1011
+ ```ts
1012
+ const vpc = new ec2.Vpc(this, 'MyVpc', {
1013
+ vpnGateway: true
1014
+ });
1015
+ ```
1016
+
1017
+ VPN connections can then be added:
1018
+
1019
+ ```ts fixture=with-vpc
1020
+ vpc.addVpnConnection('Dynamic', {
1021
+ ip: '1.2.3.4'
1022
+ });
1023
+ ```
1024
+
1025
+ By default, routes will be propagated on the route tables associated with the private subnets. If no
1026
+ private subnets exist, isolated subnets are used. If no isolated subnets exist, public subnets are
1027
+ used. Use the `Vpc` property `vpnRoutePropagation` to customize this behavior.
1028
+
1029
+ VPN connections expose [metrics (cloudwatch.Metric)](https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/aws-cloudwatch/README.md) across all tunnels in the account/region and per connection:
1030
+
1031
+ ```ts fixture=with-vpc
1032
+ // Across all tunnels in the account/region
1033
+ const allDataOut = ec2.VpnConnection.metricAllTunnelDataOut();
1034
+
1035
+ // For a specific vpn connection
1036
+ const vpnConnection = vpc.addVpnConnection('Dynamic', {
1037
+ ip: '1.2.3.4'
1038
+ });
1039
+ const state = vpnConnection.metricTunnelState();
1040
+ ```
1041
+
1042
+ ### VPC endpoints
1043
+
1044
+ A VPC endpoint enables you to privately connect your VPC to supported AWS services and VPC endpoint services powered by PrivateLink without requiring an internet gateway, NAT device, VPN connection, or AWS Direct Connect connection. Instances in your VPC do not require public IP addresses to communicate with resources in the service. Traffic between your VPC and the other service does not leave the Amazon network.
1045
+
1046
+ Endpoints are virtual devices. They are horizontally scaled, redundant, and highly available VPC components that allow communication between instances in your VPC and services without imposing availability risks or bandwidth constraints on your network traffic.
1047
+
1048
+ [example of setting up VPC endpoints](test/integ.vpc-endpoint.lit.ts)
1049
+
1050
+ By default, CDK will place a VPC endpoint in one subnet per AZ. If you wish to override the AZs CDK places the VPC endpoint in,
1051
+ use the `subnets` parameter as follows:
1052
+
1053
+ ```ts
1054
+ declare const vpc: ec2.Vpc;
1055
+
1056
+ new ec2.InterfaceVpcEndpoint(this, 'VPC Endpoint', {
1057
+ vpc,
1058
+ service: new ec2.InterfaceVpcEndpointService('com.amazonaws.vpce.us-east-1.vpce-svc-uuddlrlrbastrtsvc', 443),
1059
+ // Choose which availability zones to place the VPC endpoint in, based on
1060
+ // available AZs
1061
+ subnets: {
1062
+ availabilityZones: ['us-east-1a', 'us-east-1c']
1063
+ }
1064
+ });
1065
+ ```
1066
+
1067
+ Per the [AWS documentation](https://aws.amazon.com/premiumsupport/knowledge-center/interface-endpoint-availability-zone/), not all
1068
+ VPC endpoint services are available in all AZs. If you specify the parameter `lookupSupportedAzs`, CDK attempts to discover which
1069
+ AZs an endpoint service is available in, and will ensure the VPC endpoint is not placed in a subnet that doesn't match those AZs.
1070
+ These AZs will be stored in cdk.context.json.
1071
+
1072
+ ```ts
1073
+ declare const vpc: ec2.Vpc;
1074
+
1075
+ new ec2.InterfaceVpcEndpoint(this, 'VPC Endpoint', {
1076
+ vpc,
1077
+ service: new ec2.InterfaceVpcEndpointService('com.amazonaws.vpce.us-east-1.vpce-svc-uuddlrlrbastrtsvc', 443),
1078
+ // Choose which availability zones to place the VPC endpoint in, based on
1079
+ // available AZs
1080
+ lookupSupportedAzs: true
1081
+ });
1082
+ ```
1083
+
1084
+ Pre-defined AWS services are defined in the [InterfaceVpcEndpointAwsService](lib/vpc-endpoint.ts) class, and can be used to
1085
+ create VPC endpoints without having to configure name, ports, etc. For example, a Keyspaces endpoint can be created for
1086
+ use in your VPC:
1087
+
1088
+ ``` ts
1089
+ declare const vpc: ec2.Vpc;
1090
+
1091
+ new ec2.InterfaceVpcEndpoint(this, 'VPC Endpoint', {
1092
+ vpc,
1093
+ service: ec2.InterfaceVpcEndpointAwsService.KEYSPACES,
1094
+ });
1095
+ ```
1096
+
1097
+ #### Security groups for interface VPC endpoints
1098
+
1099
+ By default, interface VPC endpoints create a new security group and all traffic to the endpoint from within the VPC will be automatically allowed.
1100
+
1101
+ Use the `connections` object to allow other traffic to flow to the endpoint:
1102
+
1103
+ ```ts
1104
+ declare const myEndpoint: ec2.InterfaceVpcEndpoint;
1105
+
1106
+ myEndpoint.connections.allowDefaultPortFromAnyIpv4();
1107
+ ```
1108
+
1109
+ Alternatively, existing security groups can be used by specifying the `securityGroups` prop.
1110
+
1111
+ #### IPv6 and Dualstack support
1112
+
1113
+ As IPv4 addresses are running out, many AWS services are adding support for IPv6 or Dualstack (IPv4 and IPv6 support) for their VPC Endpoints.
1114
+
1115
+ IPv6 and Dualstack address types can be configured by using:
1116
+
1117
+ ```ts fixture=with-vpc
1118
+ vpc.addInterfaceEndpoint('ExampleEndpoint', {
1119
+ service: ec2.InterfaceVpcEndpointAwsService.ECR,
1120
+ ipAddressType: ec2.VpcEndpointIpAddressType.IPV6,
1121
+ dnsRecordIpType: ec2.VpcEndpointDnsRecordIpType.IPV6,
1122
+ });
1123
+ ```
1124
+ The possible values for `ipAddressType` are:
1125
+ * `IPV4` This option is supported only if all selected subnets have IPv4 address ranges and the endpoint service accepts IPv4 requests.
1126
+ * `IPV6` This option is supported only if all selected subnets are IPv6 only subnets and the endpoint service accepts IPv6 requests.
1127
+ * `DUALSTACK` Assign both IPv4 and IPv6 addresses to the endpoint network interfaces. This option is supported only if all selected subnets have both IPv4 and IPv6 address ranges and the endpoint service accepts both IPv4 and IPv6 requests.
1128
+ The possible values for `dnsRecordIpType` are:
1129
+ * `IPV4` Create A records for the private, Regional, and zonal DNS names. `ipAddressType` MUST be `IPV4` or `DUALSTACK`
1130
+ * `IPV6` Create AAAA records for the private, Regional, and zonal DNS names. `ipAddressType` MUST be `IPV6` or `DUALSTACK`
1131
+ * `DUALSTACK` Create A and AAAA records for the private, Regional, and zonal DNS names. `ipAddressType` MUST be `DUALSTACK`
1132
+ * `SERVICE_DEFINED` Create A records for the private, Regional, and zonal DNS names and AAAA records for the Regional and zonal DNS names. `ipAddressType` MUST be `DUALSTACK`
1133
+ We can only configure dnsRecordIpType when ipAddressType is specified and private DNS must be enabled to use any DNS related features. To avoid complications, it is recommended to always set `privateDnsEnabled` to true (defaults to true) and set the `ipAddressType` and `dnsRecordIpType` explicitly when needing specific IP type behavior. Furthermore, check that the VPC being used supports the IP address type that is being configued.
1134
+ More documentation on compatibility and specifications can be found [here](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html#connect-to-endpoint-service)
1135
+
1136
+ ### VPC endpoint services
1137
+
1138
+ A VPC endpoint service enables you to expose a Network Load Balancer(s) as a provider service to consumers, who connect to your service over a VPC endpoint. You can restrict access to your service via allowed principals (anything that extends ArnPrincipal), and require that new connections be manually accepted. You can also enable Contributor Insight rules.
1139
+
1140
+ ```ts
1141
+ declare const networkLoadBalancer1: elbv2.NetworkLoadBalancer;
1142
+ declare const networkLoadBalancer2: elbv2.NetworkLoadBalancer;
1143
+
1144
+ new ec2.VpcEndpointService(this, 'EndpointService', {
1145
+ vpcEndpointServiceLoadBalancers: [networkLoadBalancer1, networkLoadBalancer2],
1146
+ acceptanceRequired: true,
1147
+ allowedPrincipals: [new iam.ArnPrincipal('arn:aws:iam::123456789012:root')],
1148
+ contributorInsights: true
1149
+ });
1150
+ ```
1151
+
1152
+ You can also include a service principal in the `allowedPrincipals` property by specifying it as a parameter to the `ArnPrincipal` constructor.
1153
+ The resulting VPC endpoint will have an allowlisted principal of type `Service`, instead of `Arn` for that item in the list.
1154
+ ```ts
1155
+ declare const networkLoadBalancer: elbv2.NetworkLoadBalancer;
1156
+
1157
+ new ec2.VpcEndpointService(this, 'EndpointService', {
1158
+ vpcEndpointServiceLoadBalancers: [networkLoadBalancer],
1159
+ allowedPrincipals: [new iam.ArnPrincipal('ec2.amazonaws.com')],
1160
+ });
1161
+ ```
1162
+
1163
+ You can specify which IP address types (IPv4, IPv6, or both) are supported for your VPC endpoint service:
1164
+
1165
+ ```ts
1166
+ declare const networkLoadBalancer: elbv2.NetworkLoadBalancer;
1167
+
1168
+ new ec2.VpcEndpointService(this, 'EndpointService', {
1169
+ vpcEndpointServiceLoadBalancers: [networkLoadBalancer],
1170
+ // Support both IPv4 and IPv6 connections to the endpoint service
1171
+ supportedIpAddressTypes: [
1172
+ ec2.IpAddressType.IPV4,
1173
+ ec2.IpAddressType.IPV6,
1174
+ ],
1175
+ });
1176
+ ```
1177
+
1178
+ You can restrict access to your endpoint service to specific AWS regions:
1179
+
1180
+ ```ts
1181
+ declare const networkLoadBalancer: elbv2.NetworkLoadBalancer;
1182
+
1183
+ new ec2.VpcEndpointService(this, 'EndpointService', {
1184
+ vpcEndpointServiceLoadBalancers: [networkLoadBalancer],
1185
+ // Allow service consumers from these regions only
1186
+ allowedRegions: ['us-east-1', 'eu-west-1'],
1187
+ });
1188
+ ```
1189
+
1190
+ Endpoint services support private DNS, which makes it easier for clients to connect to your service by automatically setting up DNS in their VPC.
1191
+ You can enable private DNS on an endpoint service like so:
1192
+
1193
+ ```ts
1194
+ import { PublicHostedZone, VpcEndpointServiceDomainName } from 'aws-cdk-lib/aws-route53';
1195
+ declare const zone: PublicHostedZone;
1196
+ declare const vpces: ec2.VpcEndpointService;
1197
+
1198
+ new VpcEndpointServiceDomainName(this, 'EndpointDomain', {
1199
+ endpointService: vpces,
1200
+ domainName: 'my-stuff.aws-cdk.dev',
1201
+ publicHostedZone: zone,
1202
+ });
1203
+ ```
1204
+
1205
+ Note: The domain name must be owned (registered through Route53) by the account the endpoint service is in, or delegated to the account.
1206
+ The VpcEndpointServiceDomainName will handle the AWS side of domain verification, the process for which can be found
1207
+ [here](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html)
1208
+
1209
+ ### Client VPN endpoint
1210
+
1211
+ AWS Client VPN is a managed client-based VPN service that enables you to securely access your AWS
1212
+ resources and resources in your on-premises network. With Client VPN, you can access your resources
1213
+ from any location using an OpenVPN-based VPN client.
1214
+
1215
+ Use the `addClientVpnEndpoint()` method to add a client VPN endpoint to a VPC:
1216
+
1217
+ ```ts fixture=client-vpn
1218
+ vpc.addClientVpnEndpoint('Endpoint', {
1219
+ cidr: '10.100.0.0/16',
1220
+ serverCertificateArn: 'arn:aws:acm:us-east-1:123456789012:certificate/server-certificate-id',
1221
+ // Mutual authentication
1222
+ clientCertificateArn: 'arn:aws:acm:us-east-1:123456789012:certificate/client-certificate-id',
1223
+ // User-based authentication
1224
+ userBasedAuthentication: ec2.ClientVpnUserBasedAuthentication.federated(samlProvider),
1225
+ });
1226
+ ```
1227
+
1228
+ The endpoint must use at least one [authentication method](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html):
1229
+
1230
+ * Mutual authentication with a client certificate
1231
+ * User-based authentication (directory or federated)
1232
+
1233
+ If user-based authentication is used, the [self-service portal URL](https://docs.aws.amazon.com/vpn/latest/clientvpn-user/self-service-portal.html)
1234
+ is made available via a CloudFormation output.
1235
+
1236
+ By default, a new security group is created, and logging is enabled. Moreover, a rule to
1237
+ authorize all users to the VPC CIDR is created.
1238
+
1239
+ To customize authorization rules, set the `authorizeAllUsersToVpcCidr` prop to `false`
1240
+ and use `addAuthorizationRule()`:
1241
+
1242
+ ```ts fixture=client-vpn
1243
+ const endpoint = vpc.addClientVpnEndpoint('Endpoint', {
1244
+ cidr: '10.100.0.0/16',
1245
+ serverCertificateArn: 'arn:aws:acm:us-east-1:123456789012:certificate/server-certificate-id',
1246
+ userBasedAuthentication: ec2.ClientVpnUserBasedAuthentication.federated(samlProvider),
1247
+ authorizeAllUsersToVpcCidr: false,
1248
+ });
1249
+
1250
+ endpoint.addAuthorizationRule('Rule', {
1251
+ cidr: '10.0.10.0/32',
1252
+ groupId: 'group-id',
1253
+ });
1254
+ ```
1255
+
1256
+ Use `addRoute()` to configure network routes:
1257
+
1258
+ ```ts fixture=client-vpn
1259
+ const endpoint = vpc.addClientVpnEndpoint('Endpoint', {
1260
+ cidr: '10.100.0.0/16',
1261
+ serverCertificateArn: 'arn:aws:acm:us-east-1:123456789012:certificate/server-certificate-id',
1262
+ userBasedAuthentication: ec2.ClientVpnUserBasedAuthentication.federated(samlProvider),
1263
+ });
1264
+
1265
+ // Client-to-client access
1266
+ endpoint.addRoute('Route', {
1267
+ cidr: '10.100.0.0/16',
1268
+ target: ec2.ClientVpnRouteTarget.local(),
1269
+ });
1270
+ ```
1271
+
1272
+ Use the `connections` object of the endpoint to allow traffic to other security groups.
1273
+
1274
+ ## Instances
1275
+
1276
+ You can use the `Instance` class to start up a single EC2 instance. For production setups, we recommend
1277
+ you use an `AutoScalingGroup` from the `aws-autoscaling` module instead, as AutoScalingGroups will take
1278
+ care of restarting your instance if it ever fails.
1279
+
1280
+ ```ts
1281
+ declare const vpc: ec2.Vpc;
1282
+ declare const instanceType: ec2.InstanceType;
1283
+
1284
+ // Amazon Linux 2
1285
+ new ec2.Instance(this, 'Instance2', {
1286
+ vpc,
1287
+ instanceType,
1288
+ machineImage: ec2.MachineImage.latestAmazonLinux2(),
1289
+ });
1290
+
1291
+ // Amazon Linux 2 with kernel 5.x
1292
+ new ec2.Instance(this, 'Instance3', {
1293
+ vpc,
1294
+ instanceType,
1295
+ machineImage: ec2.MachineImage.latestAmazonLinux2({
1296
+ kernel: ec2.AmazonLinux2Kernel.KERNEL_5_10,
1297
+ }),
1298
+ });
1299
+
1300
+ // Amazon Linux 2023
1301
+ new ec2.Instance(this, 'Instance4', {
1302
+ vpc,
1303
+ instanceType,
1304
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(),
1305
+ });
1306
+
1307
+ // Graviton 3 Processor
1308
+ new ec2.Instance(this, 'Instance5', {
1309
+ vpc,
1310
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
1311
+ machineImage: ec2.MachineImage.latestAmazonLinux2023({
1312
+ cpuType: ec2.AmazonLinuxCpuType.ARM_64,
1313
+ }),
1314
+ });
1315
+ ```
1316
+
1317
+ ### Latest Amazon Linux Images
1318
+
1319
+ Rather than specifying a specific AMI ID to use, it is possible to specify a SSM
1320
+ Parameter that contains the AMI ID. AWS publishes a set of [public parameters](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-public-parameters-ami.html)
1321
+ that contain the latest Amazon Linux AMIs. To make it easier to query a
1322
+ particular image parameter, the CDK provides a couple of constructs `AmazonLinux2ImageSsmParameter`,
1323
+ `AmazonLinux2022ImageSsmParameter`, & `AmazonLinux2023SsmParameter`. For example
1324
+ to use the latest `al2023` image:
1325
+
1326
+ ```ts
1327
+ declare const vpc: ec2.Vpc;
1328
+
1329
+ new ec2.Instance(this, 'LatestAl2023', {
1330
+ vpc,
1331
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
1332
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(),
1333
+ });
1334
+ ```
1335
+
1336
+ > **Warning**
1337
+ > Since this retrieves the value from an SSM parameter at deployment time, the
1338
+ > value will be resolved each time the stack is deployed. This means that if
1339
+ > the parameter contains a different value on your next deployment, the instance
1340
+ > will be replaced.
1341
+
1342
+ It is also possible to perform the lookup once at synthesis time and then cache
1343
+ the value in CDK context. This way the value will not change on future
1344
+ deployments unless you manually refresh the context.
1345
+
1346
+ ```ts
1347
+ declare const vpc: ec2.Vpc;
1348
+
1349
+ new ec2.Instance(this, 'LatestAl2023', {
1350
+ vpc,
1351
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
1352
+ machineImage: ec2.MachineImage.latestAmazonLinux2023({
1353
+ cachedInContext: true, // default is false
1354
+ }),
1355
+ });
1356
+
1357
+ // or
1358
+ new ec2.Instance(this, 'LatestAl2023', {
1359
+ vpc,
1360
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
1361
+ // context cache is turned on by default
1362
+ machineImage: new ec2.AmazonLinux2023ImageSsmParameter(),
1363
+ });
1364
+ ```
1365
+
1366
+ #### Kernel Versions
1367
+
1368
+ Each Amazon Linux AMI uses a specific kernel version. Most Amazon Linux
1369
+ generations come with an AMI using the "default" kernel and then 1 or more
1370
+ AMIs using a specific kernel version, which may or may not be different from the
1371
+ default kernel version.
1372
+
1373
+ For example, Amazon Linux 2 has two different AMIs available from the SSM
1374
+ parameters.
1375
+
1376
+ - `/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-ebs`
1377
+ - This is the "default" kernel which uses `kernel-4.14`
1378
+ - `/aws/service/ami-amazon-linux-latest/amzn2-ami-kernel-5.10-hvm-x86_64-ebs`
1379
+
1380
+ If a new Amazon Linux generation AMI is published with a new kernel version,
1381
+ then a new SSM parameter will be created with the new version
1382
+ (e.g. `/aws/service/ami-amazon-linux-latest/amzn2-ami-kernel-5.15-hvm-x86_64-ebs`),
1383
+ but the "default" AMI may or may not be updated.
1384
+
1385
+ If you would like to make sure you always have the latest kernel version, then
1386
+ either specify the specific latest kernel version or opt-in to using the CDK
1387
+ latest kernel version.
1388
+
1389
+ ```ts
1390
+ declare const vpc: ec2.Vpc;
1391
+
1392
+ new ec2.Instance(this, 'LatestAl2023', {
1393
+ vpc,
1394
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
1395
+ // context cache is turned on by default
1396
+ machineImage: new ec2.AmazonLinux2023ImageSsmParameter({
1397
+ kernel: ec2.AmazonLinux2023Kernel.KERNEL_6_1,
1398
+ }),
1399
+ });
1400
+ ```
1401
+ _CDK managed latest_
1402
+
1403
+ ```ts
1404
+ declare const vpc: ec2.Vpc;
1405
+
1406
+ new ec2.Instance(this, 'LatestAl2023', {
1407
+ vpc,
1408
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
1409
+ // context cache is turned on by default
1410
+ machineImage: new ec2.AmazonLinux2023ImageSsmParameter({
1411
+ kernel: ec2.AmazonLinux2023Kernel.CDK_LATEST,
1412
+ }),
1413
+ });
1414
+
1415
+ // or
1416
+
1417
+ new ec2.Instance(this, 'LatestAl2023', {
1418
+ vpc,
1419
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
1420
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(), // always uses latest kernel version
1421
+ });
1422
+ ```
1423
+
1424
+ When using the CDK managed latest version, when a new kernel version is made
1425
+ available the `LATEST` will be updated to point to the new kernel version. You
1426
+ then would be required to update the newest CDK version for it to take effect.
1427
+
1428
+ ### Configuring Instances using CloudFormation Init (cfn-init)
1429
+
1430
+ CloudFormation Init allows you to configure your instances by writing files to them, installing software
1431
+ packages, starting services and running arbitrary commands. By default, if any of the instance setup
1432
+ commands throw an error; the deployment will fail and roll back to the previously known good state.
1433
+ The following documentation also applies to `AutoScalingGroup`s.
1434
+
1435
+ For the full set of capabilities of this system, see the documentation for
1436
+ [`AWS::CloudFormation::Init`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html).
1437
+ Here is an example of applying some configuration to an instance:
1438
+
1439
+ ```ts
1440
+ declare const vpc: ec2.Vpc;
1441
+ declare const instanceType: ec2.InstanceType;
1442
+ declare const machineImage: ec2.IMachineImage;
1443
+
1444
+ new ec2.Instance(this, 'Instance', {
1445
+ vpc,
1446
+ instanceType,
1447
+ machineImage,
1448
+
1449
+ // Showing the most complex setup, if you have simpler requirements
1450
+ // you can use `CloudFormationInit.fromElements()`.
1451
+ init: ec2.CloudFormationInit.fromConfigSets({
1452
+ configSets: {
1453
+ // Applies the configs below in this order
1454
+ default: ['yumPreinstall', 'config'],
1455
+ },
1456
+ configs: {
1457
+ yumPreinstall: new ec2.InitConfig([
1458
+ // Install an Amazon Linux package using yum
1459
+ ec2.InitPackage.yum('git'),
1460
+ ]),
1461
+ config: new ec2.InitConfig([
1462
+ // Create a JSON file from tokens (can also create other files)
1463
+ ec2.InitFile.fromObject('/etc/stack.json', {
1464
+ stackId: Stack.of(this).stackId,
1465
+ stackName: Stack.of(this).stackName,
1466
+ region: Stack.of(this).region,
1467
+ }),
1468
+
1469
+ // Create a group and user
1470
+ ec2.InitGroup.fromName('my-group'),
1471
+ ec2.InitUser.fromName('my-user'),
1472
+
1473
+ // Install an RPM from the internet
1474
+ ec2.InitPackage.rpm('http://mirrors.ukfast.co.uk/sites/dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/r/rubygem-git-1.5.0-2.el8.noarch.rpm'),
1475
+ ]),
1476
+ },
1477
+ }),
1478
+ initOptions: {
1479
+ // Optional, which configsets to activate (['default'] by default)
1480
+ configSets: ['default'],
1481
+
1482
+ // Optional, how long the installation is expected to take (5 minutes by default)
1483
+ timeout: Duration.minutes(30),
1484
+
1485
+ // Optional, whether to include the --url argument when running cfn-init and cfn-signal commands (false by default)
1486
+ includeUrl: true,
1487
+
1488
+ // Optional, whether to include the --role argument when running cfn-init and cfn-signal commands (false by default)
1489
+ includeRole: true,
1490
+ },
1491
+ });
1492
+ ```
1493
+
1494
+ `InitCommand` can not be used to start long-running processes. At deploy time,
1495
+ `cfn-init` will always wait for the process to exit before continuing, causing
1496
+ the CloudFormation deployment to fail because the signal hasn't been received
1497
+ within the expected timeout.
1498
+
1499
+ Instead, you should install a service configuration file onto your machine `InitFile`,
1500
+ and then use `InitService` to start it.
1501
+
1502
+ If your Linux OS is using SystemD (like Amazon Linux 2 or higher), the CDK has
1503
+ helpers to create a long-running service using CFN Init. You can create a
1504
+ SystemD-compatible config file using `InitService.systemdConfigFile()`, and
1505
+ start it immediately. The following examples shows how to start a trivial Python
1506
+ 3 web server:
1507
+
1508
+ ```ts
1509
+ declare const vpc: ec2.Vpc;
1510
+ declare const instanceType: ec2.InstanceType;
1511
+
1512
+ new ec2.Instance(this, 'Instance', {
1513
+ vpc,
1514
+ instanceType,
1515
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(),
1516
+
1517
+ init: ec2.CloudFormationInit.fromElements(
1518
+ // Create a simple config file that runs a Python web server
1519
+ ec2.InitService.systemdConfigFile('simpleserver', {
1520
+ command: '/usr/bin/python3 -m http.server 8080',
1521
+ cwd: '/var/www/html',
1522
+ }),
1523
+ // Start the server using SystemD
1524
+ ec2.InitService.enable('simpleserver', {
1525
+ serviceManager: ec2.ServiceManager.SYSTEMD,
1526
+ }),
1527
+ // Drop an example file to show the web server working
1528
+ ec2.InitFile.fromString('/var/www/html/index.html', 'Hello! It\'s working!'),
1529
+ ),
1530
+ });
1531
+ ```
1532
+
1533
+ You can have services restarted after the init process has made changes to the system.
1534
+ To do that, instantiate an `InitServiceRestartHandle` and pass it to the config elements
1535
+ that need to trigger the restart and the service itself. For example, the following
1536
+ config writes a config file for nginx, extracts an archive to the root directory, and then
1537
+ restarts nginx so that it picks up the new config and files:
1538
+
1539
+ ```ts
1540
+ declare const myBucket: s3.Bucket;
1541
+
1542
+ const handle = new ec2.InitServiceRestartHandle();
1543
+
1544
+ ec2.CloudFormationInit.fromElements(
1545
+ ec2.InitFile.fromString('/etc/nginx/nginx.conf', '...', { serviceRestartHandles: [handle] }),
1546
+ ec2.InitSource.fromS3Object('/var/www/html', myBucket, 'html.zip', { serviceRestartHandles: [handle] }),
1547
+ ec2.InitService.enable('nginx', {
1548
+ serviceRestartHandle: handle,
1549
+ })
1550
+ );
1551
+ ```
1552
+
1553
+ You can use the `environmentVariables` or `environmentFiles` parameters to specify environment variables
1554
+ for your services:
1555
+
1556
+ ```ts
1557
+ new ec2.InitConfig([
1558
+ ec2.InitFile.fromString('/myvars.env', 'VAR_FROM_FILE="VAR_FROM_FILE"'),
1559
+ ec2.InitService.systemdConfigFile('myapp', {
1560
+ command: '/usr/bin/python3 -m http.server 8080',
1561
+ cwd: '/var/www/html',
1562
+ environmentVariables: {
1563
+ MY_VAR: 'MY_VAR',
1564
+ },
1565
+ environmentFiles: ['/myvars.env'],
1566
+ }),
1567
+ ])
1568
+ ```
1569
+
1570
+ ### Bastion Hosts
1571
+
1572
+ A bastion host functions as an instance used to access servers and resources in a VPC without open up the complete VPC on a network level.
1573
+ You can use bastion hosts using a standard SSH connection targeting port 22 on the host. As an alternative, you can connect the SSH connection
1574
+ feature of AWS Systems Manager Session Manager, which does not need an opened security group. (https://aws.amazon.com/about-aws/whats-new/2019/07/session-manager-launches-tunneling-support-for-ssh-and-scp/)
1575
+
1576
+ A default bastion host for use via SSM can be configured like:
1577
+
1578
+ ```ts fixture=with-vpc
1579
+ const host = new ec2.BastionHostLinux(this, 'BastionHost', { vpc });
1580
+ ```
1581
+
1582
+ If you want to connect from the internet using SSH, you need to place the host into a public subnet. You can then configure allowed source hosts.
1583
+
1584
+ ```ts fixture=with-vpc
1585
+ const host = new ec2.BastionHostLinux(this, 'BastionHost', {
1586
+ vpc,
1587
+ subnetSelection: { subnetType: ec2.SubnetType.PUBLIC },
1588
+ });
1589
+ host.allowSshAccessFrom(ec2.Peer.ipv4('1.2.3.4/32'));
1590
+ ```
1591
+
1592
+ As there are no SSH public keys deployed on this machine, you need to use [EC2 Instance Connect](https://aws.amazon.com/de/blogs/compute/new-using-amazon-ec2-instance-connect-for-ssh-access-to-your-ec2-instances/)
1593
+ with the command `aws ec2-instance-connect send-ssh-public-key` to provide your SSH public key.
1594
+
1595
+ EBS volume for the bastion host can be encrypted like:
1596
+
1597
+ ```ts fixture=with-vpc
1598
+ const host = new ec2.BastionHostLinux(this, 'BastionHost', {
1599
+ vpc,
1600
+ blockDevices: [{
1601
+ deviceName: '/dev/sdh',
1602
+ volume: ec2.BlockDeviceVolume.ebs(10, {
1603
+ encrypted: true,
1604
+ }),
1605
+ }],
1606
+ });
1607
+ ```
1608
+
1609
+ It's recommended to set the `@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault`
1610
+ [feature flag](https://docs.aws.amazon.com/cdk/v2/guide/featureflags.html) to `true` to use Amazon Linux 2023 as the
1611
+ bastion host AMI. Without this flag set, the bastion host will default to Amazon Linux 2, which will be unsupported in
1612
+ June 2025.
1613
+
1614
+ ```json
1615
+ {
1616
+ "context": {
1617
+ "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": true
1618
+ }
1619
+ }
1620
+ ```
1621
+
1622
+ ### Placement Group
1623
+
1624
+ Specify `placementGroup` to enable the placement group support:
1625
+
1626
+ ```ts fixture=with-vpc
1627
+ declare const instanceType: ec2.InstanceType;
1628
+
1629
+ const pg = new ec2.PlacementGroup(this, 'test-pg', {
1630
+ strategy: ec2.PlacementGroupStrategy.SPREAD,
1631
+ });
1632
+
1633
+ new ec2.Instance(this, 'Instance', {
1634
+ vpc,
1635
+ instanceType,
1636
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(),
1637
+ placementGroup: pg,
1638
+ });
1639
+ ```
1640
+
1641
+ ### Block Devices
1642
+
1643
+ To add EBS block device mappings, specify the `blockDevices` property. The following example sets the EBS-backed
1644
+ root device (`/dev/sda1`) size to 50 GiB, and adds another EBS-backed device mapped to `/dev/sdm` that is 100 GiB in
1645
+ size:
1646
+
1647
+ ```ts
1648
+ declare const vpc: ec2.Vpc;
1649
+ declare const instanceType: ec2.InstanceType;
1650
+ declare const machineImage: ec2.IMachineImage;
1651
+
1652
+ new ec2.Instance(this, 'Instance', {
1653
+ vpc,
1654
+ instanceType,
1655
+ machineImage,
1656
+
1657
+ // ...
1658
+
1659
+ blockDevices: [
1660
+ {
1661
+ deviceName: '/dev/sda1',
1662
+ volume: ec2.BlockDeviceVolume.ebs(50),
1663
+ },
1664
+ {
1665
+ deviceName: '/dev/sdm',
1666
+ volume: ec2.BlockDeviceVolume.ebs(100),
1667
+ },
1668
+ ],
1669
+ });
1670
+
1671
+ ```
1672
+
1673
+ It is also possible to encrypt the block devices. In this example we will create an customer managed key encrypted EBS-backed root device:
1674
+
1675
+ ```ts
1676
+ import { Key } from 'aws-cdk-lib/aws-kms';
1677
+
1678
+ declare const vpc: ec2.Vpc;
1679
+ declare const instanceType: ec2.InstanceType;
1680
+ declare const machineImage: ec2.IMachineImage;
1681
+
1682
+ const kmsKey = new Key(this, 'KmsKey')
1683
+
1684
+ new ec2.Instance(this, 'Instance', {
1685
+ vpc,
1686
+ instanceType,
1687
+ machineImage,
1688
+
1689
+ // ...
1690
+
1691
+ blockDevices: [
1692
+ {
1693
+ deviceName: '/dev/sda1',
1694
+ volume: ec2.BlockDeviceVolume.ebs(50, {
1695
+ encrypted: true,
1696
+ kmsKey: kmsKey,
1697
+ }),
1698
+ },
1699
+ ],
1700
+ });
1701
+
1702
+ ```
1703
+
1704
+ To specify the throughput value for `gp3` volumes, use the `throughput` property:
1705
+
1706
+ ```ts
1707
+ declare const vpc: ec2.Vpc;
1708
+ declare const instanceType: ec2.InstanceType;
1709
+ declare const machineImage: ec2.IMachineImage;
1710
+
1711
+ new ec2.Instance(this, 'Instance', {
1712
+ vpc,
1713
+ instanceType,
1714
+ machineImage,
1715
+
1716
+ // ...
1717
+
1718
+ blockDevices: [
1719
+ {
1720
+ deviceName: '/dev/sda1',
1721
+ volume: ec2.BlockDeviceVolume.ebs(100, {
1722
+ volumeType: ec2.EbsDeviceVolumeType.GP3,
1723
+ throughput: 250,
1724
+ }),
1725
+ },
1726
+ ],
1727
+ });
1728
+
1729
+ ```
1730
+
1731
+ #### EBS Optimized Instances
1732
+
1733
+ An Amazon EBS–optimized instance uses an optimized configuration stack and provides additional, dedicated capacity for Amazon EBS I/O. This optimization provides the best performance for your EBS volumes by minimizing contention between Amazon EBS I/O and other traffic from your instance.
1734
+
1735
+ Depending on the instance type, this features is enabled by default while others require explicit activation. Please refer to the [documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) for details.
1736
+
1737
+ ```ts
1738
+ declare const vpc: ec2.Vpc;
1739
+ declare const instanceType: ec2.InstanceType;
1740
+ declare const machineImage: ec2.IMachineImage;
1741
+
1742
+ new ec2.Instance(this, 'Instance', {
1743
+ vpc,
1744
+ instanceType,
1745
+ machineImage,
1746
+ ebsOptimized: true,
1747
+ blockDevices: [{
1748
+ deviceName: '/dev/xvda',
1749
+ volume: ec2.BlockDeviceVolume.ebs(8),
1750
+ }],
1751
+ });
1752
+ ```
1753
+
1754
+ ### Volumes
1755
+
1756
+ Whereas a `BlockDeviceVolume` is an EBS volume that is created and destroyed as part of the creation and destruction of a specific instance. A `Volume` is for when you want an EBS volume separate from any particular instance. A `Volume` is an EBS block device that can be attached to, or detached from, any instance at any time. Some types of `Volume`s can also be attached to multiple instances at the same time to allow you to have shared storage between those instances.
1757
+
1758
+ A notable restriction is that a Volume can only be attached to instances in the same availability zone as the Volume itself.
1759
+
1760
+ The following demonstrates how to create a 500 GiB encrypted Volume in the `us-west-2a` availability zone, and give a role the ability to attach that Volume to a specific instance:
1761
+
1762
+ ```ts
1763
+ declare const instance: ec2.Instance;
1764
+ declare const role: iam.Role;
1765
+
1766
+ const volume = new ec2.Volume(this, 'Volume', {
1767
+ availabilityZone: 'us-west-2a',
1768
+ size: Size.gibibytes(500),
1769
+ encrypted: true,
1770
+ });
1771
+
1772
+ volume.grantAttachVolume(role, [instance]);
1773
+ ```
1774
+
1775
+ #### Instances Attaching Volumes to Themselves
1776
+
1777
+ If you need to grant an instance the ability to attach/detach an EBS volume to/from itself, then using `grantAttachVolume` and `grantDetachVolume` as outlined above
1778
+ will lead to an unresolvable circular reference between the instance role and the instance. In this case, use `grantAttachVolumeByResourceTag` and `grantDetachVolumeByResourceTag` as follows:
1779
+
1780
+ ```ts
1781
+ declare const instance: ec2.Instance;
1782
+ declare const volume: ec2.Volume;
1783
+
1784
+ const attachGrant = volume.grantAttachVolumeByResourceTag(instance.grantPrincipal, [instance]);
1785
+ const detachGrant = volume.grantDetachVolumeByResourceTag(instance.grantPrincipal, [instance]);
1786
+ ```
1787
+
1788
+ #### Attaching Volumes
1789
+
1790
+ The Amazon EC2 documentation for
1791
+ [Linux Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) and
1792
+ [Windows Instances](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-volumes.html) contains information on how
1793
+ to attach and detach your Volumes to/from instances, and how to format them for use.
1794
+
1795
+ The following is a sample skeleton of EC2 UserData that can be used to attach a Volume to the Linux instance that it is running on:
1796
+
1797
+ ```ts
1798
+ declare const instance: ec2.Instance;
1799
+ declare const volume: ec2.Volume;
1800
+
1801
+ volume.grantAttachVolumeByResourceTag(instance.grantPrincipal, [instance]);
1802
+ const targetDevice = '/dev/xvdz';
1803
+ instance.userData.addCommands(
1804
+ // Retrieve token for accessing EC2 instance metadata (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html)
1805
+ `TOKEN=$(curl -SsfX PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")`,
1806
+ // Retrieve the instance Id of the current EC2 instance
1807
+ `INSTANCE_ID=$(curl -SsfH "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id)`,
1808
+ // Attach the volume to /dev/xvdz
1809
+ `aws --region ${Stack.of(this).region} ec2 attach-volume --volume-id ${volume.volumeId} --instance-id $INSTANCE_ID --device ${targetDevice}`,
1810
+ // Wait until the volume has attached
1811
+ `while ! test -e ${targetDevice}; do sleep 1; done`
1812
+ // The volume will now be mounted. You may have to add additional code to format the volume if it has not been prepared.
1813
+ );
1814
+ ```
1815
+
1816
+ #### Tagging Volumes
1817
+
1818
+ You can configure [tag propagation on volume creation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-propagatetagstovolumeoncreation).
1819
+
1820
+ ```ts
1821
+ declare const vpc: ec2.Vpc;
1822
+ declare const instanceType: ec2.InstanceType;
1823
+ declare const machineImage: ec2.IMachineImage;
1824
+
1825
+ new ec2.Instance(this, 'Instance', {
1826
+ vpc,
1827
+ machineImage,
1828
+ instanceType,
1829
+ propagateTagsToVolumeOnCreation: true,
1830
+ });
1831
+ ```
1832
+
1833
+ #### Throughput on GP3 Volumes
1834
+
1835
+ You can specify the `throughput` of a GP3 volume from 125 (default) to 1000.
1836
+
1837
+ ```ts
1838
+ new ec2.Volume(this, 'Volume', {
1839
+ availabilityZone: 'us-east-1a',
1840
+ size: Size.gibibytes(125),
1841
+ volumeType: ec2.EbsDeviceVolumeType.GP3,
1842
+ throughput: 125,
1843
+ });
1844
+ ```
1845
+
1846
+ ### Configuring Instance Metadata Service (IMDS)
1847
+
1848
+ #### Toggling IMDSv1
1849
+
1850
+ You can configure [EC2 Instance Metadata Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) options to either
1851
+ allow both IMDSv1 and IMDSv2 or enforce IMDSv2 when interacting with the IMDS.
1852
+
1853
+ To do this for a single `Instance`, you can use the `requireImdsv2` property.
1854
+ The example below demonstrates IMDSv2 being required on a single `Instance`:
1855
+
1856
+ ```ts
1857
+ declare const vpc: ec2.Vpc;
1858
+ declare const instanceType: ec2.InstanceType;
1859
+ declare const machineImage: ec2.IMachineImage;
1860
+
1861
+ new ec2.Instance(this, 'Instance', {
1862
+ vpc,
1863
+ instanceType,
1864
+ machineImage,
1865
+
1866
+ // ...
1867
+
1868
+ requireImdsv2: true,
1869
+ });
1870
+ ```
1871
+
1872
+ You can also use the either the `InstanceRequireImdsv2Aspect` for EC2 instances or the `LaunchTemplateRequireImdsv2Aspect` for EC2 launch templates
1873
+ to apply the operation to multiple instances or launch templates, respectively.
1874
+
1875
+ The following example demonstrates how to use the `InstanceRequireImdsv2Aspect` to require IMDSv2 for all EC2 instances in a stack:
1876
+
1877
+ ```ts
1878
+ const aspect = new ec2.InstanceRequireImdsv2Aspect();
1879
+ Aspects.of(this).add(aspect);
1880
+ ```
1881
+
1882
+ ### Associating a Public IP Address with an Instance
1883
+
1884
+ All subnets have an attribute that determines whether instances launched into that subnet are assigned a public IPv4 address. This attribute is set to true by default for default public subnets. Thus, an EC2 instance launched into a default public subnet will be assigned a public IPv4 address. Nondefault public subnets have this attribute set to false by default and any EC2 instance launched into a nondefault public subnet will not be assigned a public IPv4 address automatically. To automatically assign a public IPv4 address to an instance launched into a nondefault public subnet, you can set the `associatePublicIpAddress` property on the `Instance` construct to true. Alternatively, to not automatically assign a public IPv4 address to an instance launched into a default public subnet, you can set `associatePublicIpAddress` to false. Including this property, removing this property, or updating the value of this property on an existing instance will result in replacement of the instance.
1885
+
1886
+ ```ts
1887
+ const vpc = new ec2.Vpc(this, 'VPC', {
1888
+ cidr: '10.0.0.0/16',
1889
+ natGateways: 0,
1890
+ maxAzs: 3,
1891
+ subnetConfiguration: [
1892
+ {
1893
+ name: 'public-subnet-1',
1894
+ subnetType: ec2.SubnetType.PUBLIC,
1895
+ cidrMask: 24,
1896
+ },
1897
+ ],
1898
+ });
1899
+
1900
+ const instance = new ec2.Instance(this, 'Instance', {
1901
+ vpc,
1902
+ vpcSubnets: { subnetGroupName: 'public-subnet-1' },
1903
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.NANO),
1904
+ machineImage: new ec2.AmazonLinuxImage({ generation: ec2.AmazonLinuxGeneration.AMAZON_LINUX_2 }),
1905
+ detailedMonitoring: true,
1906
+ associatePublicIpAddress: true,
1907
+ });
1908
+ ```
1909
+
1910
+ ### Specifying a key pair
1911
+
1912
+ To allow SSH access to an EC2 instance by default, a Key Pair must be specified. Key pairs can
1913
+ be provided with the `keyPair` property to instances and launch templates. You can create a
1914
+ key pair for an instance like this:
1915
+
1916
+ ```ts
1917
+ declare const vpc: ec2.Vpc;
1918
+ declare const instanceType: ec2.InstanceType;
1919
+
1920
+ const keyPair = new ec2.KeyPair(this, 'KeyPair', {
1921
+ type: ec2.KeyPairType.ED25519,
1922
+ format: ec2.KeyPairFormat.PEM,
1923
+ });
1924
+ const instance = new ec2.Instance(this, 'Instance', {
1925
+ vpc,
1926
+ instanceType,
1927
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(),
1928
+ // Use the custom key pair
1929
+ keyPair,
1930
+ });
1931
+ ```
1932
+
1933
+ When a new EC2 Key Pair is created (without imported material), the private key material is
1934
+ automatically stored in Systems Manager Parameter Store. This can be retrieved from the key pair
1935
+ construct:
1936
+
1937
+ ```ts
1938
+ const keyPair = new ec2.KeyPair(this, 'KeyPair');
1939
+ const privateKey = keyPair.privateKey;
1940
+ ```
1941
+
1942
+ If you already have an SSH key that you wish to use in EC2, that can be provided when constructing the
1943
+ `KeyPair`. If public key material is provided, the key pair is considered "imported" and there
1944
+ will not be any data automatically stored in Systems Manager Parameter Store and the `type` property
1945
+ cannot be specified for the key pair.
1946
+
1947
+ ```ts
1948
+ const keyPair = new ec2.KeyPair(this, 'KeyPair', {
1949
+ publicKeyMaterial: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB7jpNzG+YG0s+xIGWbxrxIZiiozHOEuzIJacvASP0mq",
1950
+ })
1951
+ ```
1952
+
1953
+ #### Using an existing EC2 Key Pair
1954
+
1955
+ If you already have an EC2 Key Pair created outside of the CDK, you can import that key to
1956
+ your CDK stack.
1957
+
1958
+ You can import it purely by name:
1959
+
1960
+ ```ts
1961
+ const keyPair = ec2.KeyPair.fromKeyPairName(this, 'KeyPair', 'the-keypair-name');
1962
+ ```
1963
+
1964
+ Or by specifying additional attributes:
1965
+
1966
+ ```ts
1967
+ const keyPair = ec2.KeyPair.fromKeyPairAttributes(this, 'KeyPair', {
1968
+ keyPairName: 'the-keypair-name',
1969
+ type: ec2.KeyPairType.RSA,
1970
+ })
1971
+ ```
1972
+
1973
+ ### Using IPv6 IPs
1974
+
1975
+ Instances can be given IPv6 IPs by launching them into a subnet of a dual stack VPC.
1976
+
1977
+ ```ts
1978
+ const vpc = new ec2.Vpc(this, 'Ip6VpcDualStack', {
1979
+ ipProtocol: ec2.IpProtocol.DUAL_STACK,
1980
+ subnetConfiguration: [
1981
+ {
1982
+ name: 'Public',
1983
+ subnetType: ec2.SubnetType.PUBLIC,
1984
+ mapPublicIpOnLaunch: true,
1985
+ },
1986
+ {
1987
+ name: 'Private',
1988
+ subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
1989
+ },
1990
+ ],
1991
+ });
1992
+
1993
+ const instance = new ec2.Instance(this, 'MyInstance', {
1994
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.T2, ec2.InstanceSize.MICRO),
1995
+ machineImage: ec2.MachineImage.latestAmazonLinux2(),
1996
+ vpc: vpc,
1997
+ vpcSubnets: { subnetType: ec2.SubnetType.PUBLIC },
1998
+ allowAllIpv6Outbound: true,
1999
+
2000
+ // ...
2001
+ });
2002
+
2003
+ instance.connections.allowFrom(ec2.Peer.anyIpv6(), ec2.Port.allIcmpV6(), 'allow ICMPv6');
2004
+ ```
2005
+
2006
+ Note to set `mapPublicIpOnLaunch` to true in the `subnetConfiguration`.
2007
+
2008
+ Additionally, IPv6 support varies by instance type. Most instance types have IPv6 support with exception of m1-m3, c1, g2, and t1.micro. A full list can be found here: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI.
2009
+
2010
+ #### Specifying the IPv6 Address
2011
+
2012
+ If you want to specify [the number of IPv6 addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/MultipleIP.html#assign-multiple-ipv6) to assign to the instance, you can use the `ipv6AddresseCount` property:
2013
+
2014
+ ```ts
2015
+ // dual stack VPC
2016
+ declare const vpc: ec2.Vpc;
2017
+
2018
+ const instance = new ec2.Instance(this, 'MyInstance', {
2019
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.LARGE),
2020
+ machineImage: ec2.MachineImage.latestAmazonLinux2(),
2021
+ vpc: vpc,
2022
+ vpcSubnets: { subnetType: ec2.SubnetType.PUBLIC },
2023
+ // Assign 2 IPv6 addresses to the instance
2024
+ ipv6AddressCount: 2,
2025
+ });
2026
+ ```
2027
+
2028
+ ### Credit configuration modes for burstable instances
2029
+
2030
+ You can set the [credit configuration mode](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html) for burstable instances (T2, T3, T3a and T4g instance types):
2031
+
2032
+ ```ts
2033
+ declare const vpc: ec2.Vpc;
2034
+
2035
+ const instance = new ec2.Instance(this, 'Instance', {
2036
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MICRO),
2037
+ machineImage: ec2.MachineImage.latestAmazonLinux2(),
2038
+ vpc: vpc,
2039
+ creditSpecification: ec2.CpuCredits.STANDARD,
2040
+ });
2041
+ ```
2042
+
2043
+ It is also possible to set the credit configuration mode for NAT instances.
2044
+
2045
+ ```ts
2046
+ const natInstanceProvider = ec2.NatProvider.instance({
2047
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.T4G, ec2.InstanceSize.LARGE),
2048
+ machineImage: new ec2.AmazonLinuxImage(),
2049
+ creditSpecification: ec2.CpuCredits.UNLIMITED,
2050
+ });
2051
+ new ec2.Vpc(this, 'VPC', {
2052
+ natGatewayProvider: natInstanceProvider,
2053
+ });
2054
+ ```
2055
+
2056
+ **Note**: `CpuCredits.UNLIMITED` mode is not supported for T3 instances that are launched on a Dedicated Host.
2057
+
2058
+ ### Shutdown behavior
2059
+
2060
+ You can specify the behavior of the instance when you initiate shutdown from the instance (using the operating system command for system shutdown).
2061
+
2062
+ ```ts
2063
+ declare const vpc: ec2.Vpc;
2064
+
2065
+ new ec2.Instance(this, 'Instance', {
2066
+ vpc,
2067
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.NANO),
2068
+ machineImage: new ec2.AmazonLinuxImage({ generation: ec2.AmazonLinuxGeneration.AMAZON_LINUX_2 }),
2069
+ instanceInitiatedShutdownBehavior: ec2.InstanceInitiatedShutdownBehavior.TERMINATE, // default is STOP
2070
+ });
2071
+ ```
2072
+
2073
+ ### Enabling Nitro Enclaves
2074
+
2075
+ You can enable [AWS Nitro Enclaves](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) for
2076
+ your EC2 instances by setting the `enclaveEnabled` property to `true`. Nitro Enclaves is a feature of
2077
+ AWS Nitro System that enables creating isolated and highly constrained CPU environments known as enclaves.
2078
+
2079
+ ```ts
2080
+ declare const vpc: ec2.Vpc;
2081
+
2082
+ const instance = new ec2.Instance(this, 'Instance', {
2083
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE),
2084
+ machineImage: new ec2.AmazonLinuxImage(),
2085
+ vpc: vpc,
2086
+ enclaveEnabled: true,
2087
+ });
2088
+ ```
2089
+
2090
+ > NOTE: You must use an instance type and operating system that support Nitro Enclaves.
2091
+ > For more information, see [Requirements](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html#nitro-enclave-reqs).
2092
+
2093
+ ### Enabling Termination Protection
2094
+
2095
+ You can enable [Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingDisableAPITermination.html) for
2096
+ your EC2 instances by setting the `disableApiTermination` property to `true`. Termination Protection controls whether the instance can be terminated using the AWS Management Console, AWS Command Line Interface (AWS CLI), or API.
2097
+
2098
+ ```ts
2099
+ declare const vpc: ec2.Vpc;
2100
+
2101
+ const instance = new ec2.Instance(this, 'Instance', {
2102
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE),
2103
+ machineImage: new ec2.AmazonLinuxImage(),
2104
+ vpc: vpc,
2105
+ disableApiTermination: true,
2106
+ });
2107
+ ```
2108
+
2109
+ ### Enabling Instance Hibernation
2110
+
2111
+ You can enable [Instance Hibernation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) for
2112
+ your EC2 instances by setting the `hibernationEnabled` property to `true`. Instance Hibernation saves the
2113
+ instance's in-memory (RAM) state when an instance is stopped, and restores that state when the instance is started.
2114
+
2115
+ ```ts
2116
+ declare const vpc: ec2.Vpc;
2117
+
2118
+ const instance = new ec2.Instance(this, 'Instance', {
2119
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE),
2120
+ machineImage: new ec2.AmazonLinuxImage(),
2121
+ vpc: vpc,
2122
+ hibernationEnabled: true,
2123
+ blockDevices: [{
2124
+ deviceName: '/dev/xvda',
2125
+ volume: ec2.BlockDeviceVolume.ebs(30, {
2126
+ volumeType: ec2.EbsDeviceVolumeType.GP3,
2127
+ encrypted: true,
2128
+ deleteOnTermination: true,
2129
+ }),
2130
+ }],
2131
+ });
2132
+ ```
2133
+
2134
+ > NOTE: You must use an instance and a volume that meet the requirements for hibernation.
2135
+ > For more information, see [Prerequisites for Amazon EC2 instance hibernation](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html#nitro-enclave-reqs).
2136
+
2137
+
2138
+ ## VPC Flow Logs
2139
+
2140
+ VPC Flow Logs is a feature that enables you to capture information about the IP traffic going to and from network interfaces in your VPC. Flow log data can be published to Amazon CloudWatch Logs and Amazon S3. After you've created a flow log, you can retrieve and view its data in the chosen destination. (<https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html>).
2141
+
2142
+ By default, a flow log will be created with CloudWatch Logs as the destination.
2143
+
2144
+ You can create a flow log like this:
2145
+
2146
+ ```ts
2147
+ declare const vpc: ec2.Vpc;
2148
+
2149
+ new ec2.FlowLog(this, 'FlowLog', {
2150
+ resourceType: ec2.FlowLogResourceType.fromVpc(vpc)
2151
+ })
2152
+ ```
2153
+
2154
+ Or you can add a Flow Log to a VPC by using the addFlowLog method like this:
2155
+
2156
+ ```ts
2157
+ const vpc = new ec2.Vpc(this, 'Vpc');
2158
+
2159
+ vpc.addFlowLog('FlowLog');
2160
+ ```
2161
+
2162
+ You can also add multiple flow logs with different destinations.
2163
+
2164
+ ```ts
2165
+ const vpc = new ec2.Vpc(this, 'Vpc');
2166
+
2167
+ vpc.addFlowLog('FlowLogS3', {
2168
+ destination: ec2.FlowLogDestination.toS3()
2169
+ });
2170
+
2171
+ // Only reject traffic and interval every minute.
2172
+ vpc.addFlowLog('FlowLogCloudWatch', {
2173
+ trafficType: ec2.FlowLogTrafficType.REJECT,
2174
+ maxAggregationInterval: ec2.FlowLogMaxAggregationInterval.ONE_MINUTE,
2175
+ });
2176
+ ```
2177
+
2178
+ To create a Transit Gateway flow log, you can use the `fromTransitGatewayId` method:
2179
+
2180
+ ```ts
2181
+ declare const tgw: ec2.CfnTransitGateway;
2182
+
2183
+ new ec2.FlowLog(this, 'TransitGatewayFlowLog', {
2184
+ resourceType: ec2.FlowLogResourceType.fromTransitGatewayId(tgw.ref)
2185
+ })
2186
+ ```
2187
+
2188
+ To create a Transit Gateway Attachment flow log, you can use the `fromTransitGatewayAttachmentId` method:
2189
+
2190
+ ```ts
2191
+ declare const tgwAttachment: ec2.CfnTransitGatewayAttachment;
2192
+
2193
+ new ec2.FlowLog(this, 'TransitGatewayAttachmentFlowLog', {
2194
+ resourceType: ec2.FlowLogResourceType.fromTransitGatewayAttachmentId(tgwAttachment.ref)
2195
+ })
2196
+ ```
2197
+
2198
+ For flow logs targeting TransitGateway and TransitGatewayAttachment, specifying the `trafficType` is not possible.
2199
+
2200
+ ### Custom Formatting
2201
+
2202
+ You can also custom format flow logs.
2203
+
2204
+ ```ts
2205
+ const vpc = new ec2.Vpc(this, 'Vpc');
2206
+
2207
+ vpc.addFlowLog('FlowLog', {
2208
+ logFormat: [
2209
+ ec2.LogFormat.DST_PORT,
2210
+ ec2.LogFormat.SRC_PORT,
2211
+ ],
2212
+ });
2213
+
2214
+ // If you just want to add a field to the default field
2215
+ vpc.addFlowLog('FlowLog', {
2216
+ logFormat: [
2217
+ ec2.LogFormat.VERSION,
2218
+ ec2.LogFormat.ALL_DEFAULT_FIELDS,
2219
+ ],
2220
+ });
2221
+
2222
+ // If AWS CDK does not support the new fields
2223
+ vpc.addFlowLog('FlowLog', {
2224
+ logFormat: [
2225
+ ec2.LogFormat.SRC_PORT,
2226
+ ec2.LogFormat.custom('${new-field}'),
2227
+ ],
2228
+ });
2229
+ ```
2230
+
2231
+
2232
+ By default, the CDK will create the necessary resources for the destination. For the CloudWatch Logs destination
2233
+ it will create a CloudWatch Logs Log Group as well as the IAM role with the necessary permissions to publish to
2234
+ the log group. In the case of an S3 destination, it will create the S3 bucket.
2235
+
2236
+ If you want to customize any of the destination resources you can provide your own as part of the `destination`.
2237
+
2238
+ *CloudWatch Logs*
2239
+
2240
+ ```ts
2241
+ declare const vpc: ec2.Vpc;
2242
+
2243
+ const logGroup = new logs.LogGroup(this, 'MyCustomLogGroup');
2244
+
2245
+ const role = new iam.Role(this, 'MyCustomRole', {
2246
+ assumedBy: new iam.ServicePrincipal('vpc-flow-logs.amazonaws.com')
2247
+ });
2248
+
2249
+ new ec2.FlowLog(this, 'FlowLog', {
2250
+ resourceType: ec2.FlowLogResourceType.fromVpc(vpc),
2251
+ destination: ec2.FlowLogDestination.toCloudWatchLogs(logGroup, role)
2252
+ });
2253
+ ```
2254
+
2255
+ *S3*
2256
+
2257
+ ```ts
2258
+ declare const vpc: ec2.Vpc;
2259
+
2260
+ const bucket = new s3.Bucket(this, 'MyCustomBucket');
2261
+
2262
+ new ec2.FlowLog(this, 'FlowLog', {
2263
+ resourceType: ec2.FlowLogResourceType.fromVpc(vpc),
2264
+ destination: ec2.FlowLogDestination.toS3(bucket)
2265
+ });
2266
+
2267
+ new ec2.FlowLog(this, 'FlowLogWithKeyPrefix', {
2268
+ resourceType: ec2.FlowLogResourceType.fromVpc(vpc),
2269
+ destination: ec2.FlowLogDestination.toS3(bucket, 'prefix/')
2270
+ });
2271
+ ```
2272
+
2273
+ *Amazon Data Firehose*
2274
+
2275
+ ```ts
2276
+ import * as firehose from 'aws-cdk-lib/aws-kinesisfirehose';
2277
+
2278
+ declare const vpc: ec2.Vpc;
2279
+ declare const deliveryStream: firehose.CfnDeliveryStream;
2280
+
2281
+ vpc.addFlowLog('FlowLogsKinesisDataFirehose', {
2282
+ destination: ec2.FlowLogDestination.toKinesisDataFirehoseDestination(deliveryStream.attrArn),
2283
+ });
2284
+ ```
2285
+
2286
+ When the S3 destination is configured, AWS will automatically create an S3 bucket policy
2287
+ that allows the service to write logs to the bucket. This makes it impossible to later update
2288
+ that bucket policy. To have CDK create the bucket policy so that future updates can be made,
2289
+ the `@aws-cdk/aws-s3:createDefaultLoggingPolicy` [feature flag](https://docs.aws.amazon.com/cdk/v2/guide/featureflags.html) can be used. This can be set
2290
+ in the `cdk.json` file.
2291
+
2292
+ ```json
2293
+ {
2294
+ "context": {
2295
+ "@aws-cdk/aws-s3:createDefaultLoggingPolicy": true
2296
+ }
2297
+ }
2298
+ ```
2299
+
2300
+ ## User Data
2301
+
2302
+ User data enables you to run a script when your instances start up. In order to configure these scripts you can add commands directly to the script
2303
+ or you can use the UserData's convenience functions to aid in the creation of your script.
2304
+
2305
+ A user data could be configured to run a script found in an asset through the following:
2306
+
2307
+ ```ts
2308
+ import { Asset } from 'aws-cdk-lib/aws-s3-assets';
2309
+
2310
+ declare const instance: ec2.Instance;
2311
+
2312
+ const asset = new Asset(this, 'Asset', {
2313
+ path: './configure.sh'
2314
+ });
2315
+
2316
+ const localPath = instance.userData.addS3DownloadCommand({
2317
+ bucket:asset.bucket,
2318
+ bucketKey:asset.s3ObjectKey,
2319
+ region: 'us-east-1', // Optional
2320
+ });
2321
+ instance.userData.addExecuteFileCommand({
2322
+ filePath:localPath,
2323
+ arguments: '--verbose -y'
2324
+ });
2325
+ asset.grantRead(instance.role);
2326
+ ```
2327
+
2328
+ ### Persisting user data
2329
+
2330
+ By default, EC2 UserData is run once on only the first time that an instance is started. It is possible to make the
2331
+ user data script run on every start of the instance.
2332
+
2333
+ When creating a Windows UserData you can use the `persist` option to set whether or not to add
2334
+ `<persist>true</persist>` [to the user data script](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html#user-data-scripts). it can be used as follows:
2335
+
2336
+ ```ts
2337
+ const windowsUserData = ec2.UserData.forWindows({ persist: true });
2338
+ ```
2339
+
2340
+ For a Linux instance, this can be accomplished by using a Multipart user data to configure cloud-config as detailed
2341
+ in: https://aws.amazon.com/premiumsupport/knowledge-center/execute-user-data-ec2/
2342
+
2343
+ ### Multipart user data
2344
+
2345
+ In addition, to above the `MultipartUserData` can be used to change instance startup behavior. Multipart user data are composed
2346
+ from separate parts forming archive. The most common parts are scripts executed during instance set-up. However, there are other
2347
+ kinds, too.
2348
+
2349
+ The advantage of multipart archive is in flexibility when it's needed to add additional parts or to use specialized parts to
2350
+ fine tune instance startup. Some services (like AWS Batch) support only `MultipartUserData`.
2351
+
2352
+ The parts can be executed at different moment of instance start-up and can serve a different purpose. This is controlled by `contentType` property.
2353
+ For common scripts, `text/x-shellscript; charset="utf-8"` can be used as content type.
2354
+
2355
+ In order to create archive the `MultipartUserData` has to be instantiated. Than, user can add parts to multipart archive using `addPart`. The `MultipartBody` contains methods supporting creation of body parts.
2356
+
2357
+ If the very custom part is required, it can be created using `MultipartUserData.fromRawBody`, in this case full control over content type,
2358
+ transfer encoding, and body properties is given to the user.
2359
+
2360
+ Below is an example for creating multipart user data with single body part responsible for installing `awscli` and configuring maximum size
2361
+ of storage used by Docker containers:
2362
+
2363
+ ```ts
2364
+ const bootHookConf = ec2.UserData.forLinux();
2365
+ bootHookConf.addCommands('cloud-init-per once docker_options echo \'OPTIONS="${OPTIONS} --storage-opt dm.basesize=40G"\' >> /etc/sysconfig/docker');
2366
+
2367
+ const setupCommands = ec2.UserData.forLinux();
2368
+ setupCommands.addCommands('sudo yum install awscli && echo Packages installed らと > /var/tmp/setup');
2369
+
2370
+ const multipartUserData = new ec2.MultipartUserData();
2371
+ // The docker has to be configured at early stage, so content type is overridden to boothook
2372
+ multipartUserData.addPart(ec2.MultipartBody.fromUserData(bootHookConf, 'text/cloud-boothook; charset="us-ascii"'));
2373
+ // Execute the rest of setup
2374
+ multipartUserData.addPart(ec2.MultipartBody.fromUserData(setupCommands));
2375
+
2376
+ new ec2.LaunchTemplate(this, '', {
2377
+ userData: multipartUserData,
2378
+ blockDevices: [
2379
+ // Block device configuration rest
2380
+ ]
2381
+ });
2382
+ ```
2383
+
2384
+ For more information see
2385
+ [Specifying Multiple User Data Blocks Using a MIME Multi Part Archive](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#multi-part_user_data)
2386
+
2387
+ #### Using add*Command on MultipartUserData
2388
+
2389
+ To use the `add*Command` methods, that are inherited from the `UserData` interface, on `MultipartUserData` you must add a part
2390
+ to the `MultipartUserData` and designate it as the receiver for these methods. This is accomplished by using the `addUserDataPart()`
2391
+ method on `MultipartUserData` with the `makeDefault` argument set to `true`:
2392
+
2393
+ ```ts
2394
+ const multipartUserData = new ec2.MultipartUserData();
2395
+ const commandsUserData = ec2.UserData.forLinux();
2396
+ multipartUserData.addUserDataPart(commandsUserData, ec2.MultipartBody.SHELL_SCRIPT, true);
2397
+
2398
+ // Adding commands to the multipartUserData adds them to commandsUserData, and vice-versa.
2399
+ multipartUserData.addCommands('touch /root/multi.txt');
2400
+ commandsUserData.addCommands('touch /root/userdata.txt');
2401
+ ```
2402
+
2403
+ When used on an EC2 instance, the above `multipartUserData` will create both `multi.txt` and `userdata.txt` in `/root`.
2404
+
2405
+ ## Importing existing subnet
2406
+
2407
+ To import an existing Subnet, call `Subnet.fromSubnetAttributes()` or
2408
+ `Subnet.fromSubnetId()`. Only if you supply the subnet's Availability Zone
2409
+ and Route Table Ids when calling `Subnet.fromSubnetAttributes()` will you be
2410
+ able to use the CDK features that use these values (such as selecting one
2411
+ subnet per AZ).
2412
+
2413
+ Importing an existing subnet looks like this:
2414
+
2415
+ ```ts
2416
+ // Supply all properties
2417
+ const subnet1 = ec2.Subnet.fromSubnetAttributes(this, 'SubnetFromAttributes', {
2418
+ subnetId: 's-1234',
2419
+ availabilityZone: 'pub-az-4465',
2420
+ routeTableId: 'rt-145'
2421
+ });
2422
+
2423
+ // Supply only subnet id
2424
+ const subnet2 = ec2.Subnet.fromSubnetId(this, 'SubnetFromId', 's-1234');
2425
+ ```
2426
+
2427
+ ## Launch Templates
2428
+
2429
+ A Launch Template is a standardized template that contains the configuration information to launch an instance.
2430
+ They can be used when launching instances on their own, through Amazon EC2 Auto Scaling, EC2 Fleet, and Spot Fleet.
2431
+ Launch templates enable you to store launch parameters so that you do not have to specify them every time you launch
2432
+ an instance. For information on Launch Templates please see the
2433
+ [official documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html).
2434
+
2435
+ The following demonstrates how to create a launch template with an Amazon Machine Image, security group, and an instance profile.
2436
+
2437
+ ```ts
2438
+ declare const vpc: ec2.Vpc;
2439
+
2440
+ const role = new iam.Role(this, 'Role', {
2441
+ assumedBy: new iam.ServicePrincipal('ec2.amazonaws.com'),
2442
+ });
2443
+ const instanceProfile = new iam.InstanceProfile(this, 'InstanceProfile', {
2444
+ role,
2445
+ });
2446
+
2447
+ const template = new ec2.LaunchTemplate(this, 'LaunchTemplate', {
2448
+ launchTemplateName: 'MyTemplateV1',
2449
+ versionDescription: 'This is my v1 template',
2450
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(),
2451
+ securityGroup: new ec2.SecurityGroup(this, 'LaunchTemplateSG', {
2452
+ vpc: vpc,
2453
+ }),
2454
+ instanceProfile,
2455
+ });
2456
+ ```
2457
+
2458
+ And the following demonstrates how to enable metadata options support.
2459
+
2460
+ ```ts
2461
+ new ec2.LaunchTemplate(this, 'LaunchTemplate', {
2462
+ httpEndpoint: true,
2463
+ httpProtocolIpv6: true,
2464
+ httpPutResponseHopLimit: 1,
2465
+ httpTokens: ec2.LaunchTemplateHttpTokens.REQUIRED,
2466
+ instanceMetadataTags: true,
2467
+ });
2468
+ ```
2469
+
2470
+ And the following demonstrates how to add one or more security groups to launch template.
2471
+
2472
+ ```ts
2473
+ declare const vpc: ec2.Vpc;
2474
+
2475
+ const sg1 = new ec2.SecurityGroup(this, 'sg1', {
2476
+ vpc: vpc,
2477
+ });
2478
+ const sg2 = new ec2.SecurityGroup(this, 'sg2', {
2479
+ vpc: vpc,
2480
+ });
2481
+
2482
+ const launchTemplate = new ec2.LaunchTemplate(this, 'LaunchTemplate', {
2483
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(),
2484
+ securityGroup: sg1,
2485
+ });
2486
+
2487
+ launchTemplate.addSecurityGroup(sg2);
2488
+ ```
2489
+
2490
+ To use [AWS Systems Manager parameters instead of AMI IDs](https://docs.aws.amazon.com/autoscaling/ec2/userguide/using-systems-manager-parameters.html) in launch templates and resolve the AMI IDs at instance launch time:
2491
+
2492
+ ```ts
2493
+ const launchTemplate = new ec2.LaunchTemplate(this, 'LaunchTemplate', {
2494
+ machineImage: ec2.MachineImage.resolveSsmParameterAtLaunch('parameterName'),
2495
+ });
2496
+ ```
2497
+
2498
+ ### Placement Group
2499
+
2500
+ Specify `placementGroup` to enable the placement group support:
2501
+
2502
+ ```ts fixture=with-vpc
2503
+ declare const instanceType: ec2.InstanceType;
2504
+
2505
+ const pg = new ec2.PlacementGroup(this, 'test-pg', {
2506
+ strategy: ec2.PlacementGroupStrategy.SPREAD,
2507
+ });
2508
+
2509
+ new ec2.LaunchTemplate(this, 'LaunchTemplate', {
2510
+ instanceType,
2511
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(),
2512
+ placementGroup: pg,
2513
+ });
2514
+ ```
2515
+
2516
+ Please note this feature does not support Launch Configurations.
2517
+
2518
+ ## Detailed Monitoring
2519
+
2520
+ The following demonstrates how to enable [Detailed Monitoring](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html) for an EC2 instance. Keep in mind that Detailed Monitoring results in [additional charges](http://aws.amazon.com/cloudwatch/pricing/).
2521
+
2522
+ ```ts
2523
+ declare const vpc: ec2.Vpc;
2524
+ declare const instanceType: ec2.InstanceType;
2525
+
2526
+ new ec2.Instance(this, 'Instance1', {
2527
+ vpc,
2528
+ instanceType,
2529
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(),
2530
+ detailedMonitoring: true,
2531
+ });
2532
+ ```
2533
+
2534
+ ## Connecting to your instances using SSM Session Manager
2535
+
2536
+ SSM Session Manager makes it possible to connect to your instances from the
2537
+ AWS Console, without preparing SSH keys.
2538
+
2539
+ To do so, you need to:
2540
+
2541
+ * Use an image with [SSM agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) installed
2542
+ and configured. [Many images come with SSM Agent
2543
+ preinstalled](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html), otherwise you
2544
+ may need to manually put instructions to [install SSM
2545
+ Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) into your
2546
+ instance's UserData or use EC2 Init).
2547
+ * Create the instance with `ssmSessionPermissions: true`.
2548
+
2549
+ If these conditions are met, you can connect to the instance from the EC2 Console. Example:
2550
+
2551
+ ```ts
2552
+ declare const vpc: ec2.Vpc;
2553
+ declare const instanceType: ec2.InstanceType;
2554
+
2555
+ new ec2.Instance(this, 'Instance1', {
2556
+ vpc,
2557
+ instanceType,
2558
+
2559
+ // Amazon Linux 2023 comes with SSM Agent by default
2560
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(),
2561
+
2562
+ // Turn on SSM
2563
+ ssmSessionPermissions: true,
2564
+ });
2565
+ ```
2566
+
2567
+ ## Managed Prefix Lists
2568
+
2569
+ Create and manage customer-managed prefix lists. If you don't specify anything in this construct, it will manage IPv4 addresses.
2570
+
2571
+ You can also create an empty Prefix List with only the maximum number of entries specified, as shown in the following code. If nothing is specified, maxEntries=1.
2572
+
2573
+ ```ts
2574
+ new ec2.PrefixList(this, 'EmptyPrefixList', {
2575
+ maxEntries: 100,
2576
+ });
2577
+ ```
2578
+
2579
+ `maxEntries` can also be omitted as follows. In this case `maxEntries: 2`, will be set.
2580
+
2581
+ ```ts
2582
+ new ec2.PrefixList(this, 'PrefixList', {
2583
+ entries: [
2584
+ { cidr: '10.0.0.1/32' },
2585
+ { cidr: '10.0.0.2/32', description: 'sample1' },
2586
+ ],
2587
+ });
2588
+ ```
2589
+
2590
+ To import AWS-managed prefix list, you can use `PrefixList.fromLookup()`.
2591
+
2592
+ ``` ts
2593
+ ec2.PrefixList.fromLookup(this, 'PrefixListFromName', {
2594
+ prefixListName: 'com.amazonaws.global.cloudfront.origin-facing',
2595
+ });
2596
+ ```
2597
+
2598
+ For more information see [Work with customer-managed prefix lists](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-managed-prefix-lists.html).
2599
+
2600
+ ### IAM instance profile
2601
+
2602
+ Use `instanceProfile` to apply specific IAM Instance Profile. Cannot be used with role
2603
+
2604
+ ```ts
2605
+ declare const instanceType: ec2.InstanceType;
2606
+ declare const vpc: ec2.Vpc;
2607
+
2608
+ const role = new iam.Role(this, 'Role', {
2609
+ assumedBy: new iam.ServicePrincipal('ec2.amazonaws.com'),
2610
+ });
2611
+ const instanceProfile = new iam.InstanceProfile(this, 'InstanceProfile', {
2612
+ role,
2613
+ });
2614
+
2615
+ new ec2.Instance(this, 'Instance', {
2616
+ vpc,
2617
+ instanceType,
2618
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(),
2619
+ instanceProfile,
2620
+ });
2621
+ ```