cdk-factory 0.16.4__tar.gz → 0.16.5__tar.gz

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 cdk-factory might be problematic. Click here for more details.

Files changed (161) hide show
  1. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/PKG-INFO +1 -1
  2. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/pyproject.toml +1 -1
  3. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/auto_scaling.py +5 -0
  4. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py +75 -22
  5. cdk_factory-0.16.5/src/cdk_factory/version.py +1 -0
  6. cdk_factory-0.16.4/src/cdk_factory/version.py +0 -1
  7. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/.gitignore +0 -0
  8. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/.windsurfrules +0 -0
  9. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/LICENSE +0 -0
  10. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/README.md +0 -0
  11. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/archive/README.md +0 -0
  12. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/archive/migrate_to_enhanced_ssm.py +0 -0
  13. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/examples/json-imports/README.md +0 -0
  14. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/examples/separate-api-gateway/README.md +0 -0
  15. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/examples/separate-api-gateway/api-gateway-stack.json +0 -0
  16. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/examples/separate-api-gateway/config.json +0 -0
  17. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/examples/separate-api-gateway/lambda-stack.json +0 -0
  18. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/mypy.ini +0 -0
  19. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/publish_to_pypi.py +0 -0
  20. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/publish_to_pypi.sh +0 -0
  21. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/pysetup.py +0 -0
  22. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/pysetup.sh +0 -0
  23. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/requirements.dev.txt +0 -0
  24. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/requirements.tests.txt +0 -0
  25. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/requirements.txt +0 -0
  26. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/run-checks.sh +0 -0
  27. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/run-tests-clean-venv.sh +0 -0
  28. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/run-tests.sh +0 -0
  29. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/scripts/cloudfront-cleanup.sh +0 -0
  30. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/__init__.py +0 -0
  31. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/app.py +0 -0
  32. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/builds/README.md +0 -0
  33. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/cdk.json +0 -0
  34. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/cli.py +0 -0
  35. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/commands/command_loader.py +0 -0
  36. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/base_config.py +0 -0
  37. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/cdk_config.py +0 -0
  38. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/deployment.py +0 -0
  39. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/deployment_wave.py +0 -0
  40. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/devops.py +0 -0
  41. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/enhanced_base_config.py +0 -0
  42. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/enhanced_ssm_config.py +0 -0
  43. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/management.py +0 -0
  44. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/pipeline.py +0 -0
  45. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/pipeline_stage.py +0 -0
  46. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/_resources.py +0 -0
  47. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/acm.py +0 -0
  48. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/api_gateway.py +0 -0
  49. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/apigateway_route_config.py +0 -0
  50. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/cloudfront.py +0 -0
  51. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/cloudwatch_widget.py +0 -0
  52. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/code_artifact.py +0 -0
  53. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/code_artifact_login.py +0 -0
  54. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/code_repository.py +0 -0
  55. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/cognito.py +0 -0
  56. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/docker.py +0 -0
  57. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/dynamodb.py +0 -0
  58. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/ecr.py +0 -0
  59. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/ecs_service.py +0 -0
  60. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/exisiting.py +0 -0
  61. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/lambda_edge.py +0 -0
  62. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/lambda_function.py +0 -0
  63. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/lambda_layers.py +0 -0
  64. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/lambda_triggers.py +0 -0
  65. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/load_balancer.py +0 -0
  66. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/monitoring.py +0 -0
  67. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/rds.py +0 -0
  68. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/resource_mapping.py +0 -0
  69. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/resource_naming.py +0 -0
  70. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/resource_types.py +0 -0
  71. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/route53.py +0 -0
  72. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/route53_hosted_zone.py +0 -0
  73. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/rum.py +0 -0
  74. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/s3.py +0 -0
  75. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/security_group.py +0 -0
  76. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/security_group_full_stack.py +0 -0
  77. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/sqs.py +0 -0
  78. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/resources/vpc.py +0 -0
  79. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/stack.py +0 -0
  80. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/configurations/workload.py +0 -0
  81. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py +0 -0
  82. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/constructs/ecr/ecr_construct.py +0 -0
  83. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/constructs/lambdas/lambda_function_construct.py +0 -0
  84. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/constructs/lambdas/lambda_function_docker_construct.py +0 -0
  85. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/constructs/lambdas/lambda_function_role_construct.py +0 -0
  86. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py +0 -0
  87. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/constructs/lambdas/policies/policy_statements.py +0 -0
  88. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/constructs/s3_buckets/s3_bucket_construct.py +0 -0
  89. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py +0 -0
  90. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py +0 -0
  91. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py +0 -0
  92. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/interfaces/enhanced_ssm_parameter_mixin.py +0 -0
  93. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/interfaces/istack.py +0 -0
  94. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/interfaces/live_ssm_resolver.py +0 -0
  95. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/interfaces/ssm_parameter_mixin.py +0 -0
  96. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/lambdas/edge/ip_gate/handler.py +0 -0
  97. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/lambdas/health_handler.py +0 -0
  98. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/pipeline/path_utils.py +0 -0
  99. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/pipeline/pipeline_factory.py +0 -0
  100. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/pipeline/security/policies.py +0 -0
  101. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/pipeline/security/roles.py +0 -0
  102. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/pipeline/stage.py +0 -0
  103. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack/istack.py +0 -0
  104. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack/stack_factory.py +0 -0
  105. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack/stack_module_loader.py +0 -0
  106. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack/stack_module_registry.py +0 -0
  107. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack/stack_modules.py +0 -0
  108. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/__init__.py +0 -0
  109. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/acm/__init__.py +0 -0
  110. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/acm/acm_stack.py +0 -0
  111. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py +0 -0
  112. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/auto_scaling/__init__.py +0 -0
  113. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py +0 -0
  114. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/buckets/README.md +0 -0
  115. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/buckets/bucket_stack.py +0 -0
  116. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/cloudfront/__init__.py +0 -0
  117. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/cloudfront/cloudfront_stack.py +0 -0
  118. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/code_artifact/code_artifact_stack.py +0 -0
  119. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/cognito/cognito_stack.py +0 -0
  120. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py +0 -0
  121. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/ecr/README.md +0 -0
  122. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/ecr/ecr_stack.py +0 -0
  123. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/ecs/__init__.py +0 -0
  124. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py +0 -0
  125. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/lambda_edge/__init__.py +0 -0
  126. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +0 -0
  127. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/load_balancer/__init__.py +0 -0
  128. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/load_balancer/load_balancer_stack.py +0 -0
  129. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/monitoring/__init__.py +0 -0
  130. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/monitoring/monitoring_stack.py +0 -0
  131. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/rds/__init__.py +0 -0
  132. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/rds/rds_stack.py +0 -0
  133. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/route53/__init__.py +0 -0
  134. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/route53/route53_stack.py +0 -0
  135. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/rum/__init__.py +0 -0
  136. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/rum/rum_stack.py +0 -0
  137. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/security_group/__init__.py +0 -0
  138. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/security_group/security_group_full_stack.py +0 -0
  139. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/security_group/security_group_stack.py +0 -0
  140. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/simple_queue_service/sqs_stack.py +0 -0
  141. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/stack_base.py +0 -0
  142. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/vpc/__init__.py +0 -0
  143. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/vpc/vpc_stack.py +0 -0
  144. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stack_library/websites/static_website_stack.py +0 -0
  145. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/stages/websites/static_website_stage.py +0 -0
  146. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/templates/README.md +0 -0
  147. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/templates/app.py.template +0 -0
  148. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/templates/cdk.json.template +0 -0
  149. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/utilities/api_gateway_integration_utility.py +0 -0
  150. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/utilities/commandline_args.py +0 -0
  151. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/utilities/configuration_loader.py +0 -0
  152. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/utilities/docker_utilities.py +0 -0
  153. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/utilities/environment_services.py +0 -0
  154. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/utilities/file_operations.py +0 -0
  155. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/utilities/git_utilities.py +0 -0
  156. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/utilities/json_loading_utility.py +0 -0
  157. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/utilities/lambda_function_utilities.py +0 -0
  158. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/utilities/os_execute.py +0 -0
  159. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/utils/api_gateway_utilities.py +0 -0
  160. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/cdk_factory/workload/workload_factory.py +0 -0
  161. {cdk_factory-0.16.4 → cdk_factory-0.16.5}/src/handlers/test/handler.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cdk_factory
3
- Version: 0.16.4
3
+ Version: 0.16.5
4
4
  Summary: CDK Factory. A QuickStarter and best practices setup for CDK projects
5
5
  Author-email: Eric Wilson <eric.wilson@geekcafe.com>
6
6
  License: MIT License
@@ -33,7 +33,7 @@ markers = [
33
33
  [project]
34
34
 
35
35
  name = "cdk_factory"
36
- version = "0.16.4"
36
+ version = "0.16.5"
37
37
  authors = [
38
38
  { name="Eric Wilson", email="eric.wilson@geekcafe.com" }
39
39
  ]
@@ -175,3 +175,8 @@ class AutoScalingConfig(EnhancedBaseConfig):
175
175
  def key_name(self) -> Optional[str]:
176
176
  """EC2 key pair name for SSH access"""
177
177
  return self.__config.get("key_name")
178
+
179
+ @property
180
+ def ssm_imports(self) -> Dict[str, Any]:
181
+ """SSM imports for the Auto Scaling Group"""
182
+ return self.__config.get("ssm", {}).get("imports", {})
@@ -47,6 +47,8 @@ class AutoScalingStack(IStack, EnhancedSsmParameterMixin):
47
47
  self.instance_role = None
48
48
  self.user_data = None
49
49
  self._vpc = None
50
+ # SSM imported values
51
+ self.ssm_imported_values: Dict[str, str] = {}
50
52
 
51
53
  def build(
52
54
  self,
@@ -73,6 +75,9 @@ class AutoScalingStack(IStack, EnhancedSsmParameterMixin):
73
75
  )
74
76
  asg_name = deployment.build_resource_name(self.asg_config.name)
75
77
 
78
+ # Process SSM imports
79
+ self._process_ssm_imports()
80
+
76
81
  # Get VPC and security groups
77
82
  self.security_groups = self._get_security_groups()
78
83
 
@@ -97,11 +102,28 @@ class AutoScalingStack(IStack, EnhancedSsmParameterMixin):
97
102
  @property
98
103
  def vpc(self) -> ec2.IVpc:
99
104
  """Get the VPC for the Auto Scaling Group"""
100
- # Assuming VPC is provided by the workload
101
-
102
105
  if self._vpc:
103
106
  return self._vpc
104
107
 
108
+ # Check SSM imported values first (tokens from SSM parameters)
109
+ if "vpc_id" in self.ssm_imported_values:
110
+ vpc_id = self.ssm_imported_values["vpc_id"]
111
+
112
+ # Build VPC attributes
113
+ vpc_attrs = {
114
+ "vpc_id": vpc_id,
115
+ "availability_zones": ["us-east-1a", "us-east-1b"],
116
+ }
117
+
118
+ # If we have subnet_ids from SSM, provide dummy subnets
119
+ # The actual subnets will be set via CloudFormation escape hatch
120
+ if "subnet_ids" in self.ssm_imported_values:
121
+ # Provide dummy subnet IDs - these will be overridden by the escape hatch
122
+ # We need at least one dummy subnet per AZ to satisfy CDK's validation
123
+ vpc_attrs["public_subnet_ids"] = ["subnet-dummy1", "subnet-dummy2"]
124
+
125
+ # Use from_vpc_attributes() for SSM tokens
126
+ self._vpc = ec2.Vpc.from_vpc_attributes(self, "VPC", **vpc_attrs)
105
127
  elif self.asg_config.vpc_id:
106
128
  self._vpc = ec2.Vpc.from_lookup(self, "VPC", vpc_id=self.asg_config.vpc_id)
107
129
  elif self.workload.vpc_id:
@@ -120,18 +142,13 @@ class AutoScalingStack(IStack, EnhancedSsmParameterMixin):
120
142
  """Get target group ARNs from SSM imports"""
121
143
  target_group_arns = []
122
144
 
123
- # Import target group ARNs using the SSM import pattern
124
- imported_values = self.import_resources_from_ssm(
125
- scope=self,
126
- config=self.asg_config,
127
- resource_name=self.asg_config.name,
128
- resource_type="auto-scaling",
129
- )
130
-
131
- # Look for target group ARN imports
132
- for key, value in imported_values.items():
133
- if "target_group" in key and "arn" in key:
134
- target_group_arns.append(value)
145
+ # Check if we have SSM imports for target groups
146
+ if "target_group_arns" in self.ssm_imported_values:
147
+ imported_tg_arns = self.ssm_imported_values["target_group_arns"]
148
+ if isinstance(imported_tg_arns, list):
149
+ target_group_arns.extend(imported_tg_arns)
150
+ else:
151
+ target_group_arns.append(imported_tg_arns)
135
152
 
136
153
  # see if we have any directly defined in the config
137
154
  if self.asg_config.target_group_arns:
@@ -562,11 +579,47 @@ class AutoScalingStack(IStack, EnhancedSsmParameterMixin):
562
579
  export_name=f"{self.deployment.build_resource_name(asg_name)}-launch-template-id",
563
580
  )
564
581
 
565
- # Instance Role ARN
566
- if self.instance_role:
567
- cdk.CfnOutput(
568
- self,
569
- f"{asg_name}-instance-role-arn",
570
- value=self.instance_role.role_arn,
571
- export_name=f"{self.deployment.build_resource_name(asg_name)}-instance-role-arn",
572
- )
582
+ def _process_ssm_imports(self) -> None:
583
+ """
584
+ Process SSM imports from configuration.
585
+
586
+ This method handles importing SSM parameters that are specified in the
587
+ auto_scaling configuration under the 'ssm.imports' section.
588
+ """
589
+ logger.info(f"Processing {len(self.asg_config.ssm_imports)} SSM imports for Auto Scaling Group")
590
+
591
+ for param_key, param_value in self.asg_config.ssm_imports.items():
592
+ try:
593
+ if isinstance(param_value, list):
594
+ # Handle list imports (like security_group_ids)
595
+ imported_list = []
596
+ for item in param_value:
597
+ param_path = item
598
+ if not param_path.startswith('/'):
599
+ param_path = f"/{self.deployment.environment}/{self.deployment.workload_name}/{item}"
600
+
601
+ construct_id = f"ssm-import-{param_key}-{hash(param_path) % 10000}"
602
+ param = ssm.StringParameter.from_string_parameter_name(
603
+ self, construct_id, param_path
604
+ )
605
+ imported_list.append(param.string_value)
606
+
607
+ self.ssm_imported_values[param_key] = imported_list
608
+ logger.info(f"Imported SSM parameter list: {param_key} with {len(imported_list)} items")
609
+ else:
610
+ # Handle string values
611
+ param_path = param_value
612
+ if not param_path.startswith('/'):
613
+ param_path = f"/{self.deployment.environment}/{self.deployment.workload_name}/{param_path}"
614
+
615
+ construct_id = f"ssm-import-{param_key}-{hash(param_path) % 10000}"
616
+ param = ssm.StringParameter.from_string_parameter_name(
617
+ self, construct_id, param_path
618
+ )
619
+
620
+ self.ssm_imported_values[param_key] = param.string_value
621
+ logger.info(f"Imported SSM parameter: {param_key} from {param_path}")
622
+
623
+ except Exception as e:
624
+ logger.error(f"Failed to import SSM parameter {param_key}: {e}")
625
+ raise
@@ -0,0 +1 @@
1
+ __version__ = "0.16.5"
@@ -1 +0,0 @@
1
- __version__ = "0.16.4"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes