cdk-factory 0.15.22__tar.gz → 0.15.23__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 (158) hide show
  1. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/PKG-INFO +1 -1
  2. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/pyproject.toml +1 -1
  3. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/load_balancer/load_balancer_stack.py +41 -22
  4. cdk_factory-0.15.23/src/cdk_factory/version.py +1 -0
  5. cdk_factory-0.15.22/src/cdk_factory/version.py +0 -1
  6. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/.gitignore +0 -0
  7. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/.windsurfrules +0 -0
  8. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/LICENSE +0 -0
  9. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/README.md +0 -0
  10. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/archive/README.md +0 -0
  11. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/archive/migrate_to_enhanced_ssm.py +0 -0
  12. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/examples/json-imports/README.md +0 -0
  13. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/examples/separate-api-gateway/README.md +0 -0
  14. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/examples/separate-api-gateway/api-gateway-stack.json +0 -0
  15. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/examples/separate-api-gateway/config.json +0 -0
  16. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/examples/separate-api-gateway/lambda-stack.json +0 -0
  17. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/mypy.ini +0 -0
  18. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/publish_to_pypi.py +0 -0
  19. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/publish_to_pypi.sh +0 -0
  20. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/pysetup.py +0 -0
  21. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/pysetup.sh +0 -0
  22. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/requirements.dev.txt +0 -0
  23. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/requirements.tests.txt +0 -0
  24. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/requirements.txt +0 -0
  25. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/run-checks.sh +0 -0
  26. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/run-tests-clean-venv.sh +0 -0
  27. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/run-tests.sh +0 -0
  28. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/scripts/cloudfront-cleanup.sh +0 -0
  29. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/__init__.py +0 -0
  30. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/app.py +0 -0
  31. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/builds/README.md +0 -0
  32. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/cdk.json +0 -0
  33. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/cli.py +0 -0
  34. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/commands/command_loader.py +0 -0
  35. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/base_config.py +0 -0
  36. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/cdk_config.py +0 -0
  37. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/deployment.py +0 -0
  38. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/deployment_wave.py +0 -0
  39. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/devops.py +0 -0
  40. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/enhanced_base_config.py +0 -0
  41. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/enhanced_ssm_config.py +0 -0
  42. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/management.py +0 -0
  43. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/pipeline.py +0 -0
  44. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/pipeline_stage.py +0 -0
  45. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/_resources.py +0 -0
  46. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/api_gateway.py +0 -0
  47. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/apigateway_route_config.py +0 -0
  48. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/auto_scaling.py +0 -0
  49. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/cloudfront.py +0 -0
  50. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/cloudwatch_widget.py +0 -0
  51. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/code_artifact.py +0 -0
  52. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/code_artifact_login.py +0 -0
  53. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/code_repository.py +0 -0
  54. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/cognito.py +0 -0
  55. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/docker.py +0 -0
  56. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/dynamodb.py +0 -0
  57. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/ecr.py +0 -0
  58. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/ecs_service.py +0 -0
  59. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/exisiting.py +0 -0
  60. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/lambda_edge.py +0 -0
  61. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/lambda_function.py +0 -0
  62. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/lambda_layers.py +0 -0
  63. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/lambda_triggers.py +0 -0
  64. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/load_balancer.py +0 -0
  65. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/monitoring.py +0 -0
  66. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/rds.py +0 -0
  67. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/resource_mapping.py +0 -0
  68. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/resource_naming.py +0 -0
  69. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/resource_types.py +0 -0
  70. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/route53.py +0 -0
  71. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/route53_hosted_zone.py +0 -0
  72. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/rum.py +0 -0
  73. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/s3.py +0 -0
  74. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/security_group.py +0 -0
  75. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/security_group_full_stack.py +0 -0
  76. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/sqs.py +0 -0
  77. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/resources/vpc.py +0 -0
  78. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/stack.py +0 -0
  79. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/configurations/workload.py +0 -0
  80. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py +0 -0
  81. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/constructs/ecr/ecr_construct.py +0 -0
  82. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/constructs/lambdas/lambda_function_construct.py +0 -0
  83. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/constructs/lambdas/lambda_function_docker_construct.py +0 -0
  84. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/constructs/lambdas/lambda_function_role_construct.py +0 -0
  85. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py +0 -0
  86. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/constructs/lambdas/policies/policy_statements.py +0 -0
  87. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/constructs/s3_buckets/s3_bucket_construct.py +0 -0
  88. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py +0 -0
  89. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py +0 -0
  90. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py +0 -0
  91. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/interfaces/enhanced_ssm_parameter_mixin.py +0 -0
  92. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/interfaces/istack.py +0 -0
  93. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/interfaces/live_ssm_resolver.py +0 -0
  94. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/interfaces/ssm_parameter_mixin.py +0 -0
  95. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/lambdas/edge/ip_gate/handler.py +0 -0
  96. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/lambdas/health_handler.py +0 -0
  97. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/pipeline/path_utils.py +0 -0
  98. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/pipeline/pipeline_factory.py +0 -0
  99. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/pipeline/security/policies.py +0 -0
  100. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/pipeline/security/roles.py +0 -0
  101. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/pipeline/stage.py +0 -0
  102. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack/istack.py +0 -0
  103. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack/stack_factory.py +0 -0
  104. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack/stack_module_loader.py +0 -0
  105. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack/stack_module_registry.py +0 -0
  106. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack/stack_modules.py +0 -0
  107. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/__init__.py +0 -0
  108. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py +0 -0
  109. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/auto_scaling/__init__.py +0 -0
  110. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py +0 -0
  111. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py +0 -0
  112. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/buckets/README.md +0 -0
  113. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/buckets/bucket_stack.py +0 -0
  114. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/cloudfront/__init__.py +0 -0
  115. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/cloudfront/cloudfront_stack.py +0 -0
  116. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/code_artifact/code_artifact_stack.py +0 -0
  117. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/cognito/cognito_stack.py +0 -0
  118. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py +0 -0
  119. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/ecr/README.md +0 -0
  120. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/ecr/ecr_stack.py +0 -0
  121. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/ecs/__init__.py +0 -0
  122. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py +0 -0
  123. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/lambda_edge/__init__.py +0 -0
  124. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +0 -0
  125. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/load_balancer/__init__.py +0 -0
  126. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/monitoring/__init__.py +0 -0
  127. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/monitoring/monitoring_stack.py +0 -0
  128. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/rds/__init__.py +0 -0
  129. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/rds/rds_stack.py +0 -0
  130. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/route53/__init__.py +0 -0
  131. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/route53/route53_stack.py +0 -0
  132. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/rum/__init__.py +0 -0
  133. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/rum/rum_stack.py +0 -0
  134. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/security_group/__init__.py +0 -0
  135. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/security_group/security_group_full_stack.py +0 -0
  136. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/security_group/security_group_stack.py +0 -0
  137. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/simple_queue_service/sqs_stack.py +0 -0
  138. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/stack_base.py +0 -0
  139. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/vpc/__init__.py +0 -0
  140. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/vpc/vpc_stack.py +0 -0
  141. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stack_library/websites/static_website_stack.py +0 -0
  142. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/stages/websites/static_website_stage.py +0 -0
  143. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/templates/README.md +0 -0
  144. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/templates/app.py.template +0 -0
  145. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/templates/cdk.json.template +0 -0
  146. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/utilities/api_gateway_integration_utility.py +0 -0
  147. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/utilities/commandline_args.py +0 -0
  148. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/utilities/configuration_loader.py +0 -0
  149. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/utilities/docker_utilities.py +0 -0
  150. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/utilities/environment_services.py +0 -0
  151. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/utilities/file_operations.py +0 -0
  152. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/utilities/git_utilities.py +0 -0
  153. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/utilities/json_loading_utility.py +0 -0
  154. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/utilities/lambda_function_utilities.py +0 -0
  155. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/utilities/os_execute.py +0 -0
  156. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/utils/api_gateway_utilities.py +0 -0
  157. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/src/cdk_factory/workload/workload_factory.py +0 -0
  158. {cdk_factory-0.15.22 → cdk_factory-0.15.23}/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.15.22
3
+ Version: 0.15.23
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.15.22"
36
+ version = "0.15.23"
37
37
  authors = [
38
38
  { name="Eric Wilson", email="eric.wilson@geekcafe.com" }
39
39
  ]
@@ -112,34 +112,46 @@ class LoadBalancerStack(IStack, EnhancedSsmParameterMixin):
112
112
  # Get subnets
113
113
  subnets = self._get_subnets()
114
114
 
115
+ # Prepare vpc_subnets parameter
116
+ # If subnets is None, we'll handle it via escape hatch after creation
117
+ vpc_subnets_param = ec2.SubnetSelection(subnets=subnets) if subnets else None
118
+
115
119
  # Create the Load Balancer based on type
116
120
  if self.lb_config.type == "APPLICATION":
117
- load_balancer = elbv2.ApplicationLoadBalancer(
118
- self,
119
- lb_name,
120
- load_balancer_name=lb_name,
121
- vpc=self.vpc,
122
- internet_facing=self.lb_config.internet_facing,
123
- security_group=(
121
+ # When vpc_subnets is None and we have token-based subnet_ids,
122
+ # we need to create the ALB without vpc_subnets to avoid VPC subnet lookup errors
123
+ alb_props = {
124
+ "load_balancer_name": lb_name,
125
+ "vpc": self.vpc,
126
+ "internet_facing": self.lb_config.internet_facing,
127
+ "security_group": (
124
128
  security_groups[0]
125
129
  if security_groups and len(security_groups) > 0
126
130
  else None
127
131
  ),
128
- deletion_protection=self.lb_config.deletion_protection,
129
- idle_timeout=cdk.Duration.seconds(self.lb_config.idle_timeout),
130
- http2_enabled=self.lb_config.http2_enabled,
131
- vpc_subnets=ec2.SubnetSelection(subnets=subnets) if subnets else None,
132
- )
132
+ "deletion_protection": self.lb_config.deletion_protection,
133
+ "idle_timeout": cdk.Duration.seconds(self.lb_config.idle_timeout),
134
+ "http2_enabled": self.lb_config.http2_enabled,
135
+ }
136
+
137
+ # Only add vpc_subnets if we have concrete subnet objects
138
+ if vpc_subnets_param:
139
+ alb_props["vpc_subnets"] = vpc_subnets_param
140
+
141
+ load_balancer = elbv2.ApplicationLoadBalancer(self, lb_name, **alb_props)
133
142
  else: # NETWORK
134
- load_balancer = elbv2.NetworkLoadBalancer(
135
- self,
136
- lb_name,
137
- load_balancer_name=lb_name,
138
- vpc=self.vpc,
139
- internet_facing=self.lb_config.internet_facing,
140
- deletion_protection=self.lb_config.deletion_protection,
141
- vpc_subnets=ec2.SubnetSelection(subnets=subnets) if subnets else None,
142
- )
143
+ nlb_props = {
144
+ "load_balancer_name": lb_name,
145
+ "vpc": self.vpc,
146
+ "internet_facing": self.lb_config.internet_facing,
147
+ "deletion_protection": self.lb_config.deletion_protection,
148
+ }
149
+
150
+ # Only add vpc_subnets if we have concrete subnet objects
151
+ if vpc_subnets_param:
152
+ nlb_props["vpc_subnets"] = vpc_subnets_param
153
+
154
+ load_balancer = elbv2.NetworkLoadBalancer(self, lb_name, **nlb_props)
143
155
 
144
156
  # If subnets is None, check if we have SSM-imported subnet_ids as a token
145
157
  # We need to use Fn.Split to convert the comma-separated string to an array
@@ -173,9 +185,16 @@ class LoadBalancerStack(IStack, EnhancedSsmParameterMixin):
173
185
  # Build VPC attributes
174
186
  vpc_attrs = {
175
187
  "vpc_id": vpc_id,
176
- "availability_zones": ["us-east-1a", "us-east-1b"]
188
+ "availability_zones": ["us-east-1a", "us-east-1b"],
177
189
  }
178
190
 
191
+ # If we have subnet_ids from SSM, provide dummy public subnets
192
+ # The actual subnets will be set via CloudFormation escape hatch
193
+ if "subnet_ids" in self.ssm_imported_values:
194
+ # Provide dummy subnet IDs - these will be overridden by the escape hatch
195
+ # We need at least one dummy subnet per AZ to satisfy CDK's validation
196
+ vpc_attrs["public_subnet_ids"] = ["subnet-dummy1", "subnet-dummy2"]
197
+
179
198
  # Use from_vpc_attributes() instead of from_lookup() because SSM imports return tokens
180
199
  self._vpc = ec2.Vpc.from_vpc_attributes(self, "VPC", **vpc_attrs)
181
200
  elif self.lb_config.vpc_id:
@@ -0,0 +1 @@
1
+ __version__ = "0.15.23"
@@ -1 +0,0 @@
1
- __version__ = "0.15.22"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes