cdk-factory 0.18.4__tar.gz → 0.18.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.
Files changed (167) hide show
  1. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/PKG-INFO +1 -1
  2. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/pyproject.toml +1 -1
  3. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/interfaces/standardized_ssm_mixin.py +39 -0
  4. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_stack_standardized.py +25 -10
  5. cdk_factory-0.18.5/src/cdk_factory/version.py +1 -0
  6. cdk_factory-0.18.4/src/cdk_factory/version.py +0 -1
  7. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/.gitignore +0 -0
  8. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/.windsurfrules +0 -0
  9. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/LICENSE +0 -0
  10. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/README.md +0 -0
  11. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/REFACTORING_PLAN.md +0 -0
  12. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/archive/README.md +0 -0
  13. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/archive/migrate_to_enhanced_ssm.py +0 -0
  14. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/examples/json-imports/README.md +0 -0
  15. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/examples/separate-api-gateway/README.md +0 -0
  16. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/examples/separate-api-gateway/api-gateway-stack.json +0 -0
  17. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/examples/separate-api-gateway/config.json +0 -0
  18. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/examples/separate-api-gateway/lambda-stack.json +0 -0
  19. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/mypy.ini +0 -0
  20. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/publish_to_pypi.py +0 -0
  21. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/publish_to_pypi.sh +0 -0
  22. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/pysetup.py +0 -0
  23. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/pysetup.sh +0 -0
  24. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/requirements.dev.txt +0 -0
  25. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/requirements.tests.txt +0 -0
  26. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/requirements.txt +0 -0
  27. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/run-checks.sh +0 -0
  28. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/run-tests-clean-venv.sh +0 -0
  29. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/run-tests.sh +0 -0
  30. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/scripts/cloudfront-cleanup.sh +0 -0
  31. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/__init__.py +0 -0
  32. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/app.py +0 -0
  33. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/builds/README.md +0 -0
  34. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/cdk.json +0 -0
  35. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/cli.py +0 -0
  36. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/commands/command_loader.py +0 -0
  37. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/base_config.py +0 -0
  38. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/cdk_config.py +0 -0
  39. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/deployment.py +0 -0
  40. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/deployment_wave.py +0 -0
  41. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/devops.py +0 -0
  42. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/enhanced_base_config.py +0 -0
  43. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/enhanced_ssm_config.py +0 -0
  44. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/management.py +0 -0
  45. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/pipeline.py +0 -0
  46. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/pipeline_stage.py +0 -0
  47. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/_resources.py +0 -0
  48. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/acm.py +0 -0
  49. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/api_gateway.py +0 -0
  50. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/apigateway_route_config.py +0 -0
  51. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/auto_scaling.py +0 -0
  52. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/cloudfront.py +0 -0
  53. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/cloudwatch_widget.py +0 -0
  54. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/code_artifact.py +0 -0
  55. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/code_artifact_login.py +0 -0
  56. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/code_repository.py +0 -0
  57. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/cognito.py +0 -0
  58. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/docker.py +0 -0
  59. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/dynamodb.py +0 -0
  60. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/ecr.py +0 -0
  61. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/ecs_cluster.py +0 -0
  62. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/ecs_service.py +0 -0
  63. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/exisiting.py +0 -0
  64. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/lambda_edge.py +0 -0
  65. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/lambda_function.py +0 -0
  66. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/lambda_layers.py +0 -0
  67. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/lambda_triggers.py +0 -0
  68. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/load_balancer.py +0 -0
  69. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/monitoring.py +0 -0
  70. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/rds.py +0 -0
  71. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/resource_mapping.py +0 -0
  72. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/resource_naming.py +0 -0
  73. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/resource_types.py +0 -0
  74. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/route53.py +0 -0
  75. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/route53_hosted_zone.py +0 -0
  76. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/rum.py +0 -0
  77. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/s3.py +0 -0
  78. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/security_group.py +0 -0
  79. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/security_group_full_stack.py +0 -0
  80. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/sqs.py +0 -0
  81. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/resources/vpc.py +0 -0
  82. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/stack.py +0 -0
  83. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/configurations/workload.py +0 -0
  84. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py +0 -0
  85. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/constructs/ecr/ecr_construct.py +0 -0
  86. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/constructs/lambdas/lambda_function_construct.py +0 -0
  87. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/constructs/lambdas/lambda_function_docker_construct.py +0 -0
  88. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/constructs/lambdas/lambda_function_role_construct.py +0 -0
  89. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py +0 -0
  90. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/constructs/lambdas/policies/policy_statements.py +0 -0
  91. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/constructs/s3_buckets/s3_bucket_construct.py +0 -0
  92. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py +0 -0
  93. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py +0 -0
  94. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py +0 -0
  95. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/interfaces/istack.py +0 -0
  96. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/interfaces/live_ssm_resolver.py +0 -0
  97. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/interfaces/networked_stack_mixin.py +0 -0
  98. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/interfaces/vpc_provider_mixin.py +0 -0
  99. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/lambdas/edge/ip_gate/handler.py +0 -0
  100. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/lambdas/health_handler.py +0 -0
  101. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/pipeline/path_utils.py +0 -0
  102. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/pipeline/pipeline_factory.py +0 -0
  103. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/pipeline/security/policies.py +0 -0
  104. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/pipeline/security/roles.py +0 -0
  105. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/pipeline/stage.py +0 -0
  106. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack/istack.py +0 -0
  107. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack/stack_factory.py +0 -0
  108. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack/stack_module_loader.py +0 -0
  109. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack/stack_module_registry.py +0 -0
  110. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack/stack_modules.py +0 -0
  111. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/__init__.py +0 -0
  112. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/acm/__init__.py +0 -0
  113. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/acm/acm_stack.py +0 -0
  114. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py +0 -0
  115. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/auto_scaling/__init__.py +0 -0
  116. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_old.py +0 -0
  117. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py +0 -0
  118. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/buckets/README.md +0 -0
  119. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/buckets/bucket_stack.py +0 -0
  120. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/cloudfront/__init__.py +0 -0
  121. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/cloudfront/cloudfront_stack.py +0 -0
  122. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/code_artifact/code_artifact_stack.py +0 -0
  123. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/cognito/cognito_stack.py +0 -0
  124. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py +0 -0
  125. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/ecr/README.md +0 -0
  126. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/ecr/ecr_stack.py +0 -0
  127. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/ecs/__init__.py +0 -0
  128. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/ecs/ecs_cluster_stack_standardized.py +0 -0
  129. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py +0 -0
  130. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/lambda_edge/__init__.py +0 -0
  131. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +0 -0
  132. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/load_balancer/__init__.py +0 -0
  133. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/load_balancer/load_balancer_stack.py +0 -0
  134. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/monitoring/__init__.py +0 -0
  135. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/monitoring/monitoring_stack.py +0 -0
  136. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/rds/__init__.py +0 -0
  137. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/rds/rds_stack.py +0 -0
  138. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/route53/__init__.py +0 -0
  139. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/route53/route53_stack.py +0 -0
  140. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/rum/__init__.py +0 -0
  141. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/rum/rum_stack.py +0 -0
  142. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/security_group/__init__.py +0 -0
  143. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/security_group/security_group_full_stack.py +0 -0
  144. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/security_group/security_group_stack.py +0 -0
  145. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/simple_queue_service/sqs_stack.py +0 -0
  146. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/stack_base.py +0 -0
  147. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/vpc/__init__.py +0 -0
  148. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/vpc/vpc_stack_standardized.py +0 -0
  149. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stack_library/websites/static_website_stack.py +0 -0
  150. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/stages/websites/static_website_stage.py +0 -0
  151. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/templates/README.md +0 -0
  152. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/templates/app.py.template +0 -0
  153. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/templates/cdk.json.template +0 -0
  154. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/utilities/api_gateway_integration_utility.py +0 -0
  155. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/utilities/commandline_args.py +0 -0
  156. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/utilities/configuration_loader.py +0 -0
  157. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/utilities/docker_utilities.py +0 -0
  158. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/utilities/environment_services.py +0 -0
  159. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/utilities/file_operations.py +0 -0
  160. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/utilities/git_utilities.py +0 -0
  161. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/utilities/json_loading_utility.py +0 -0
  162. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/utilities/lambda_function_utilities.py +0 -0
  163. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/utilities/os_execute.py +0 -0
  164. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/utils/api_gateway_utilities.py +0 -0
  165. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/validation/config_validator.py +0 -0
  166. {cdk_factory-0.18.4 → cdk_factory-0.18.5}/src/cdk_factory/workload/workload_factory.py +0 -0
  167. {cdk_factory-0.18.4 → cdk_factory-0.18.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.18.4
3
+ Version: 0.18.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.18.4"
36
+ version = "0.18.5"
37
37
  authors = [
38
38
  { name="Eric Wilson", email="eric.wilson@geekcafe.com" }
39
39
  ]
@@ -24,6 +24,8 @@ import os
24
24
  import re
25
25
  from typing import Dict, Any, Optional, List, Union
26
26
  from aws_cdk import aws_ssm as ssm
27
+ from aws_cdk import aws_ec2 as ec2
28
+ from aws_cdk import aws_ecs as ecs
27
29
  from constructs import Construct
28
30
  from aws_lambda_powertools import Logger
29
31
  from cdk_factory.configurations.deployment import DeploymentConfig
@@ -610,3 +612,40 @@ class SsmStandardValidator:
610
612
  errors.append(f"{context}: SSM path should use template variables: {path}")
611
613
 
612
614
  return errors
615
+
616
+
617
+ def parse_subnet_ids_from_ssm(self, subnet_ids_key: str = "subnet_ids") -> List[str]:
618
+ """
619
+ Helper function to parse subnet IDs from SSM imports.
620
+
621
+ This common pattern handles:
622
+ 1. Comma-separated subnet ID strings from SSM
623
+ 2. List of subnet IDs from SSM
624
+ 3. CDK Token resolution for deployment-time values
625
+
626
+ Args:
627
+ subnet_ids_key: The key used for subnet IDs in SSM imports (default: "subnet_ids")
628
+
629
+ Returns:
630
+ List of subnet IDs (empty list if not found or invalid format)
631
+ """
632
+ ssm_imports = self.get_all_ssm_imports()
633
+
634
+ if subnet_ids_key not in ssm_imports:
635
+ logger.warning(f"No subnet IDs found in SSM imports with key: {subnet_ids_key}")
636
+ return []
637
+
638
+ subnet_ids = ssm_imports[subnet_ids_key]
639
+
640
+ # Handle comma-separated string or list
641
+ if isinstance(subnet_ids, str):
642
+ # Split comma-separated string
643
+ parsed_ids = [sid.strip() for sid in subnet_ids.split(',') if sid.strip()]
644
+ logger.info(f"Parsed {len(parsed_ids)} subnet IDs from comma-separated string")
645
+ return parsed_ids
646
+ elif isinstance(subnet_ids, list):
647
+ logger.info(f"Using {len(subnet_ids)} subnet IDs from list")
648
+ return subnet_ids
649
+ else:
650
+ logger.warning(f"Unexpected subnet_ids type: {type(subnet_ids)}")
651
+ return []
@@ -212,8 +212,20 @@ class AutoScalingStack(IStack, VPCProviderMixin, StandardizedSsmMixin):
212
212
  """
213
213
  # Primary method: Use standardized SSM imports
214
214
  ssm_imports = self._get_ssm_imports()
215
+
215
216
  if "subnet_ids" in ssm_imports:
216
- return ssm_imports["subnet_ids"]
217
+ subnet_ids = ssm_imports["subnet_ids"]
218
+
219
+ # Handle comma-separated string or list
220
+ if isinstance(subnet_ids, str):
221
+ # Split comma-separated string
222
+ parsed_ids = [sid.strip() for sid in subnet_ids.split(',') if sid.strip()]
223
+ return parsed_ids
224
+ elif isinstance(subnet_ids, list):
225
+ return subnet_ids
226
+ else:
227
+ logger.warning(f"Unexpected subnet_ids type: {type(subnet_ids)}")
228
+ return []
217
229
 
218
230
  # Fallback: Use VPC provider mixin (backward compatibility)
219
231
  elif hasattr(self, '_get_subnets_from_provider'):
@@ -497,18 +509,21 @@ class AutoScalingStack(IStack, VPCProviderMixin, StandardizedSsmMixin):
497
509
  # Get the underlying CloudFormation resource to add update policy
498
510
  cfn_asg = self.auto_scaling_group.node.default_child
499
511
 
500
- # Get existing update policy or create new one
501
- existing_policy = getattr(cfn_asg, 'update_policy', {})
512
+ # Get CDK's default policy first (if any)
513
+ default_policy = getattr(cfn_asg, 'update_policy', {})
502
514
 
503
- # Merge rolling update policy with existing policy
504
- existing_policy["AutoScalingRollingUpdate"] = {
505
- "MinInstancesInService": update_policy.get("min_instances_in_service", 1),
506
- "MaxBatchSize": update_policy.get("max_batch_size", 1),
507
- "PauseTime": f"PT{update_policy.get('pause_time', 300)}S"
515
+ # Merge with defaults, then use the robust add_override method
516
+ merged_policy = {
517
+ **default_policy, # Preserve CDK defaults
518
+ "AutoScalingRollingUpdate": {
519
+ "MinInstancesInService": update_policy.get("min_instances_in_service", 1),
520
+ "MaxBatchSize": update_policy.get("max_batch_size", 1),
521
+ "PauseTime": f"PT{update_policy.get('pause_time', 300)}S"
522
+ }
508
523
  }
509
524
 
510
- # Set the merged policy
511
- cfn_asg.update_policy = existing_policy
525
+ # Use the robust CDK-documented approach
526
+ cfn_asg.add_override("UpdatePolicy", merged_policy)
512
527
 
513
528
  logger.info("Added rolling update policy to Auto Scaling Group")
514
529
 
@@ -0,0 +1 @@
1
+ __version__ = "0.18.5"
@@ -1 +0,0 @@
1
- __version__ = "0.18.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