konokenj.cdk-api-mcp-server 0.48.0__py3-none-any.whl → 0.57.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. cdk_api_mcp_server/__about__.py +1 -1
  2. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-amplify-alpha/README.md +12 -0
  3. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-agentcore-alpha/README.md +1979 -0
  4. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-alpha/README.md +2 -2
  5. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/README.md +156 -69
  6. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-imagebuilder-alpha/README.md +656 -0
  7. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-go-alpha/README.md +102 -4
  8. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-msk-alpha/README.md +38 -8
  9. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-sagemaker-alpha/README.md +32 -0
  10. cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/mixins-preview/README.md +182 -0
  11. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/README.md/README.md +2 -0
  12. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/README.md +34 -0
  13. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.api-with-authorizer-and-proxy.ts +1 -1
  14. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-api.ts +1 -1
  15. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-permission-consolidation.ts +55 -0
  16. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.spec-restapi.ts +1 -0
  17. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/README.md +93 -81
  18. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.stage.ts +20 -4
  19. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.iam.ts +1 -1
  20. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.lambda.ts +2 -2
  21. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.user-pool.ts +1 -1
  22. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/README.md +35 -0
  23. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.add-subroute-integration.ts +7 -4
  24. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.http-proxy.ts +1 -1
  25. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-connect-disconnect-trigger.ts +2 -2
  26. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-permission-consolidation.ts +45 -0
  27. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-proxy.ts +1 -1
  28. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda.ts +4 -4
  29. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-lambda-permission.ts +1 -1
  30. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.js-resolver.ts +1 -1
  31. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/README.md +15 -1
  32. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.managed-compute-environment-default-instance-class.ts +20 -0
  33. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-node-18.ts +1 -1
  34. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-service-timeout.ts +1 -1
  35. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md +33 -0
  36. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-ip-address-type.ts +84 -0
  37. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-response-completion-timeout.ts +1 -1
  38. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail-data-events-only.ts +1 -1
  39. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/README.md +1 -1
  40. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.anomaly-detection-alarm.ts +44 -2
  41. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/README.md +0 -1
  42. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts +4 -1
  43. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/README.md +2 -2
  44. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/README.md +125 -2
  45. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/TABLE_V1_API.md +45 -2
  46. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.add-to-resource-policy.ts +97 -0
  47. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.compound.ts +32 -0
  48. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.policy.ts +21 -1
  49. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2.compound.ts +43 -0
  50. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md +16 -1
  51. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.client-vpn-endpoint-disconnect-on-session-timeout.ts +65 -0
  52. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs.ts +4 -0
  53. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/README.md +41 -2
  54. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.tag-mutability-exclusion.ts +30 -0
  55. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md +47 -4
  56. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-capacity-provider.ts +5 -3
  57. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-no-default-capacity-provider.ts +107 -0
  58. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.placement-strategies.ts +32 -8
  59. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-public-private-switch.ts +45 -0
  60. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/README.md +103 -83
  61. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-al2023-nodegroup.ts +1 -1
  62. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-removal-policy.ts +31 -0
  63. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.fargate-cluster.ts +1 -1
  64. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md +34 -4
  65. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-lambda-multi-value-headers.ts +1 -1
  66. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.oidc.ts +1 -1
  67. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.security-group.ts +70 -0
  68. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-actions/integ.cognito.ts +1 -1
  69. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/README.md +22 -0
  70. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.firehose-delivery-stream.ts +51 -0
  71. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.managed-policy.ts +9 -0
  72. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.policy.ts +9 -0
  73. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/README.md +42 -0
  74. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream-shard-level-monitoring.ts +47 -0
  75. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/README.md +156 -3
  76. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.cloudwatch-logs-processors.ts +45 -0
  77. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.record-format-conversion-schema.ts +154 -0
  78. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.record-format-conversion.ts +178 -0
  79. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md +39 -0
  80. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.binary-payload.ts +1 -1
  81. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.logging-config.ts +8 -8
  82. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.multi-tenancy.ts +24 -0
  83. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.params-and-secrets.ts +1 -1
  84. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime-management.ts +1 -1
  85. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.fromasset.ts +19 -4
  86. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.inlinecode.ts +11 -4
  87. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-pnpm.ts +1 -1
  88. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.function-exclude-smithy-models.ts +2 -2
  89. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.nodejs.build.images.ts +1 -1
  90. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/README.md +4 -0
  91. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter-apply-on-transformed-logs.ts +29 -0
  92. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.subscriptionfilter.ts +1 -1
  93. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ebs.ts +1 -1
  94. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts +1 -0
  95. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md +1 -1
  96. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-cloudwatch-logs-exports.ts +56 -0
  97. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api-to-imported-cluster.ts +1 -1
  98. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api.ts +1 -1
  99. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md +44 -31
  100. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.private-hosted-zone-from-attributes.ts +41 -0
  101. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.zone-delegation-iam-stack.ts +66 -0
  102. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/README.md +65 -4
  103. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-big-response.ts +17 -6
  104. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cloudfront.ts +20 -18
  105. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-nested-stack-source.ts +7 -1
  106. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-stack-source.ts +6 -1
  107. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-stack-ssm-source.ts +7 -1
  108. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-data.ts +99 -59
  109. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-deployed-bucket.ts +10 -4
  110. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-large-file.ts +23 -12
  111. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-loggroup.ts +7 -2
  112. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-efs.ts +77 -0
  113. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-empty.ts +69 -0
  114. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-multiple.ts +89 -0
  115. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-single.ts +77 -0
  116. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-signcontent.ts +11 -7
  117. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution-with-destination-key.ts +15 -8
  118. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution-with-role.ts +29 -14
  119. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution.ts +16 -8
  120. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-basic.ts +65 -0
  121. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-config.ts +66 -0
  122. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-custom-subnets.ts +66 -0
  123. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-efs.ts +66 -0
  124. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-security-groups.ts +72 -0
  125. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-subnet-selection.ts +70 -0
  126. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment.ts +47 -69
  127. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-secretsmanager/integ.secret.dynamic-reference-key.ts +38 -0
  128. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.sm-jsonpath-with-distributed-map-jsonata.ts +105 -0
  129. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/README.md +15 -4
  130. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region-lambda.ts +1 -1
  131. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-arm64.ts +27 -0
  132. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-default.ts +25 -0
  133. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-mixed-arch.ts +35 -0
  134. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-x86.ts +27 -0
  135. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke-json-path.ts +102 -0
  136. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/README.md +17 -1
  137. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-runtime-validation.ts +43 -0
  138. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary.ts +2 -0
  139. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/README.md +56 -0
  140. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource.ts +1 -1
  141. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-lambda-node-runtime.ts +1 -1
  142. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.external-id.ts +80 -0
  143. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.invoke-function-payload.ts +1 -1
  144. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md +71 -10
  145. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/README.md +32 -1
  146. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/interfaces/README.md +33 -0
  147. {konokenj_cdk_api_mcp_server-0.48.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/METADATA +2 -2
  148. {konokenj_cdk_api_mcp_server-0.48.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/RECORD +151 -106
  149. cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-firehose-stream.ts +0 -33
  150. {konokenj_cdk_api_mcp_server-0.48.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/WHEEL +0 -0
  151. {konokenj_cdk_api_mcp_server-0.48.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/entry_points.txt +0 -0
  152. {konokenj_cdk_api_mcp_server-0.48.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -0,0 +1,656 @@
1
+ # EC2 Image Builder Construct Library
2
+
3
+ <!--BEGIN STABILITY BANNER-->
4
+
5
+ ---
6
+
7
+ ![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)
8
+
9
+ > The APIs of higher level constructs in this module are experimental and under active development.
10
+ > They are subject to non-backward compatible changes or removal in any future version. These are
11
+ > not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be
12
+ > announced in the release notes. This means that while you may use them, you may need to update
13
+ > your source code when upgrading to a newer version of this package.
14
+
15
+ ---
16
+
17
+ <!--END STABILITY BANNER-->
18
+
19
+ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.
20
+
21
+ ## README
22
+
23
+ [Amazon EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) is a
24
+ fully managed AWS service that helps you automate the creation, management, and deployment of customized, secure, and
25
+ up-to-date server images. You can use Image Builder to create Amazon Machine Images (AMIs) and container images for use
26
+ across AWS Regions.
27
+
28
+ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project. It allows you to define
29
+ Image Builder pipelines, images, recipes, components, workflows, and lifecycle policies.
30
+ A component defines the sequence of steps required to customize an instance during image creation (build component) or
31
+ test an instance launched from the created image (test component). Components are created from declarative YAML or JSON
32
+ documents that describe runtime configuration for building, validating, or testing instances. Components are included
33
+ when added to the image recipe or container recipe for an image build.
34
+
35
+ EC2 Image Builder supports AWS-managed components for common tasks, AWS Marketplace components, and custom components
36
+ that you create. Components run during specific workflow phases: build and validate phases during the build stage, and
37
+ test phase during the test stage.
38
+
39
+ ### Container Recipe
40
+
41
+ A container recipe is similar to an image recipe but specifically for container images. It defines the base container
42
+ image and components applied to produce the desired configuration for the output container image. Container recipes work
43
+ with Docker images from DockerHub, Amazon ECR, or Amazon-managed container images as starting points.
44
+
45
+ #### Container Recipe Basic Usage
46
+
47
+ Create a container recipe with the required base image and target repository:
48
+
49
+ ```ts
50
+ const containerRecipe = new imagebuilder.ContainerRecipe(this, 'MyContainerRecipe', {
51
+ baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),
52
+ targetRepository: imagebuilder.Repository.fromEcr(
53
+ ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')
54
+ )
55
+ });
56
+ ```
57
+
58
+ #### Container Recipe Base Images
59
+
60
+ ##### DockerHub Images
61
+
62
+ Using public Docker Hub images:
63
+
64
+ ```ts
65
+ const containerRecipe = new imagebuilder.ContainerRecipe(this, 'DockerHubContainerRecipe', {
66
+ baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),
67
+ targetRepository: imagebuilder.Repository.fromEcr(
68
+ ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')
69
+ )
70
+ });
71
+ ```
72
+
73
+ ##### ECR Images
74
+
75
+ Using images from your own ECR repositories:
76
+
77
+ ```ts
78
+ const sourceRepo = ecr.Repository.fromRepositoryName(this, 'SourceRepo', 'my-base-image');
79
+ const targetRepo = ecr.Repository.fromRepositoryName(this, 'TargetRepo', 'my-container-repo');
80
+
81
+ const containerRecipe = new imagebuilder.ContainerRecipe(this, 'EcrContainerRecipe', {
82
+ baseImage: imagebuilder.BaseContainerImage.fromEcr(sourceRepo, '1.0.0'),
83
+ targetRepository: imagebuilder.Repository.fromEcr(targetRepo)
84
+ });
85
+ ```
86
+
87
+ ##### ECR Public Images
88
+
89
+ Using images from Amazon ECR Public:
90
+
91
+ ```ts
92
+ const containerRecipe = new imagebuilder.ContainerRecipe(this, 'EcrPublicContainerRecipe', {
93
+ baseImage: imagebuilder.BaseContainerImage.fromEcrPublic('amazonlinux', 'amazonlinux', '2023'),
94
+ targetRepository: imagebuilder.Repository.fromEcr(
95
+ ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')
96
+ )
97
+ });
98
+ ```
99
+
100
+ #### Container Recipe Components
101
+
102
+ ##### Custom Components in Container Recipes
103
+
104
+ Add your own components to the container recipe:
105
+
106
+ ```ts
107
+ const customComponent = new imagebuilder.Component(this, 'MyComponent', {
108
+ platform: imagebuilder.Platform.LINUX,
109
+ data: imagebuilder.ComponentData.fromJsonObject({
110
+ schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,
111
+ phases: [
112
+ {
113
+ name: imagebuilder.ComponentPhaseName.BUILD,
114
+ steps: [
115
+ {
116
+ name: 'install-app',
117
+ action: imagebuilder.ComponentAction.EXECUTE_BASH,
118
+ inputs: {
119
+ commands: ['yum install -y my-container-application']
120
+ }
121
+ }
122
+ ]
123
+ }
124
+ ]
125
+ })
126
+ });
127
+
128
+ const containerRecipe = new imagebuilder.ContainerRecipe(this, 'ComponentContainerRecipe', {
129
+ baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),
130
+ targetRepository: imagebuilder.Repository.fromEcr(
131
+ ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')
132
+ ),
133
+ components: [
134
+ {
135
+ component: customComponent
136
+ }
137
+ ]
138
+ });
139
+ ```
140
+
141
+ ##### AWS-Managed Components in Container Recipes
142
+
143
+ Use pre-built AWS components:
144
+
145
+ ```ts
146
+ const containerRecipe = new imagebuilder.ContainerRecipe(this, 'AwsManagedContainerRecipe', {
147
+ baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),
148
+ targetRepository: imagebuilder.Repository.fromEcr(
149
+ ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')
150
+ ),
151
+ components: [
152
+ {
153
+ component: imagebuilder.AwsManagedComponent.updateOS(this, 'UpdateOS', {
154
+ platform: imagebuilder.Platform.LINUX
155
+ })
156
+ },
157
+ {
158
+ component: imagebuilder.AwsManagedComponent.awsCliV2(this, 'AwsCli', {
159
+ platform: imagebuilder.Platform.LINUX
160
+ })
161
+ }
162
+ ]
163
+ });
164
+ ```
165
+
166
+ #### Container Recipe Configuration
167
+
168
+ ##### Custom Dockerfile
169
+
170
+ Provide your own Dockerfile template:
171
+
172
+ ```ts
173
+ const containerRecipe = new imagebuilder.ContainerRecipe(this, 'CustomDockerfileContainerRecipe', {
174
+ baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),
175
+ targetRepository: imagebuilder.Repository.fromEcr(
176
+ ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')
177
+ ),
178
+ dockerfile: imagebuilder.DockerfileData.fromInline(`
179
+ FROM {{{ imagebuilder:parentImage }}}
180
+ CMD ["echo", "Hello, world!"]
181
+ {{{ imagebuilder:environments }}}
182
+ {{{ imagebuilder:components }}}
183
+ `)
184
+ });
185
+ ```
186
+
187
+ ##### Instance Configuration
188
+
189
+ Configure the build instance:
190
+
191
+ ```ts
192
+ const containerRecipe = new imagebuilder.ContainerRecipe(this, 'InstanceConfigContainerRecipe', {
193
+ baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),
194
+ targetRepository: imagebuilder.Repository.fromEcr(
195
+ ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')
196
+ ),
197
+ // Custom ECS-optimized AMI for building
198
+ instanceImage: imagebuilder.ContainerInstanceImage.fromSsmParameterName(
199
+ '/aws/service/ecs/optimized-ami/amazon-linux-2023/recommended/image_id'
200
+ ),
201
+ // Additional storage for build process
202
+ instanceBlockDevices: [
203
+ {
204
+ deviceName: '/dev/xvda',
205
+ volume: ec2.BlockDeviceVolume.ebs(50, {
206
+ encrypted: true,
207
+ volumeType: ec2.EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3
208
+ })
209
+ }
210
+ ]
211
+ });
212
+ ```
213
+
214
+ ### Component
215
+
216
+ A component defines the sequence of steps required to customize an instance during image creation (build component) or
217
+ test an instance launched from the created image (test component). Components are created from declarative YAML or JSON
218
+ documents that describe runtime configuration for building, validating, or testing instances. Components are included
219
+ when added to the image recipe or container recipe for an image build.
220
+
221
+ EC2 Image Builder supports AWS-managed components for common tasks, AWS Marketplace components, and custom components
222
+ that you create. Components run during specific workflow phases: build and validate phases during the build stage, and
223
+ test phase during the test stage.
224
+
225
+ #### Basic Usage
226
+
227
+ Create a component with the required properties: platform and component data.
228
+
229
+ ```ts
230
+ const component = new imagebuilder.Component(this, 'MyComponent', {
231
+ platform: imagebuilder.Platform.LINUX,
232
+ data: imagebuilder.ComponentData.fromJsonObject({
233
+ schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,
234
+ phases: [
235
+ {
236
+ name: imagebuilder.ComponentPhaseName.BUILD,
237
+ steps: [
238
+ {
239
+ name: 'install-app',
240
+ action: imagebuilder.ComponentAction.EXECUTE_BASH,
241
+ inputs: {
242
+ commands: ['echo "Installing my application..."', 'yum update -y'],
243
+ },
244
+ },
245
+ ],
246
+ },
247
+ ],
248
+ }),
249
+ });
250
+ ```
251
+
252
+ #### Component Data Sources
253
+
254
+ ##### Inline Component Data
255
+
256
+ Use `ComponentData.fromInline()` for existing YAML/JSON definitions:
257
+
258
+ ```ts
259
+ const component = new imagebuilder.Component(this, 'InlineComponent', {
260
+ platform: imagebuilder.Platform.LINUX,
261
+ data: imagebuilder.ComponentData.fromInline(`
262
+ name: my-component
263
+ schemaVersion: 1.0
264
+ phases:
265
+ - name: build
266
+ steps:
267
+ - name: update-os
268
+ action: ExecuteBash
269
+ inputs:
270
+ commands: ['yum update -y']
271
+ `)
272
+ });
273
+ ```
274
+
275
+ ##### JSON Object Component Data
276
+
277
+ Most developer-friendly approach using objects:
278
+
279
+ ```ts
280
+
281
+ const component = new imagebuilder.Component(this, 'JsonComponent', {
282
+ platform: imagebuilder.Platform.LINUX,
283
+ data: imagebuilder.ComponentData.fromJsonObject({
284
+ schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,
285
+ phases: [
286
+ {
287
+ name: imagebuilder.ComponentPhaseName.BUILD,
288
+ steps: [
289
+ {
290
+ name: 'configure-app',
291
+ action: imagebuilder.ComponentAction.CREATE_FILE,
292
+ inputs: {
293
+ path: '/etc/myapp/config.json',
294
+ content: '{"env": "production"}'
295
+ }
296
+ }
297
+ ]
298
+ }
299
+ ]
300
+ })
301
+ });
302
+ ```
303
+
304
+ ##### Structured Component Document
305
+
306
+ For type-safe, CDK-native definitions with enhanced properties like `timeout` and `onFailure`.
307
+
308
+ ###### Defining a component step
309
+
310
+ You can define steps in the component which will be executed in order when the component is applied:
311
+
312
+ ```ts
313
+ const step: imagebuilder.ComponentDocumentStep = {
314
+ name: 'configure-app',
315
+ action: imagebuilder.ComponentAction.CREATE_FILE,
316
+ inputs: imagebuilder.ComponentStepInputs.fromObject({
317
+ path: '/etc/myapp/config.json',
318
+ content: '{"env": "production"}'
319
+ })
320
+ };
321
+ ```
322
+
323
+ ###### Defining a component phase
324
+
325
+ Phases group steps together, which run in sequence when building, validating or testing in the component:
326
+
327
+ ```ts
328
+ const phase: imagebuilder.ComponentDocumentPhase = {
329
+ name: imagebuilder.ComponentPhaseName.BUILD,
330
+ steps: [
331
+ {
332
+ name: 'configure-app',
333
+ action: imagebuilder.ComponentAction.CREATE_FILE,
334
+ inputs: imagebuilder.ComponentStepInputs.fromObject({
335
+ path: '/etc/myapp/config.json',
336
+ content: '{"env": "production"}'
337
+ })
338
+ }
339
+ ]
340
+ };
341
+ ```
342
+
343
+ ###### Defining a component
344
+
345
+ The component data defines all steps across the provided phases to execute during the build:
346
+
347
+ ```ts
348
+ const component = new imagebuilder.Component(this, 'StructuredComponent', {
349
+ platform: imagebuilder.Platform.LINUX,
350
+ data: imagebuilder.ComponentData.fromComponentDocumentJsonObject({
351
+ schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,
352
+ phases: [
353
+ {
354
+ name: imagebuilder.ComponentPhaseName.BUILD,
355
+ steps: [
356
+ {
357
+ name: 'install-with-timeout',
358
+ action: imagebuilder.ComponentAction.EXECUTE_BASH,
359
+ timeout: Duration.minutes(10),
360
+ onFailure: imagebuilder.ComponentOnFailure.CONTINUE,
361
+ inputs: imagebuilder.ComponentStepInputs.fromObject({
362
+ commands: ['./install-script.sh']
363
+ })
364
+ }
365
+ ]
366
+ }
367
+ ]
368
+ })
369
+ });
370
+ ```
371
+
372
+ ##### S3 Component Data
373
+
374
+ For those components you want to upload or have uploaded to S3:
375
+
376
+ ```ts
377
+ // Upload a local file
378
+ const componentFromAsset = new imagebuilder.Component(this, 'AssetComponent', {
379
+ platform: imagebuilder.Platform.LINUX,
380
+ data: imagebuilder.ComponentData.fromAsset(this, 'ComponentAsset', './my-component.yml'),
381
+ });
382
+
383
+ // Reference an existing S3 object
384
+ const bucket = s3.Bucket.fromBucketName(this, 'ComponentBucket', 'my-components-bucket');
385
+ const componentFromS3 = new imagebuilder.Component(this, 'S3Component', {
386
+ platform: imagebuilder.Platform.LINUX,
387
+ data: imagebuilder.ComponentData.fromS3(bucket, 'components/my-component.yml'),
388
+ });
389
+ ```
390
+
391
+ #### Encrypt component data with a KMS key
392
+
393
+ You can encrypt component data with a KMS key, so that only principals with access to decrypt with the key are able to
394
+ access the component data.
395
+
396
+ ```ts
397
+ const component = new imagebuilder.Component(this, 'EncryptedComponent', {
398
+ platform: imagebuilder.Platform.LINUX,
399
+ kmsKey: new kms.Key(this, 'ComponentKey'),
400
+ data: imagebuilder.ComponentData.fromJsonObject({
401
+ schemaVersion: imagebuilder.ComponentSchemaVersion.V1_0,
402
+ phases: [
403
+ {
404
+ name: imagebuilder.ComponentPhaseName.BUILD,
405
+ steps: [
406
+ {
407
+ name: 'secure-setup',
408
+ action: imagebuilder.ComponentAction.EXECUTE_BASH,
409
+ inputs: {
410
+ commands: ['echo "This component data is encrypted with KMS"'],
411
+ },
412
+ },
413
+ ],
414
+ },
415
+ ],
416
+ }),
417
+ });
418
+ ```
419
+
420
+ #### AWS-Managed Components
421
+
422
+ AWS provides a collection of managed components for common tasks:
423
+
424
+ ```ts
425
+ // Install AWS CLI v2
426
+ const awsCliComponent = imagebuilder.AwsManagedComponent.awsCliV2(this, 'AwsCli', {
427
+ platform: imagebuilder.Platform.LINUX
428
+ });
429
+
430
+ // Update the operating system
431
+ const updateComponent = imagebuilder.AwsManagedComponent.updateOS(this, 'UpdateOS', {
432
+ platform: imagebuilder.Platform.LINUX
433
+ });
434
+
435
+ // Reference any AWS-managed component by name
436
+ const customAwsComponent = imagebuilder.AwsManagedComponent.fromAwsManagedComponentName(
437
+ this,
438
+ 'CloudWatchAgent',
439
+ 'amazon-cloudwatch-agent-linux'
440
+ );
441
+ ```
442
+
443
+ #### AWS Marketplace Components
444
+
445
+ You can reference AWS Marketplace components using the marketplace component name and its product ID:
446
+
447
+ ```ts
448
+ const marketplaceComponent = imagebuilder.AwsMarketplaceComponent.fromAwsMarketplaceComponentAttributes(
449
+ this,
450
+ 'MarketplaceComponent',
451
+ {
452
+ componentName: 'my-marketplace-component',
453
+ marketplaceProductId: 'prod-1234567890abcdef0',
454
+ }
455
+ );
456
+ ```
457
+
458
+ ### Infrastructure Configuration
459
+
460
+ Infrastructure configuration defines the compute resources and environment settings used during the image building
461
+ process. This includes instance types, IAM instance profile, VPC settings, subnets, security groups, SNS topics for
462
+ notifications, logging configuration, and troubleshooting settings like whether to terminate instances on failure or
463
+ keep them running for debugging. These settings are applied to builds when included in an image or an image pipeline.
464
+
465
+ ```ts
466
+ const infrastructureConfiguration = new imagebuilder.InfrastructureConfiguration(this, 'InfrastructureConfiguration', {
467
+ infrastructureConfigurationName: 'test-infrastructure-configuration',
468
+ description: 'An Infrastructure Configuration',
469
+ // Optional - instance types to use for build/test
470
+ instanceTypes: [
471
+ ec2.InstanceType.of(ec2.InstanceClass.STANDARD7_INTEL, ec2.InstanceSize.LARGE),
472
+ ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.LARGE)
473
+ ],
474
+ // Optional - create an instance profile with necessary permissions
475
+ instanceProfile: new iam.InstanceProfile(this, 'InstanceProfile', {
476
+ instanceProfileName: 'test-instance-profile',
477
+ role: new iam.Role(this, 'InstanceProfileRole', {
478
+ assumedBy: iam.ServicePrincipal.fromStaticServicePrincipleName('ec2.amazonaws.com'),
479
+ managedPolicies: [
480
+ iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSSMManagedInstanceCore'),
481
+ iam.ManagedPolicy.fromAwsManagedPolicyName('EC2InstanceProfileForImageBuilder')
482
+ ]
483
+ })
484
+ }),
485
+ // Use VPC network configuration
486
+ vpc,
487
+ subnetSelection: { subnetType: ec2.SubnetType.PUBLIC },
488
+ securityGroups: [ec2.SecurityGroup.fromSecurityGroupId(this, 'SecurityGroup', vpc.vpcDefaultSecurityGroup)],
489
+ keyPair: ec2.KeyPair.fromKeyPairName(this, 'KeyPair', 'imagebuilder-instance-key-pair'),
490
+ terminateInstanceOnFailure: true,
491
+ // Optional - IMDSv2 settings
492
+ httpTokens: imagebuilder.HttpTokens.REQUIRED,
493
+ httpPutResponseHopLimit: 1,
494
+ // Optional - publish image completion messages to an SNS topic
495
+ notificationTopic: sns.Topic.fromTopicArn(
496
+ this,
497
+ 'Topic',
498
+ this.formatArn({ service: 'sns', resource: 'image-builder-topic' })
499
+ ),
500
+ // Optional - log settings. Logging is enabled by default
501
+ logging: {
502
+ s3Bucket: s3.Bucket.fromBucketName(this, 'LogBucket', `imagebuilder-logging-${Aws.ACCOUNT_ID}`),
503
+ s3KeyPrefix: 'imagebuilder-logs'
504
+ },
505
+ // Optional - host placement settings
506
+ ec2InstanceAvailabilityZone: Stack.of(this).availabilityZones[0],
507
+ ec2InstanceHostId: dedicatedHost.attrHostId,
508
+ ec2InstanceTenancy: imagebuilder.Tenancy.HOST,
509
+ resourceTags: {
510
+ Environment: 'production'
511
+ }
512
+ });
513
+ ```
514
+
515
+ ### Distribution Configuration
516
+
517
+ Distribution configuration defines how and where your built images are distributed after successful creation. For AMIs,
518
+ this includes target AWS Regions, KMS encryption keys, account sharing permissions, License Manager associations, and
519
+ launch template configurations. For container images, it specifies the target Amazon ECR repositories across regions.
520
+ A distribution configuration can be associated with an image or an image pipeline to define these distribution settings
521
+ for image builds.
522
+
523
+ #### AMI Distributions
524
+
525
+ AMI distributions can be defined to copy and modify AMIs in different accounts and regions, and apply them to launch
526
+ templates, SSM parameters, etc.:
527
+
528
+ ```ts
529
+ const distributionConfiguration = new imagebuilder.DistributionConfiguration(this, 'DistributionConfiguration', {
530
+ distributionConfigurationName: 'test-distribution-configuration',
531
+ description: 'A Distribution Configuration',
532
+ amiDistributions: [
533
+ {
534
+ // Distribute AMI to us-east-2 and publish the AMI ID to an SSM parameter
535
+ region: 'us-east-2',
536
+ ssmParameters: [
537
+ {
538
+ parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'CrossRegionParameter', {
539
+ parameterName: '/imagebuilder/ami',
540
+ forceDynamicReference: true
541
+ })
542
+ }
543
+ ]
544
+ }
545
+ ]
546
+ });
547
+
548
+ // For AMI-based image builds - add an AMI distribution in the current region
549
+ distributionConfiguration.addAmiDistributions({
550
+ amiName: 'imagebuilder-{{ imagebuilder:buildDate }}',
551
+ amiDescription: 'Build AMI',
552
+ amiKmsKey: kms.Key.fromLookup(this, 'ComponentKey', { aliasName: 'alias/distribution-encryption-key' }),
553
+ // Copy the AMI to different accounts
554
+ amiTargetAccountIds: ['123456789012', '098765432109'],
555
+ // Add launch permissions on the AMI
556
+ amiLaunchPermission: {
557
+ organizationArns: [
558
+ this.formatArn({ region: '', service: 'organizations', resource: 'organization', resourceName: 'o-1234567abc' })
559
+ ],
560
+ organizationalUnitArns: [
561
+ this.formatArn({
562
+ region: '',
563
+ service: 'organizations',
564
+ resource: 'ou',
565
+ resourceName: 'o-1234567abc/ou-a123-b4567890'
566
+ })
567
+ ],
568
+ isPublicUserGroup: true,
569
+ accountIds: ['234567890123']
570
+ },
571
+ // Attach tags to the AMI
572
+ amiTags: {
573
+ Environment: 'production',
574
+ Version: '{{ imagebuilder:buildVersion }}'
575
+ },
576
+ // Optional - publish the distributed AMI ID to an SSM parameter
577
+ ssmParameters: [
578
+ {
579
+ parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'Parameter', {
580
+ parameterName: '/imagebuilder/ami',
581
+ forceDynamicReference: true
582
+ })
583
+ },
584
+ {
585
+ amiAccount: '098765432109',
586
+ dataType: ssm.ParameterDataType.TEXT,
587
+ parameter: ssm.StringParameter.fromStringParameterAttributes(this, 'CrossAccountParameter', {
588
+ parameterName: 'imagebuilder-prod-ami',
589
+ forceDynamicReference: true
590
+ })
591
+ }
592
+ ],
593
+ // Optional - create a new launch template version with the distributed AMI ID
594
+ launchTemplates: [
595
+ {
596
+ launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'LaunchTemplate', {
597
+ launchTemplateId: 'lt-1234'
598
+ }),
599
+ setDefaultVersion: true
600
+ },
601
+ {
602
+ accountId: '123456789012',
603
+ launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'CrossAccountLaunchTemplate', {
604
+ launchTemplateId: 'lt-5678'
605
+ }),
606
+ setDefaultVersion: true
607
+ }
608
+ ],
609
+ // Optional - enable Fast Launch on an imported launch template
610
+ fastLaunchConfigurations: [
611
+ {
612
+ enabled: true,
613
+ launchTemplate: ec2.LaunchTemplate.fromLaunchTemplateAttributes(this, 'FastLaunchLT', {
614
+ launchTemplateName: 'fast-launch-lt'
615
+ }),
616
+ maxParallelLaunches: 10,
617
+ targetSnapshotCount: 2
618
+ }
619
+ ],
620
+ // Optional - license configurations to apply to the AMI
621
+ licenseConfigurationArns: [
622
+ 'arn:aws:license-manager:us-west-2:123456789012:license-configuration:lic-abcdefghijklmnopqrstuvwxyz'
623
+ ]
624
+ });
625
+ ```
626
+
627
+ #### Container Distributions
628
+
629
+ ##### Container repositories
630
+
631
+ Container distributions can be configured to distribute to ECR repositories:
632
+
633
+ ```ts
634
+ const ecrRepository = ecr.Repository.fromRepositoryName(this, 'ECRRepository', 'my-repo');
635
+ const imageBuilderRepository = imagebuilder.Repository.fromEcr(ecrRepository);
636
+ ```
637
+
638
+ ##### Defining a container distribution
639
+
640
+ You can configure the container repositories as well as the description and tags applied to the distributed container
641
+ images:
642
+
643
+ ```ts
644
+ const ecrRepository = ecr.Repository.fromRepositoryName(this, 'ECRRepository', 'my-repo');
645
+ const containerRepository = imagebuilder.Repository.fromEcr(ecrRepository);
646
+ const containerDistributionConfiguration = new imagebuilder.DistributionConfiguration(
647
+ this,
648
+ 'ContainerDistributionConfiguration'
649
+ );
650
+
651
+ containerDistributionConfiguration.addContainerDistributions({
652
+ containerRepository,
653
+ containerDescription: 'Test container image',
654
+ containerTags: ['latest', 'latest-1.0']
655
+ });
656
+ ```