cdk-factory 0.16.15__py3-none-any.whl → 0.17.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 (57) hide show
  1. cdk_factory/configurations/base_config.py +23 -24
  2. cdk_factory/configurations/cdk_config.py +1 -1
  3. cdk_factory/configurations/devops.py +1 -1
  4. cdk_factory/configurations/resources/cloudfront.py +7 -2
  5. cdk_factory/configurations/resources/ecr.py +1 -1
  6. cdk_factory/configurations/resources/ecs_cluster.py +7 -5
  7. cdk_factory/configurations/resources/ecs_service.py +7 -2
  8. cdk_factory/configurations/resources/load_balancer.py +8 -9
  9. cdk_factory/configurations/resources/monitoring.py +8 -3
  10. cdk_factory/configurations/resources/rds.py +7 -8
  11. cdk_factory/configurations/resources/rum.py +7 -2
  12. cdk_factory/configurations/resources/s3.py +1 -1
  13. cdk_factory/configurations/resources/security_group_full_stack.py +7 -8
  14. cdk_factory/configurations/resources/vpc.py +19 -0
  15. cdk_factory/configurations/workload.py +32 -2
  16. cdk_factory/constructs/ecr/ecr_construct.py +9 -2
  17. cdk_factory/constructs/lambdas/policies/policy_docs.py +4 -4
  18. cdk_factory/interfaces/istack.py +4 -4
  19. cdk_factory/interfaces/networked_stack_mixin.py +6 -6
  20. cdk_factory/interfaces/standardized_ssm_mixin.py +612 -0
  21. cdk_factory/interfaces/vpc_provider_mixin.py +53 -29
  22. cdk_factory/lambdas/edge/ip_gate/handler.py +42 -40
  23. cdk_factory/pipeline/pipeline_factory.py +3 -3
  24. cdk_factory/stack_library/__init__.py +3 -2
  25. cdk_factory/stack_library/acm/acm_stack.py +2 -2
  26. cdk_factory/stack_library/api_gateway/api_gateway_stack.py +84 -59
  27. cdk_factory/stack_library/auto_scaling/auto_scaling_stack_standardized.py +530 -0
  28. cdk_factory/stack_library/code_artifact/code_artifact_stack.py +2 -2
  29. cdk_factory/stack_library/cognito/cognito_stack.py +152 -92
  30. cdk_factory/stack_library/dynamodb/dynamodb_stack.py +19 -15
  31. cdk_factory/stack_library/ecr/ecr_stack.py +2 -2
  32. cdk_factory/stack_library/ecs/__init__.py +1 -1
  33. cdk_factory/stack_library/ecs/ecs_cluster_stack_standardized.py +305 -0
  34. cdk_factory/stack_library/ecs/ecs_service_stack.py +10 -26
  35. cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +2 -2
  36. cdk_factory/stack_library/load_balancer/load_balancer_stack.py +11 -35
  37. cdk_factory/stack_library/rds/rds_stack.py +10 -27
  38. cdk_factory/stack_library/route53/route53_stack.py +2 -2
  39. cdk_factory/stack_library/rum/rum_stack.py +102 -91
  40. cdk_factory/stack_library/security_group/security_group_full_stack.py +9 -22
  41. cdk_factory/stack_library/security_group/security_group_stack.py +11 -11
  42. cdk_factory/stack_library/vpc/vpc_stack_standardized.py +411 -0
  43. cdk_factory/utilities/api_gateway_integration_utility.py +24 -16
  44. cdk_factory/utilities/environment_services.py +3 -3
  45. cdk_factory/utilities/json_loading_utility.py +1 -1
  46. cdk_factory/validation/config_validator.py +483 -0
  47. cdk_factory/version.py +1 -1
  48. {cdk_factory-0.16.15.dist-info → cdk_factory-0.17.0.dist-info}/METADATA +1 -1
  49. {cdk_factory-0.16.15.dist-info → cdk_factory-0.17.0.dist-info}/RECORD +52 -52
  50. cdk_factory/interfaces/enhanced_ssm_parameter_mixin.py +0 -321
  51. cdk_factory/interfaces/ssm_parameter_mixin.py +0 -454
  52. cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py +0 -721
  53. cdk_factory/stack_library/ecs/ecs_cluster_stack.py +0 -232
  54. cdk_factory/stack_library/vpc/vpc_stack.py +0 -298
  55. {cdk_factory-0.16.15.dist-info → cdk_factory-0.17.0.dist-info}/WHEEL +0 -0
  56. {cdk_factory-0.16.15.dist-info → cdk_factory-0.17.0.dist-info}/entry_points.txt +0 -0
  57. {cdk_factory-0.16.15.dist-info → cdk_factory-0.17.0.dist-info}/licenses/LICENSE +0 -0
@@ -2,27 +2,27 @@ cdk_factory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  cdk_factory/app.py,sha256=RnX0-pwdTAPAdKJK_j13Zl8anf9zYKBwboR0KA8K8xM,10346
3
3
  cdk_factory/cdk.json,sha256=SKZKhJ2PBpFH78j-F8S3VDYW-lf76--Q2I3ON-ZIQfw,3106
4
4
  cdk_factory/cli.py,sha256=FGbCTS5dYCNsfp-etshzvFlGDCjC28r6rtzYbe7KoHI,6407
5
- cdk_factory/version.py,sha256=Azoo055kJozZURSVgiLattbf2Jz2HF7CxKYQAdjTAfw,24
5
+ cdk_factory/version.py,sha256=XpM3lncCzPBIwMSvDN7i10pke_c6KdJtVLZYbCiaTRw,23
6
6
  cdk_factory/builds/README.md,sha256=9BBWd7bXpyKdMU_g2UljhQwrC9i5O_Tvkb6oPvndoZk,90
7
7
  cdk_factory/commands/command_loader.py,sha256=QbLquuP_AdxtlxlDy-2IWCQ6D-7qa58aphnDPtp_uTs,3744
8
- cdk_factory/configurations/base_config.py,sha256=JKjhNsy0RCUZy1s8n5D_aXXI-upR9izaLtCTfKYiV9k,9624
9
- cdk_factory/configurations/cdk_config.py,sha256=I1mgDcGJgDCoS_WelJUQdUJLAZgyUA1NVF2q2UJ1hBw,8939
8
+ cdk_factory/configurations/base_config.py,sha256=eJ3Pl3GWk1jVr_bYQaaWlw4_-ZiFGaiXllI_fOOX1i0,9323
9
+ cdk_factory/configurations/cdk_config.py,sha256=-XOG2MSeMahZbUjWrARAkgU7tqbWsYcnV6a8bt063WM,8913
10
10
  cdk_factory/configurations/deployment.py,sha256=LO2gd1yv1nqlX_2MIjRXptylFybWiTKsMKZU0N58rSM,12110
11
11
  cdk_factory/configurations/deployment_wave.py,sha256=TFX7CYgr5SmLyziEb-R_OTteFWtlMHB4pT53ekV3d1Y,233
12
- cdk_factory/configurations/devops.py,sha256=PG-s2ldZmMULheWdKf2lf2LSugLoKiOKyLELTZJJxu8,2506
12
+ cdk_factory/configurations/devops.py,sha256=opeMenTgzWCNcrEyFX3SkTUvwFerLyjSd6xipvNVuog,2500
13
13
  cdk_factory/configurations/enhanced_base_config.py,sha256=LQQBn_99n41vkqvpU3NhY_baizCwPz2Di-V3iFBL6oE,6660
14
14
  cdk_factory/configurations/enhanced_ssm_config.py,sha256=J23PCinDTlji1XzsjOhIk9C8PubZc5ICpSWqPf3B0Vw,15873
15
15
  cdk_factory/configurations/management.py,sha256=TSOIyxO9hGNxbgiTsS8a3pz03ungXiNqPPtZtfOpr8M,1373
16
16
  cdk_factory/configurations/pipeline.py,sha256=3RmRP1GIk42rjYZ-A9H3357RcO13IA47N-2IQcBkySQ,4939
17
17
  cdk_factory/configurations/pipeline_stage.py,sha256=hEjgaeaHYLRtkok5yBJwZg5zmPMPUHIRiUd0kzxWoRU,4453
18
18
  cdk_factory/configurations/stack.py,sha256=7whhC48dUYw7BBFV49zM1Q3AghTNkaiDfy4kKYDm_RQ,2217
19
- cdk_factory/configurations/workload.py,sha256=sM-B6UKOdOn5_H-eWmW03J9oa8YZZmO0bvQ69wbCM0Q,7756
19
+ cdk_factory/configurations/workload.py,sha256=ht9sgnCn6b-u8eme5bEovwSuy1VMd4uqTZNJzX3v9Zo,9247
20
20
  cdk_factory/configurations/resources/_resources.py,sha256=tnXGn4kEC0JPQaTWB3QpAZG-2hIGBtugHTzuKn1OTvE,2548
21
21
  cdk_factory/configurations/resources/acm.py,sha256=2TY8VfoVxnDGVdqpd8v8TvQebLYBZ7J9HfaAhMvpRFE,2740
22
22
  cdk_factory/configurations/resources/api_gateway.py,sha256=-k4hMGszIdQLb5DGmWBIPy49YGutp8zczafRh-Vob0I,4904
23
23
  cdk_factory/configurations/resources/apigateway_route_config.py,sha256=6ytn_nwKwlfpBtHL5sV6gxMpgAJ3p6QFGumMoW4CTHM,2351
24
24
  cdk_factory/configurations/resources/auto_scaling.py,sha256=-3CSmhWhkU9RkQb6yELoK_OES2UqLNQDxtVPFpZNCsA,6098
25
- cdk_factory/configurations/resources/cloudfront.py,sha256=oCWa9I8hbXVu114t-IO5frW6hgvPoovFgDbipDqFoGs,3848
25
+ cdk_factory/configurations/resources/cloudfront.py,sha256=YU4my1sQjLnf4DNBECS4GvPAxUG2FX_BszfO76mSbYw,3959
26
26
  cdk_factory/configurations/resources/cloudwatch_widget.py,sha256=EdEQSXUkDtoY_Mg_cJBWo1Hp84jSiK7U9tsd3k1VhKI,1271
27
27
  cdk_factory/configurations/resources/code_artifact.py,sha256=P2X2i6NEcePitEf2wkN6lFTjIbXasn0uzrlPOT0tEac,3253
28
28
  cdk_factory/configurations/resources/code_artifact_login.py,sha256=mKd8Bx0WypmSspfibwXbgubbIzW-6gGdQqIHvOnDAYQ,6066
@@ -30,49 +30,48 @@ cdk_factory/configurations/resources/code_repository.py,sha256=rAM6cbMtNR_S4TfiB
30
30
  cdk_factory/configurations/resources/cognito.py,sha256=udX2AJ1ITLhy4f1XiJQwrva6F4i9NdbSm0zTg5PGku8,10649
31
31
  cdk_factory/configurations/resources/docker.py,sha256=hUbuxkuhcQu9LnLX7I8_57eTmHefEAGVnOHO37MkqC4,2166
32
32
  cdk_factory/configurations/resources/dynamodb.py,sha256=HsZMOaRwfuNPwKIzokeeE3f5zAQLTB5hRb_GzYq2ibg,2903
33
- cdk_factory/configurations/resources/ecr.py,sha256=o9hHzEBVPoxUvWZGXGbRJ-98FmP6fMLY5a1-qg42jL0,8253
34
- cdk_factory/configurations/resources/ecs_cluster.py,sha256=oz8bXdW8dxYWQX0VIjvgAQA8quXJFF0NBTvtksS2vN4,3527
35
- cdk_factory/configurations/resources/ecs_service.py,sha256=dqckXUZmYaIXFxgqXCr8GxjJe8LgET1XycSXfZegkBI,5341
33
+ cdk_factory/configurations/resources/ecr.py,sha256=iJEtKqBT7vQU0LU4urIglraIR7cPZqp3HQBs_2An7kA,8303
34
+ cdk_factory/configurations/resources/ecs_cluster.py,sha256=vVbaRs9AdMlYapwGh40jYm949gpmsc_MDeuMqiOjH9g,3445
35
+ cdk_factory/configurations/resources/ecs_service.py,sha256=iwUVewUy9fQSLpkfRTNuIaWy7eQYWTHFiiD1jIYt9zU,5452
36
36
  cdk_factory/configurations/resources/exisiting.py,sha256=EVOLnkB-DGfTlmDgyQ5DD5k2zYfpFxqI3gugDR7mifI,478
37
37
  cdk_factory/configurations/resources/lambda_edge.py,sha256=MjmiwDkys4aoRvDQhH3MT6BgeShzJXNWL7761HJrLtQ,3404
38
38
  cdk_factory/configurations/resources/lambda_function.py,sha256=VENZ9-ABJ5mjcN8J8wdLH4KHDYr1kWO0iFDH0B2mJXA,14659
39
39
  cdk_factory/configurations/resources/lambda_layers.py,sha256=gVeP_-LC3Eq0lkPaG_JfFUwboM5evRPr99SfKj53m7A,633
40
40
  cdk_factory/configurations/resources/lambda_triggers.py,sha256=MD7cdMNKEulNBhtMLIFnWJuJ5R-yyIqa0LHUgbSQerA,834
41
- cdk_factory/configurations/resources/load_balancer.py,sha256=CNmE4uqOgyI0amZy2EDvDF5_Feiw5kcCmbkY1HI5u_s,5911
42
- cdk_factory/configurations/resources/monitoring.py,sha256=zsfDMa7yph33Ql8iP7lIqqLAyixh-Mesi0imtZJFdcE,2310
43
- cdk_factory/configurations/resources/rds.py,sha256=_nMPOC1Rinc-nbVJzl__3vodBQc4sCeVPY_NfjWZFoA,16217
41
+ cdk_factory/configurations/resources/load_balancer.py,sha256=P-jKemIjIWWqScmQKspmRy1m3BrwNkRtTNHDStOAJds,5617
42
+ cdk_factory/configurations/resources/monitoring.py,sha256=CPYWbUbWQzoPqDhdPiB4Vahq-pPi6BEkavkVohadSIo,2422
43
+ cdk_factory/configurations/resources/rds.py,sha256=ap2sbrcPsesfaPSluzyomGgT70_PUg9B39smVw6fvEM,15927
44
44
  cdk_factory/configurations/resources/resource_mapping.py,sha256=cwv3n63RJ6E59ErsmSTdkW4i-g8huhHtKI0ExbRhJxA,2182
45
45
  cdk_factory/configurations/resources/resource_naming.py,sha256=VE9S2cpzp11qqPL2z1sX79wXH0o1SntO2OG74nEmWC8,5508
46
46
  cdk_factory/configurations/resources/resource_types.py,sha256=1WQHyDoErb-M-tETZZzyLDtbq_jdC85-I403dM48pgE,2317
47
47
  cdk_factory/configurations/resources/route53.py,sha256=FwfAL90amoQqn7DSGcIprlfNhbJ08T80joplxLg99Ko,3453
48
48
  cdk_factory/configurations/resources/route53_hosted_zone.py,sha256=qjEYPCSxSOx5blr9EULv892ezxkCs--yrLa1ngWbyXM,880
49
- cdk_factory/configurations/resources/rum.py,sha256=5aNLhyJEl97spby2gEV59RsMIQpUto2hGh1DeSyIp_I,5149
50
- cdk_factory/configurations/resources/s3.py,sha256=LBwTOZ4tOxNbgiu1fFGHOTyF5jlzeVphc_9VAqNw8zA,6042
49
+ cdk_factory/configurations/resources/rum.py,sha256=KgC2Mxhtr5XrICVXdgOXmxYp0GKu9lBs7izfG-Re9Ck,5294
50
+ cdk_factory/configurations/resources/s3.py,sha256=kLY0XNCfErNYnOwekefFJxEJ_AKPifA-wSaaNczDp94,6036
51
51
  cdk_factory/configurations/resources/security_group.py,sha256=8kQtaaRVEn2aDm8XoC7QFh2mDOFbPbgobmssIuqU8MA,2259
52
- cdk_factory/configurations/resources/security_group_full_stack.py,sha256=OzcQF5UMqIVAtDAlGY1kf1IWxq2x_gmnwAUTIZ5ITzY,2947
52
+ cdk_factory/configurations/resources/security_group_full_stack.py,sha256=CujSl6mfPlVO0Dxso8fDjwW5VZB0vbeP9HqbcTaM8H4,2657
53
53
  cdk_factory/configurations/resources/sqs.py,sha256=fAh2dqttJ6PX46enFRULuiLEu3TEj0Vb2xntAOgUpYE,4346
54
- cdk_factory/configurations/resources/vpc.py,sha256=sNn6w76bHFwmt6N76gZZhqpsuNB9860C1SZu6tebaXY,3835
54
+ cdk_factory/configurations/resources/vpc.py,sha256=_W77du9wf8SJM64JbEAxEOQYerOm6aw4YaSsE7A_kKE,4453
55
55
  cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py,sha256=LHgjvTNghCMTpHh90VWl7AbE100Er-S9EgyEVt12J_c,25809
56
- cdk_factory/constructs/ecr/ecr_construct.py,sha256=JLz3gWrsjlM0XghvbgxuoGlF-VIo_7IYxtgX7mTkidE,10660
56
+ cdk_factory/constructs/ecr/ecr_construct.py,sha256=jEimLwLvO5ERuFEn_L2q2pyPKgkdHQ6Oi7Sy990ttSg,11002
57
57
  cdk_factory/constructs/lambdas/lambda_function_construct.py,sha256=SQ5SEXn4kezVAzXuv_A_JB3o_svyBXOMi-htvfB9HQs,4516
58
58
  cdk_factory/constructs/lambdas/lambda_function_docker_construct.py,sha256=O8aiHpNQ59eE3qEttEHVxbvp06v4byXOeYCVTAOI_Cg,9993
59
59
  cdk_factory/constructs/lambdas/lambda_function_role_construct.py,sha256=nJoxKv-4CWugX-ZkAzoG8wrfSsHqXqiMZnGRqSyS4Po,1453
60
- cdk_factory/constructs/lambdas/policies/policy_docs.py,sha256=YKXCk_tUTIGlWghLm_gLvLZFvc92AVxISyMkeWcym_o,21150
60
+ cdk_factory/constructs/lambdas/policies/policy_docs.py,sha256=yVySM3QmY8xTIvR8d1O4f8Lyd43CPLknK8R874eXlxc,21138
61
61
  cdk_factory/constructs/lambdas/policies/policy_statements.py,sha256=9DnSehsV8A_sBrSe4A--PQB6kii2HSnW4RnmhgVfon0,4164
62
62
  cdk_factory/constructs/s3_buckets/s3_bucket_construct.py,sha256=5DK5aVUAveJYBjmPby2lg55r1FQMduLMJSQ4N58rwmc,3252
63
63
  cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py,sha256=H-EJ2Q71LI5FPQ9thMkXDGRuwJdFc_2OzGIrWA98lxg,2517
64
64
  cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py,sha256=ZLKbRcMK1q73VruxCH62XbymebKt-lKV5Kul9OjkZiA,3763
65
65
  cdk_factory/constructs/sqs/policies/sqs_policies.py,sha256=4p0G8G-fqNKSr68I55fvqH-DkhIeXyGaFBKkICIJ-qM,1277
66
- cdk_factory/interfaces/enhanced_ssm_parameter_mixin.py,sha256=5-aQ4sg47LQ4AHjd0j20gxyM5U5-NOTeBsGsEUA_K3E,14374
67
- cdk_factory/interfaces/istack.py,sha256=4Bqls3Xbgwbnl9MjxsX8S2d5lMOMPdhlVu0DiAiTJ6Q,1152
66
+ cdk_factory/interfaces/istack.py,sha256=3xqGw5kNTt_KeLHdMxI7rIR0YORqcWQOqsacmDlTAv0,1167
68
67
  cdk_factory/interfaces/live_ssm_resolver.py,sha256=3FIr9a02SXqZmbFs3RT0WxczWEQR_CF7QSt7kWbDrVE,8163
69
- cdk_factory/interfaces/networked_stack_mixin.py,sha256=c_wDWPU4Y8HrTt2yGRwBJvVCfwHNy0SEeNMQjaUgcrI,2808
70
- cdk_factory/interfaces/ssm_parameter_mixin.py,sha256=Z0KUbvDfvU-Kfpjtjm33Eo0ZonHQbnMlenR8FtG-0ls,17194
71
- cdk_factory/interfaces/vpc_provider_mixin.py,sha256=HPehSjYjCncYMNkmbwfDgfF4n91iazFVMd1NsF_U4fY,6860
68
+ cdk_factory/interfaces/networked_stack_mixin.py,sha256=69pJp4IE1n_tdHh2UZQ08O6ZW-v5P4uJJ_fleNaj6Nw,2897
69
+ cdk_factory/interfaces/standardized_ssm_mixin.py,sha256=-BT-K7mro2f3taS7biAm_oaxC7z2lurUfNUpryvahXk,22680
70
+ cdk_factory/interfaces/vpc_provider_mixin.py,sha256=8ltvceRGS97fvno4JgVfcAAvry7EC_V9hVl1q1uPFXE,7837
72
71
  cdk_factory/lambdas/health_handler.py,sha256=dd40ykKMxWCFEIyp2ZdQvAGNjw_ylI9CSm1N24Hp2ME,196
73
- cdk_factory/lambdas/edge/ip_gate/handler.py,sha256=YrXO42gEhJoBTaH6jS7EWqjHe9t5Fpt4WLgY8vjtou0,10474
72
+ cdk_factory/lambdas/edge/ip_gate/handler.py,sha256=gUevgX462mqGYddtQIyJ1-Jk3oXhFmbmd46jlqjai9E,10657
74
73
  cdk_factory/pipeline/path_utils.py,sha256=fvWdrcb4onmpIu1APkHLhXg8zWfK74HcW3Ra2ynxfXM,2586
75
- cdk_factory/pipeline/pipeline_factory.py,sha256=tZTFT-sniqWZk8I2sOTV2wP3fFQGiI_0rrtCi5oGtYg,26342
74
+ cdk_factory/pipeline/pipeline_factory.py,sha256=8WXXMXZ4PiEOYAYA8oEKBe8mS--kUGpohbZMg0NhH7w,26324
76
75
  cdk_factory/pipeline/stage.py,sha256=Be7ExMB9A-linRM18IQDOzQ-cP_I2_ThRNzlT4FIrUg,437
77
76
  cdk_factory/pipeline/security/policies.py,sha256=H3-S6nipz3UtF9Pc5eJYr4-aREUTCaJWMjOUyd6Rdv4,4406
78
77
  cdk_factory/pipeline/security/roles.py,sha256=ZB_O5H_BXgotvVspS2kVad9EMcY-a_-vU7Nm1_Z5MB8,4985
@@ -81,63 +80,64 @@ cdk_factory/stack/stack_factory.py,sha256=PfFzKxfM_5JPhK33_acEvpT4gll_AFCqZP7-lP
81
80
  cdk_factory/stack/stack_module_loader.py,sha256=EA7ceb8qyktzkYgPYaixQdPJsi8FwTsMU-NrgtXwXcw,1144
82
81
  cdk_factory/stack/stack_module_registry.py,sha256=J14-A75VZESzRQa8p-Fepdap7Z8T7mradTu3sVzuBx8,378
83
82
  cdk_factory/stack/stack_modules.py,sha256=kgEK-j0smZPozVwTCfM1g1V17EyTBT0TXAQZq4vZz0o,784
84
- cdk_factory/stack_library/__init__.py,sha256=5Y9TpIe8ZK1688G60PGcuP-hM0RvYEY_3Hl2qJCJJrw,581
83
+ cdk_factory/stack_library/__init__.py,sha256=_v4kz9EYAjox6strrTK_4fb9GloJ2Kyhf63VRPivl2U,638
85
84
  cdk_factory/stack_library/stack_base.py,sha256=tTleSFmlf26DuKVF_ytftf8P7IVWb5iex8cYfYupfvQ,4940
86
85
  cdk_factory/stack_library/acm/__init__.py,sha256=4FNRLykblcKZvq_wieYwvv9N_jgrZnJ7ECH9xKh-0Ls,81
87
- cdk_factory/stack_library/acm/acm_stack.py,sha256=hflRXyOSjqGeJxBx87EV3Z3MJ5HEX2rnrjJ_E9wwhH8,5862
88
- cdk_factory/stack_library/api_gateway/api_gateway_stack.py,sha256=l6J5uurBQqbhj9JuvQitV9PiIHS5kqa-dFWifCeA3GM,39347
86
+ cdk_factory/stack_library/acm/acm_stack.py,sha256=QJ3GkT17PmWoGkfO5Um02hvrfyJ9HbiPMnclwDP7IbA,5846
87
+ cdk_factory/stack_library/api_gateway/api_gateway_stack.py,sha256=_wbPBsgh7FHq9cnL44CiuffBj3XCO5ErQx_yclxFsVY,39669
89
88
  cdk_factory/stack_library/auto_scaling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py,sha256=8Ho7QLbW0MLEmnD0ApglFgZC8Bh5ODT2jERNoAUxz3Y,30128
89
+ cdk_factory/stack_library/auto_scaling/auto_scaling_stack_standardized.py,sha256=4wE4kKgOvIISwoN23deGNgT1R3Ge2HVR6IR4wh2Z3W4,21976
91
90
  cdk_factory/stack_library/aws_lambdas/lambda_stack.py,sha256=SFbBPvvCopbyiuYtq-O5sQkFCf94Wzua6aDUXiFDSB4,26161
92
91
  cdk_factory/stack_library/buckets/README.md,sha256=XkK3UNVtRLE7NtUvbhCOBBYUYi8hlrrSaI1s3GJVrqI,78
93
92
  cdk_factory/stack_library/buckets/bucket_stack.py,sha256=SLoZqSffAqmeBBEVUQg54D_8Ad5UKdkjEAmKAVgAqQo,1778
94
93
  cdk_factory/stack_library/cloudfront/__init__.py,sha256=Zfx50q4xIJ4ZEoVIzUBDTKbRE9DKDM6iyVIFhtQXvww,153
95
94
  cdk_factory/stack_library/cloudfront/cloudfront_stack.py,sha256=kBMWxHlB48aRcFGIX71mRso0tEuEaQxcTBr3YCJOr4s,30210
96
- cdk_factory/stack_library/code_artifact/code_artifact_stack.py,sha256=vySYIjWGTdVfMcUOyJdW6gTL1maHWq9ThzfrN_rVL5A,6290
97
- cdk_factory/stack_library/cognito/cognito_stack.py,sha256=zEHkKVCIeyZywPs_GIMXCXyCux9RAKdl5kba3wy8wtQ,24608
98
- cdk_factory/stack_library/dynamodb/dynamodb_stack.py,sha256=TVyOrUhgaSuN8uymkpaQcpOaSA0lkYJ8QUMgakTCKus,6771
95
+ cdk_factory/stack_library/code_artifact/code_artifact_stack.py,sha256=k831b_fAFoXSiwj5cencnCQzUSeuKIUyVCp6Ev_TMgI,6274
96
+ cdk_factory/stack_library/cognito/cognito_stack.py,sha256=7l4fjmOwDmDWnewa1BD3gOwWcIG-dM_ajiAuv0xWMUw,25353
97
+ cdk_factory/stack_library/dynamodb/dynamodb_stack.py,sha256=3_8lQP91GnBY77-61mtnUV0GTtBMrdwNLU927KfFc90,6769
99
98
  cdk_factory/stack_library/ecr/README.md,sha256=xw2wPx9WN03Y4BBwqvbi9lAFGNyaD1FUNpqxVJX14Oo,179
100
- cdk_factory/stack_library/ecr/ecr_stack.py,sha256=1xA68sxFVyqreYjXrP_7U9I8RF9RtFeR6KeEfSWuC2U,2118
101
- cdk_factory/stack_library/ecs/__init__.py,sha256=ZZLBmuSt6z_cnFz6OkIFv_APmjqf706wWROruZGyFEI,289
102
- cdk_factory/stack_library/ecs/ecs_cluster_stack.py,sha256=epDF28JlBMgq9UlOlv1PkwhTYuX2ghqe2Af6ruyMtnE,7863
103
- cdk_factory/stack_library/ecs/ecs_service_stack.py,sha256=WYpHUFW_ruMWje-YgsSbPETG8Y4mrvj-KfIQrebuVfM,27909
99
+ cdk_factory/stack_library/ecr/ecr_stack.py,sha256=KLbd5WN5-ZiojsS5wJ4PX-tIL0cCylCSvXjO6sVrgWY,2102
100
+ cdk_factory/stack_library/ecs/__init__.py,sha256=ebM8vVboNBplK0ua6bMSpNjewcFFkdvJ5wvVYEL1ONQ,302
101
+ cdk_factory/stack_library/ecs/ecs_cluster_stack_standardized.py,sha256=1nZig37AG3ZAkWKalYnqKlSqY_8gEPDCIorruAX_6P4,11318
102
+ cdk_factory/stack_library/ecs/ecs_service_stack.py,sha256=3en447kWBOqd0d_i2C8mRRBscO2GqN9-B2l_PW7kZuM,27409
104
103
  cdk_factory/stack_library/lambda_edge/__init__.py,sha256=ByBJ_CWdc4UtTmFBZH-6pzBMNkjkdtE65AmnB0Fs6lM,156
105
- cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py,sha256=CdId_1kcZmYr1lLI9AD3-KqtE6voC3641PIloJmWiNI,16414
104
+ cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py,sha256=ft5AxHy8__F90ZYDaoJwTjACGIfrn2Sd9Zr2CdHO7GE,16398
106
105
  cdk_factory/stack_library/load_balancer/__init__.py,sha256=wZpKw2OecLJGdF5mPayCYAEhu2H3c2gJFFIxwXftGDU,52
107
- cdk_factory/stack_library/load_balancer/load_balancer_stack.py,sha256=Mw8r3919-gXYVrWhXUNxopsyeF57y1N9JfPb4TPOR4Q,31305
106
+ cdk_factory/stack_library/load_balancer/load_balancer_stack.py,sha256=OB1p5ewupyQTQEYlgJqKV1elSjqfVL6K4oqVfjADvnM,30034
108
107
  cdk_factory/stack_library/monitoring/__init__.py,sha256=k1G_KDx47Aw0UugaL99PN_TKlyLK4nkJVApCaAK7GJg,153
109
108
  cdk_factory/stack_library/monitoring/monitoring_stack.py,sha256=N_1YvEXE7fboH_S3kv_dSKZsufxMuPdFMjGzlNFpuSo,19283
110
109
  cdk_factory/stack_library/rds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
- cdk_factory/stack_library/rds/rds_stack.py,sha256=ohBNpXJKkrj1rmfFPaBuZKcYQh2j_DB_tJ2A3jm6M0s,15546
110
+ cdk_factory/stack_library/rds/rds_stack.py,sha256=YwRLvqfIEDE5uwocnr7HpmniIfEF5OXOQ-gUhN3NlTw,14652
112
111
  cdk_factory/stack_library/route53/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
- cdk_factory/stack_library/route53/route53_stack.py,sha256=hW-iKXdw862cYg4o-OL7X4CnKxzXdrzPgfQ8KdxTMnE,8403
112
+ cdk_factory/stack_library/route53/route53_stack.py,sha256=mPUJta6maUNlkXup7xKsqq7gefsRI1w_ulInE29wJs4,8387
114
113
  cdk_factory/stack_library/rum/__init__.py,sha256=gUrWQdzd4rZ2J0YzAQC8PsEGAS7QgyYjB2ZCUKWasy4,90
115
- cdk_factory/stack_library/rum/rum_stack.py,sha256=OvQ6tsjYcXS8adqU_Xh0A_VKdnPtQnij4cG67nNqSVo,13611
114
+ cdk_factory/stack_library/rum/rum_stack.py,sha256=GWmj_t5SElvSYzUm7mPcR2QQ2cxTcwFEBRUMdoxabyQ,13707
116
115
  cdk_factory/stack_library/security_group/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
- cdk_factory/stack_library/security_group/security_group_full_stack.py,sha256=je6MF6lriSaOMtIZ9hrcFagXObu5SItccpBr9Mp5TMo,14200
118
- cdk_factory/stack_library/security_group/security_group_stack.py,sha256=2zxd5ozgQ4GP0xi-Ni7SyChtEAOzC0nXeGz78DPXwPg,14445
116
+ cdk_factory/stack_library/security_group/security_group_full_stack.py,sha256=yvZ5QS9eDj_LkkwHY_Pcb37lOVPbGMfSdizZa1X6BEI,13561
117
+ cdk_factory/stack_library/security_group/security_group_stack.py,sha256=Zv9FCEHvSBT1cM9bXOtyIUFwhRHKCSTgvaqOyhGj0wg,14456
119
118
  cdk_factory/stack_library/simple_queue_service/sqs_stack.py,sha256=jJksWrvrvgZUMM01RZ317DOIxqIJbkYYSYu38w0jHpc,6039
120
119
  cdk_factory/stack_library/vpc/__init__.py,sha256=7pIqP97Gf2AJbv9Ebp1WbQGHYhgEbWJ52L1MzeXBybA,42
121
- cdk_factory/stack_library/vpc/vpc_stack.py,sha256=UZuzb5uSOi4ghuLGPvsKqc3gwe6XI89jHV4WHX8MelA,11472
120
+ cdk_factory/stack_library/vpc/vpc_stack_standardized.py,sha256=yF6tz7GdkvpLeQFGa2Gt5WP-PKjj_yr2hu7Z1TGBQfM,17562
122
121
  cdk_factory/stack_library/websites/static_website_stack.py,sha256=A292BlKDof0JnVewkK_3JiRB04rX7J9Na0a-iz3JWzw,11243
123
122
  cdk_factory/stages/websites/static_website_stage.py,sha256=X4fpKXkhb0zIbSHx3QyddBhVSLBryb1vf1Cg2fMTqog,755
124
123
  cdk_factory/templates/README.md,sha256=ATBEjG6beYvbEAdLtZ_8xnxgFD5X0cgZoI_6pToqH90,2679
125
124
  cdk_factory/templates/app.py.template,sha256=aM60x0nNV80idtCL8jm1EddY63F5tDITYOlavg-BPMU,1069
126
125
  cdk_factory/templates/cdk.json.template,sha256=SuGz4Y6kCVMDRpJrA_AJlp0kwdENiJPVngIv1xP5bwI,3526
127
- cdk_factory/utilities/api_gateway_integration_utility.py,sha256=Mpyq038ZvL8FafcOwqp2Jj0cNcD_nLfVyTBzMYaUskM,63683
126
+ cdk_factory/utilities/api_gateway_integration_utility.py,sha256=Kq4PC5fkVRFN9oSR2F2TLynzFunhhbeVDJhciJhtbPA,64236
128
127
  cdk_factory/utilities/commandline_args.py,sha256=0FiNEJFbWVN8Ct7r0VHnJEx7rhUlaRKT7R7HMNJBSTI,2216
129
128
  cdk_factory/utilities/configuration_loader.py,sha256=z0ZdGLNbTO4_yfluB9zUh_i_Poc9qj-7oRyjMRlNkN8,1522
130
129
  cdk_factory/utilities/docker_utilities.py,sha256=6ee9KEGsaRJWo6FqvdPtE3_L2Emp3Lc0vu2Ie3VoflI,8280
131
- cdk_factory/utilities/environment_services.py,sha256=cd2T0efJtFPMLa1Fm7MPL-sqUlhKXCB7_XHsR8sfymE,9696
130
+ cdk_factory/utilities/environment_services.py,sha256=Fb-RF1G8DgD5MCZ8LoFAve3QM9tEled_G6fv2JksPkc,9699
132
131
  cdk_factory/utilities/file_operations.py,sha256=fxqT0iyYZkb46lQr_XXadhFTca_1neVW0VRVkbyMmhA,9462
133
132
  cdk_factory/utilities/git_utilities.py,sha256=7Xac8PaThc7Lmk5jtDBHaJOj-fWRT017cgZmgXkVizM,3155
134
- cdk_factory/utilities/json_loading_utility.py,sha256=Ko28g-Izh7tBnRtOSqzOXyfcZvQlthFj4kOXCFVF4oc,10787
133
+ cdk_factory/utilities/json_loading_utility.py,sha256=i6C1GJ1HhbTBJRmNP8nEM6OeMZYjE9_eaVL78HHLYSE,10818
135
134
  cdk_factory/utilities/lambda_function_utilities.py,sha256=S1GvBsY_q2cyUiaud3HORJMnLhI5cRi31fbeaktY-_Q,15826
136
135
  cdk_factory/utilities/os_execute.py,sha256=5Op0LY_8Y-pUm04y1k8MTpNrmQvcLmQHPQITEP7EuSU,1019
137
136
  cdk_factory/utils/api_gateway_utilities.py,sha256=If7Xu5s_UxmuV-kL3JkXxPLBdSVUKoLtohm0IUFoiV8,4378
137
+ cdk_factory/validation/config_validator.py,sha256=Pb0TkLiPFzUplBOgMorhRCVm08vEzZhRU5xXCDTa5CA,17602
138
138
  cdk_factory/workload/workload_factory.py,sha256=yDI3cRhVI5ELNDcJPLpk9UY54Uind1xQoV3spzT4z7E,6068
139
- cdk_factory-0.16.15.dist-info/METADATA,sha256=wESUjHCbYS9Yh3uYZMcxEowPcMsTWfzAosK6FViRUyM,2452
140
- cdk_factory-0.16.15.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
141
- cdk_factory-0.16.15.dist-info/entry_points.txt,sha256=S1DPe0ORcdiwEALMN_WIo3UQrW_g4YdQCLEsc_b0Swg,53
142
- cdk_factory-0.16.15.dist-info/licenses/LICENSE,sha256=NOtdOeLwg2il_XBJdXUPFPX8JlV4dqTdDGAd2-khxT8,1066
143
- cdk_factory-0.16.15.dist-info/RECORD,,
139
+ cdk_factory-0.17.0.dist-info/METADATA,sha256=HE9QAWN7QOmq7YWwx8cTbT-8Z_nYccEZEmDkhQRUCBI,2451
140
+ cdk_factory-0.17.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
141
+ cdk_factory-0.17.0.dist-info/entry_points.txt,sha256=S1DPe0ORcdiwEALMN_WIo3UQrW_g4YdQCLEsc_b0Swg,53
142
+ cdk_factory-0.17.0.dist-info/licenses/LICENSE,sha256=NOtdOeLwg2il_XBJdXUPFPX8JlV4dqTdDGAd2-khxT8,1066
143
+ cdk_factory-0.17.0.dist-info/RECORD,,
@@ -1,321 +0,0 @@
1
- """
2
- Geek Cafe, LLC
3
- Maintainers: Eric Wilson
4
- MIT License. See Project Root for the license information.
5
- """
6
-
7
- """
8
- Enhanced SSM Parameter Mixin for CDK Factory
9
- """
10
-
11
- import os
12
- from typing import Dict, Any, Optional, List
13
- from aws_cdk import aws_ssm as ssm
14
- from constructs import Construct
15
- from aws_lambda_powertools import Logger
16
- from cdk_factory.configurations.enhanced_ssm_config import EnhancedSsmConfig, SsmParameterDefinition
17
- from cdk_factory.configurations.enhanced_base_config import EnhancedBaseConfig
18
- from cdk_factory.interfaces.live_ssm_resolver import LiveSsmResolver
19
-
20
- logger = Logger(service="EnhancedSsmParameterMixin")
21
-
22
-
23
- class EnhancedSsmParameterMixin:
24
- """
25
- Enhanced SSM parameter mixin with auto-discovery and flexible patterns.
26
-
27
- This mixin extends the original SsmParameterMixin to support:
28
- - Auto-discovery of parameters based on resource types
29
- - Flexible pattern templates with environment variable support
30
- - Backward compatibility with existing configurations
31
- - Enhanced error handling and logging
32
- """
33
-
34
- def setup_enhanced_ssm_integration(
35
- self,
36
- scope: Construct,
37
- config,
38
- resource_type: str = None,
39
- resource_name: str = None,
40
- workload_config = None,
41
- deployment_config = None # Deprecated, for backward compatibility
42
- ):
43
- """
44
- Setup enhanced SSM integration for a resource.
45
-
46
- Architecture: One workload deployment = One environment
47
- Environment should be defined at workload level.
48
-
49
- Args:
50
- scope: The CDK construct scope
51
- config: Configuration object with SSM settings
52
- resource_type: Type of resource (e.g., 'api_gateway', 'cognito', 'dynamodb')
53
- resource_name: Name of the resource instance
54
- workload_config: Workload configuration (PRIMARY - contains environment)
55
- deployment_config: Deployment configuration (DEPRECATED - for backward compatibility)
56
- """
57
- config_dict = config if isinstance(config, dict) else config.dictionary
58
- workload_dict = workload_config.dictionary if hasattr(workload_config, 'dictionary') else (workload_config or {})
59
- deployment_dict = deployment_config.dictionary if hasattr(deployment_config, 'dictionary') else (deployment_config or {})
60
-
61
- self.enhanced_ssm_config = EnhancedSsmConfig(
62
- config=config_dict,
63
- resource_type=resource_type or "unknown",
64
- resource_name=resource_name or "default",
65
- workload_config=workload_dict,
66
- deployment_config=deployment_dict # For backward compatibility
67
- )
68
- self.scope = scope
69
-
70
- # Initialize live SSM resolver if configured
71
- self.live_resolver = LiveSsmResolver(config_dict)
72
- if self.live_resolver.enabled:
73
- logger.info(f"Live SSM resolution enabled for {resource_type}/{resource_name}")
74
-
75
- def auto_export_resources(self, resource_values: Dict[str, Any], context: Dict[str, Any] = None) -> Dict[str, str]:
76
- """
77
- Automatically export resources based on enhanced configuration.
78
-
79
- Args:
80
- resource_values: Dictionary of resource values to export
81
- context: Additional context variables for template formatting
82
-
83
- Returns:
84
- Dictionary mapping attribute names to SSM parameter paths
85
- """
86
- if not hasattr(self, 'enhanced_ssm_config') or not self.enhanced_ssm_config.enabled:
87
- return {}
88
-
89
- exported_params = {}
90
- export_definitions = self.enhanced_ssm_config.get_export_definitions()
91
-
92
- logger.info(f"Auto-exporting {len(export_definitions)} parameters for {self.enhanced_ssm_config.resource_type}")
93
-
94
- for definition in export_definitions:
95
- attr = definition.attribute
96
- ssm_path = definition.path
97
-
98
- if attr in resource_values:
99
- value = resource_values[attr]
100
- if value is not None:
101
- try:
102
- param = self._create_enhanced_ssm_parameter(
103
- ssm_path,
104
- value,
105
- definition.description or f"{attr} for {self.enhanced_ssm_config.resource_name}",
106
- definition.parameter_type
107
- )
108
- exported_params[attr] = ssm_path
109
- logger.info(f"Exported {attr} -> {ssm_path}")
110
- except Exception as e:
111
- logger.error(f"Failed to export {attr} to {ssm_path}: {e}")
112
- else:
113
- logger.warning(f"Attribute {attr} not found in resource values")
114
-
115
- return exported_params
116
-
117
- def auto_import_resources(self, context: Dict[str, Any] = None) -> Dict[str, Any]:
118
- """
119
- Automatically import resources based on enhanced configuration.
120
-
121
- Args:
122
- context: Additional context variables for template formatting
123
-
124
- Returns:
125
- Dictionary of imported resource values
126
- """
127
- if not hasattr(self, 'enhanced_ssm_config') or not self.enhanced_ssm_config.enabled:
128
- logger.info("Enhanced SSM integration not enabled or configured")
129
- return {}
130
-
131
- imported_values = {}
132
- import_definitions = self.enhanced_ssm_config.get_import_definitions()
133
-
134
- logger.info(f"Auto-importing {len(import_definitions)} parameters for {self.enhanced_ssm_config.resource_type}")
135
-
136
- for definition in import_definitions:
137
- try:
138
- value = self._import_enhanced_ssm_parameter(definition.path, definition.attribute)
139
- if value:
140
- imported_values[definition.attribute] = value
141
- logger.info(f"Imported {definition.attribute} <- {definition.path}")
142
- else:
143
- logger.warning(f"No value found for {definition.attribute} at {definition.path}")
144
- except Exception as e:
145
- # Log warning but continue - allows for optional imports
146
- logger.warning(f"Could not import {definition.attribute} from {definition.path}: {e}")
147
-
148
- return imported_values
149
-
150
- def _create_enhanced_ssm_parameter(self, path: str, value: Any, description: str, param_type: str = "String") -> ssm.StringParameter:
151
- """
152
- Create an SSM parameter with enhanced handling.
153
-
154
- Args:
155
- path: SSM parameter path
156
- value: Value to store
157
- description: Parameter description
158
- param_type: Parameter type (String, StringList, SecureString)
159
-
160
- Returns:
161
- Created SSM parameter
162
- """
163
- # Generate a unique construct ID from the path
164
- construct_id = f"ssm-param-{path.replace('/', '-').replace('_', '-')}"
165
-
166
- # Handle different value types - use appropriate CDK constructs
167
- if isinstance(value, list):
168
- # For list values, use StringListParameter
169
- return ssm.StringListParameter(
170
- self.scope,
171
- construct_id,
172
- parameter_name=path,
173
- string_list_value=value,
174
- description=description
175
- )
176
- elif param_type == "SecureString":
177
- # For secure strings, use L1 CfnParameter with Type=SecureString
178
- return ssm.CfnParameter(
179
- self.scope,
180
- construct_id,
181
- name=path,
182
- value=str(value),
183
- type="SecureString",
184
- description=description
185
- )
186
- else:
187
- # For regular strings, use StringParameter (no type parameter needed in CDK v2)
188
- return ssm.StringParameter(
189
- self.scope,
190
- construct_id,
191
- parameter_name=path,
192
- string_value=str(value),
193
- description=description
194
- # Note: 'type' parameter removed - deprecated in CDK v2
195
- )
196
-
197
- def _import_enhanced_ssm_parameter(self, path: str, attribute: str) -> Optional[str]:
198
- """
199
- Import an SSM parameter value with enhanced error handling and live resolution fallback.
200
-
201
- Args:
202
- path: SSM parameter path
203
- attribute: Attribute name for logging
204
-
205
- Returns:
206
- Parameter value or None if not found
207
- """
208
- try:
209
- # Generate a unique construct ID from the path
210
- construct_id = f"imported-param-{path.replace('/', '-').replace('_', '-')}"
211
-
212
- param = ssm.StringParameter.from_string_parameter_name(
213
- self.scope,
214
- construct_id,
215
- path
216
- )
217
- cdk_token_value = param.string_value
218
-
219
- # Check if we should use live resolution for this token
220
- if hasattr(self, 'live_resolver') and self.live_resolver.should_use_live_resolution(cdk_token_value):
221
- live_value = self.live_resolver.resolve_parameter(path, fallback_value=None)
222
- if live_value:
223
- logger.info(f"Live resolved {attribute} from {path}: {live_value[:20]}...")
224
- return live_value
225
- else:
226
- logger.warning(f"Live resolution failed for {attribute} at {path}, using CDK token")
227
-
228
- return cdk_token_value
229
-
230
- except Exception as e:
231
- # Try live resolution as fallback if CDK parameter import fails
232
- if hasattr(self, 'live_resolver') and self.live_resolver.enabled:
233
- logger.info(f"CDK parameter import failed for {path}, attempting live resolution")
234
- live_value = self.live_resolver.resolve_parameter(path, fallback_value=None)
235
- if live_value:
236
- logger.info(f"Live resolved {attribute} from {path} after CDK failure")
237
- return live_value
238
-
239
- logger.debug(f"Failed to import SSM parameter {path} for {attribute}: {e}")
240
- return None
241
-
242
- # Backward compatibility methods that delegate to enhanced versions
243
- def export_resource_to_ssm(
244
- self,
245
- scope: Construct,
246
- resource_values: Dict[str, Any],
247
- config: Any,
248
- resource_name: str,
249
- resource_type: str = None,
250
- context: Dict[str, Any] = None,
251
- ) -> Dict[str, ssm.StringParameter]:
252
- """
253
- Export resource attributes to SSM Parameter Store (backward compatibility).
254
-
255
- This method provides backward compatibility while leveraging enhanced functionality
256
- when an EnhancedBaseConfig is provided.
257
- """
258
- # If we have an enhanced config, use the new auto-export functionality
259
- if isinstance(config, EnhancedBaseConfig):
260
- if not hasattr(self, 'enhanced_ssm_config'):
261
- self.setup_enhanced_ssm_integration(scope, config)
262
-
263
- exported_paths = self.auto_export_resources(resource_values, context)
264
-
265
- # Convert paths back to parameter objects for backward compatibility
266
- parameters = {}
267
- for attr, path in exported_paths.items():
268
- # Create a mock parameter object with the path
269
- parameters[f"{attr}_path"] = type('MockParam', (), {'parameter_name': path})()
270
-
271
- return parameters
272
-
273
- # Fall back to original implementation for non-enhanced configs
274
- from .ssm_parameter_mixin import SsmParameterMixin
275
- mixin = SsmParameterMixin()
276
- return mixin.export_resource_to_ssm(scope, resource_values, config, resource_name, resource_type, context)
277
-
278
- def import_resources_from_ssm(
279
- self,
280
- scope: Construct,
281
- config: Any,
282
- resource_name: str,
283
- resource_type: str = None,
284
- context: Dict[str, Any] = None,
285
- ) -> Dict[str, str]:
286
- """
287
- Import resource attributes from SSM Parameter Store (backward compatibility).
288
-
289
- This method provides backward compatibility while leveraging enhanced functionality
290
- when an EnhancedBaseConfig is provided.
291
- """
292
- # If we have an enhanced config, use the new auto-import functionality
293
- if isinstance(config, EnhancedBaseConfig):
294
- if not hasattr(self, 'enhanced_ssm_config'):
295
- self.setup_enhanced_ssm_integration(scope, config)
296
-
297
- return self.auto_import_resources(context)
298
-
299
- # Fall back to original implementation for non-enhanced configs
300
- from .ssm_parameter_mixin import SsmParameterMixin
301
- mixin = SsmParameterMixin()
302
- return mixin.import_resources_from_ssm(scope, config, resource_name, resource_type, context)
303
-
304
- # Legacy method delegation for full backward compatibility
305
- def export_ssm_parameter(self, scope: Construct, id: str, value: str, parameter_name: str, description: str = None, string_list_value: bool = False) -> ssm.StringParameter:
306
- """Export a value to SSM Parameter Store (legacy compatibility)."""
307
- from .ssm_parameter_mixin import SsmParameterMixin
308
- mixin = SsmParameterMixin()
309
- return mixin.export_ssm_parameter(scope, id, value, parameter_name, description, string_list_value)
310
-
311
- def import_ssm_parameter(self, scope: Construct, id: str, parameter_name: str, version: Optional[int] = None) -> str:
312
- """Import a value from SSM Parameter Store (legacy compatibility)."""
313
- from .ssm_parameter_mixin import SsmParameterMixin
314
- mixin = SsmParameterMixin()
315
- return mixin.import_ssm_parameter(scope, id, parameter_name, version)
316
-
317
- def export_ssm_parameters_from_config(self, scope: Construct, config_dict: Dict[str, Any], ssm_config: Dict[str, str], resource: str = "") -> Dict[str, ssm.StringParameter]:
318
- """Export multiple SSM parameters based on configuration (legacy compatibility)."""
319
- from .ssm_parameter_mixin import SsmParameterMixin
320
- mixin = SsmParameterMixin()
321
- return mixin.export_ssm_parameters_from_config(scope, config_dict, ssm_config, resource)