cdk-factory 0.7.19__py3-none-any.whl → 0.7.21__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.
Potentially problematic release.
This version of cdk-factory might be problematic. Click here for more details.
- cdk_factory/configurations/resources/apigateway_route_config.py +1 -11
- cdk_factory/stack_library/api_gateway/api_gateway_stack.py +83 -73
- cdk_factory/utilities/api_gateway_integration_utility.py +15 -7
- cdk_factory/utilities/environment_services.py +1 -1
- cdk_factory/version.py +1 -1
- {cdk_factory-0.7.19.dist-info → cdk_factory-0.7.21.dist-info}/METADATA +1 -1
- {cdk_factory-0.7.19.dist-info → cdk_factory-0.7.21.dist-info}/RECORD +9 -9
- {cdk_factory-0.7.19.dist-info → cdk_factory-0.7.21.dist-info}/WHEEL +0 -0
- {cdk_factory-0.7.19.dist-info → cdk_factory-0.7.21.dist-info}/licenses/LICENSE +0 -0
|
@@ -48,11 +48,6 @@ class ApiGatewayConfigRouteConfig:
|
|
|
48
48
|
"""Request parameters configuration"""
|
|
49
49
|
return self._config.get("request_parameters", {})
|
|
50
50
|
|
|
51
|
-
@property
|
|
52
|
-
def skip_authorizer(self) -> bool:
|
|
53
|
-
"""Whether to skip authorizer setup"""
|
|
54
|
-
return self._config.get("skip_authorizer", False)
|
|
55
|
-
|
|
56
51
|
@property
|
|
57
52
|
def routes(self) -> str:
|
|
58
53
|
"""API Gateway routes (alias for route)"""
|
|
@@ -61,12 +56,7 @@ class ApiGatewayConfigRouteConfig:
|
|
|
61
56
|
@property
|
|
62
57
|
def api_gateway_id(self) -> str:
|
|
63
58
|
"""API Gateway ID for existing gateways"""
|
|
64
|
-
return self._config.get("api_gateway_id", "")
|
|
65
|
-
|
|
66
|
-
@property
|
|
67
|
-
def authorizer_id(self) -> str:
|
|
68
|
-
"""Authorizer ID for existing authorizers"""
|
|
69
|
-
return self._config.get("authorizer_id", "") or self._config.get("authorizer_id", "")
|
|
59
|
+
return self._config.get("api_gateway_id", "")
|
|
70
60
|
|
|
71
61
|
def __get(self, key: str) -> Any:
|
|
72
62
|
"""Helper method to get config values"""
|
|
@@ -96,14 +96,14 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
96
96
|
api_gateway = self.integration_utility.create_api_gateway_with_config(
|
|
97
97
|
api_id, self.api_config, self.stack_config
|
|
98
98
|
)
|
|
99
|
-
|
|
99
|
+
|
|
100
100
|
# Setup API Gateway components in logical order
|
|
101
101
|
self._setup_api_resources_and_methods(api_gateway)
|
|
102
102
|
api_keys = self._setup_api_keys()
|
|
103
103
|
self._setup_usage_plans(api_gateway, api_keys)
|
|
104
104
|
authorizer = self._setup_cognito_authorizer(api_gateway, api_id)
|
|
105
105
|
self._setup_lambda_routes(api_gateway, api_id, routes, authorizer)
|
|
106
|
-
|
|
106
|
+
|
|
107
107
|
# Finalize deployment and stage creation
|
|
108
108
|
stage = self.__finalize_api_gateway_deployments()
|
|
109
109
|
self._store_deployment_stage_reference(api_gateway, stage)
|
|
@@ -117,7 +117,7 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
117
117
|
"""Setup API Gateway resources and methods from configuration"""
|
|
118
118
|
if not self.api_config.resources:
|
|
119
119
|
return
|
|
120
|
-
|
|
120
|
+
|
|
121
121
|
for resource_config in self.api_config.resources:
|
|
122
122
|
path = resource_config.get("path")
|
|
123
123
|
if not path:
|
|
@@ -142,10 +142,10 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
142
142
|
|
|
143
143
|
# Create the integration
|
|
144
144
|
integration = self._create_method_integration(method_config, integration_type)
|
|
145
|
-
|
|
145
|
+
|
|
146
146
|
# Create method responses
|
|
147
147
|
method_responses = self._create_method_responses(method_config)
|
|
148
|
-
|
|
148
|
+
|
|
149
149
|
# Get authorization type
|
|
150
150
|
authorization_type = self._get_authorization_type(method_config)
|
|
151
151
|
|
|
@@ -191,24 +191,18 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
191
191
|
},
|
|
192
192
|
)
|
|
193
193
|
],
|
|
194
|
-
request_templates={
|
|
195
|
-
"application/json": '{"statusCode": 200}'
|
|
196
|
-
},
|
|
194
|
+
request_templates={"application/json": '{"statusCode": 200}'},
|
|
197
195
|
)
|
|
198
196
|
|
|
199
197
|
def _create_method_responses(self, method_config):
|
|
200
198
|
"""Create method responses for a method"""
|
|
201
199
|
method_responses = []
|
|
202
|
-
for response in method_config.get(
|
|
203
|
-
"method_responses", [{"status_code": "200"}]
|
|
204
|
-
):
|
|
200
|
+
for response in method_config.get("method_responses", [{"status_code": "200"}]):
|
|
205
201
|
status_code = response.get("status_code", "200")
|
|
206
202
|
response_models = {}
|
|
207
203
|
|
|
208
204
|
# Handle response models
|
|
209
|
-
for content_type, model_name in response.get(
|
|
210
|
-
"response_models", {}
|
|
211
|
-
).items():
|
|
205
|
+
for content_type, model_name in response.get("response_models", {}).items():
|
|
212
206
|
if model_name == "Empty":
|
|
213
207
|
response_models[content_type] = apigateway.Model.EMPTY_MODEL
|
|
214
208
|
# Add more model mappings as needed
|
|
@@ -234,7 +228,7 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
234
228
|
api_keys = []
|
|
235
229
|
if not self.api_config.api_keys:
|
|
236
230
|
return api_keys
|
|
237
|
-
|
|
231
|
+
|
|
238
232
|
for key_config in self.api_config.api_keys:
|
|
239
233
|
key_name = key_config.get("name")
|
|
240
234
|
if not key_name:
|
|
@@ -254,7 +248,7 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
254
248
|
"""Create usage plans if specified in configuration"""
|
|
255
249
|
if not self.api_config.usage_plans:
|
|
256
250
|
return
|
|
257
|
-
|
|
251
|
+
|
|
258
252
|
for plan_config in self.api_config.usage_plans:
|
|
259
253
|
plan_name = plan_config.get("name")
|
|
260
254
|
if not plan_name:
|
|
@@ -270,11 +264,17 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
270
264
|
f"{plan_name}-plan",
|
|
271
265
|
name=plan_name,
|
|
272
266
|
description=plan_config.get("description"),
|
|
273
|
-
api_stages=
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
267
|
+
api_stages=(
|
|
268
|
+
[
|
|
269
|
+
apigateway.UsagePlanPerApiStage(
|
|
270
|
+
api=api_gateway,
|
|
271
|
+
stage=getattr(api_gateway, "_deployment_stage", None),
|
|
272
|
+
)
|
|
273
|
+
]
|
|
274
|
+
if hasattr(api_gateway, "_deployment_stage")
|
|
275
|
+
and api_gateway._deployment_stage
|
|
276
|
+
else []
|
|
277
|
+
),
|
|
278
278
|
throttle=throttle,
|
|
279
279
|
quota=quota,
|
|
280
280
|
)
|
|
@@ -287,7 +287,7 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
287
287
|
"""Create throttle settings for usage plan"""
|
|
288
288
|
if not plan_config.get("throttle"):
|
|
289
289
|
return None
|
|
290
|
-
|
|
290
|
+
|
|
291
291
|
return apigateway.ThrottleSettings(
|
|
292
292
|
rate_limit=plan_config["throttle"].get("rate_limit"),
|
|
293
293
|
burst_limit=plan_config["throttle"].get("burst_limit"),
|
|
@@ -297,19 +297,17 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
297
297
|
"""Create quota settings for usage plan"""
|
|
298
298
|
if not plan_config.get("quota"):
|
|
299
299
|
return None
|
|
300
|
-
|
|
300
|
+
|
|
301
301
|
return apigateway.QuotaSettings(
|
|
302
302
|
limit=plan_config["quota"].get("limit"),
|
|
303
|
-
period=apigateway.Period[
|
|
304
|
-
plan_config["quota"].get("period", "MONTH")
|
|
305
|
-
],
|
|
303
|
+
period=apigateway.Period[plan_config["quota"].get("period", "MONTH")],
|
|
306
304
|
)
|
|
307
305
|
|
|
308
306
|
def _setup_cognito_authorizer(self, api_gateway, api_id):
|
|
309
307
|
"""Setup Cognito authorizer if configured"""
|
|
310
308
|
if not self.api_config.cognito_authorizer:
|
|
311
309
|
return None
|
|
312
|
-
|
|
310
|
+
|
|
313
311
|
route_config = ApiGatewayConfigRouteConfig({})
|
|
314
312
|
return self.integration_utility.get_or_create_authorizer(
|
|
315
313
|
api_gateway, route_config, self.stack_config, api_id
|
|
@@ -325,7 +323,7 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
325
323
|
suffix = route["path"].strip("/").replace("/", "-") or "health"
|
|
326
324
|
src = route.get("src")
|
|
327
325
|
handler = route.get("handler")
|
|
328
|
-
|
|
326
|
+
|
|
329
327
|
# Create Lambda function
|
|
330
328
|
lambda_fn = self.create_lambda(
|
|
331
329
|
api_id=api_id,
|
|
@@ -340,29 +338,35 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
340
338
|
if route_path != "/"
|
|
341
339
|
else api_gateway.root
|
|
342
340
|
)
|
|
343
|
-
|
|
341
|
+
|
|
344
342
|
# Setup Lambda integration
|
|
345
|
-
self._setup_lambda_integration(
|
|
346
|
-
|
|
343
|
+
self._setup_lambda_integration(
|
|
344
|
+
api_gateway, api_id, route, lambda_fn, authorizer, suffix
|
|
345
|
+
)
|
|
346
|
+
|
|
347
347
|
# Setup CORS using centralized utility
|
|
348
348
|
self.integration_utility.setup_route_cors(resource, route_path, route)
|
|
349
349
|
|
|
350
|
-
def _setup_lambda_integration(
|
|
350
|
+
def _setup_lambda_integration(
|
|
351
|
+
self, api_gateway, api_id, route, lambda_fn, authorizer, suffix
|
|
352
|
+
):
|
|
351
353
|
"""Setup Lambda integration for a route"""
|
|
352
354
|
route_path = route["path"]
|
|
353
|
-
|
|
355
|
+
# Secure by default: require Cognito authorization unless explicitly set to NONE
|
|
356
|
+
authorization_type = route.get("authorization_type", "COGNITO")
|
|
354
357
|
|
|
358
|
+
# If explicitly set to NONE, skip authorization
|
|
359
|
+
if authorization_type == "NONE":
|
|
360
|
+
authorizer = None
|
|
361
|
+
|
|
355
362
|
if route.get("src"):
|
|
356
363
|
# Use shared utility for consistent Lambda integration behavior
|
|
357
364
|
api_route_config = ApiGatewayConfigRouteConfig(
|
|
358
365
|
{
|
|
359
366
|
"method": route["method"],
|
|
360
367
|
"route": route_path,
|
|
361
|
-
"authorization_type":
|
|
362
|
-
authorization_type if authorization_type else "NONE"
|
|
363
|
-
),
|
|
368
|
+
"authorization_type": authorization_type,
|
|
364
369
|
"api_key_required": False,
|
|
365
|
-
"skip_authorizer": not authorizer,
|
|
366
370
|
"user_pool_id": (
|
|
367
371
|
os.getenv("COGNITO_USER_POOL_ID") if authorizer else None
|
|
368
372
|
),
|
|
@@ -383,50 +387,46 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
383
387
|
api_gateway, route, lambda_fn, authorizer, api_id, suffix
|
|
384
388
|
)
|
|
385
389
|
|
|
386
|
-
def _setup_fallback_lambda_integration(
|
|
390
|
+
def _setup_fallback_lambda_integration(
|
|
391
|
+
self, api_gateway, route, lambda_fn, authorizer, api_id, suffix
|
|
392
|
+
):
|
|
387
393
|
"""Setup fallback Lambda integration for routes without src"""
|
|
388
394
|
route_path = route["path"]
|
|
389
|
-
|
|
390
|
-
|
|
395
|
+
# Secure by default: require Cognito authorization unless explicitly set to NONE
|
|
396
|
+
authorization_type = route.get("authorization_type", "COGNITO")
|
|
397
|
+
|
|
391
398
|
resource = (
|
|
392
399
|
api_gateway.root.resource_for_path(route_path)
|
|
393
400
|
if route_path != "/"
|
|
394
401
|
else api_gateway.root
|
|
395
402
|
)
|
|
396
|
-
|
|
403
|
+
|
|
397
404
|
integration = apigateway.LambdaIntegration(lambda_fn)
|
|
398
405
|
method_options = {}
|
|
399
406
|
|
|
400
407
|
# Handle authorization type
|
|
401
|
-
if (
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
):
|
|
406
|
-
method_options["authorization_type"] = (
|
|
407
|
-
apigateway.AuthorizationType.COGNITO
|
|
408
|
-
)
|
|
408
|
+
if authorization_type.upper() == "NONE":
|
|
409
|
+
method_options["authorization_type"] = apigateway.AuthorizationType.NONE
|
|
410
|
+
elif authorizer:
|
|
411
|
+
method_options["authorization_type"] = apigateway.AuthorizationType.COGNITO
|
|
409
412
|
method_options["authorizer"] = authorizer
|
|
410
413
|
else:
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
)
|
|
414
|
+
# Default to COGNITO but no authorizer available
|
|
415
|
+
method_options["authorization_type"] = apigateway.AuthorizationType.COGNITO
|
|
414
416
|
|
|
415
417
|
# Add the method with proper options
|
|
416
418
|
try:
|
|
417
|
-
resource.add_method(
|
|
418
|
-
|
|
419
|
-
)
|
|
420
|
-
|
|
419
|
+
resource.add_method(route["method"].upper(), integration, **method_options)
|
|
420
|
+
|
|
421
421
|
# Store integration info for deployment finalization
|
|
422
422
|
integration_info = {
|
|
423
423
|
"api_gateway": api_gateway,
|
|
424
424
|
"function_name": f"{api_id}-lambda-{suffix}",
|
|
425
425
|
"route_path": route_path,
|
|
426
|
-
"method": route["method"].upper()
|
|
426
|
+
"method": route["method"].upper(),
|
|
427
427
|
}
|
|
428
428
|
self.api_gateway_integrations.append(integration_info)
|
|
429
|
-
|
|
429
|
+
|
|
430
430
|
except Exception as e:
|
|
431
431
|
error_msg = f"Failed to create method {route['method'].upper()} on {route_path}: {str(e)}"
|
|
432
432
|
print(error_msg)
|
|
@@ -440,7 +440,7 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
440
440
|
try:
|
|
441
441
|
# This is a bit of a hack, but we need to set the deployment stage
|
|
442
442
|
# so that api_gateway.url works properly
|
|
443
|
-
object.__setattr__(api_gateway,
|
|
443
|
+
object.__setattr__(api_gateway, "_deployment_stage_internal", stage)
|
|
444
444
|
except:
|
|
445
445
|
pass
|
|
446
446
|
|
|
@@ -450,23 +450,33 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
450
450
|
This ensures that all routes are included in the deployed stage.
|
|
451
451
|
Returns the created stage for the first API Gateway.
|
|
452
452
|
"""
|
|
453
|
-
if
|
|
454
|
-
|
|
453
|
+
if (
|
|
454
|
+
not hasattr(self, "api_gateway_integrations")
|
|
455
|
+
or not self.api_gateway_integrations
|
|
456
|
+
):
|
|
457
|
+
logger.info(
|
|
458
|
+
"No API Gateway integrations found, skipping deployment finalization"
|
|
459
|
+
)
|
|
455
460
|
return None
|
|
456
461
|
|
|
457
462
|
# Use consolidated utility to group integrations
|
|
458
|
-
from cdk_factory.utilities.api_gateway_integration_utility import
|
|
463
|
+
from cdk_factory.utilities.api_gateway_integration_utility import (
|
|
464
|
+
ApiGatewayIntegrationUtility,
|
|
465
|
+
)
|
|
466
|
+
|
|
459
467
|
utility = ApiGatewayIntegrationUtility(self)
|
|
460
|
-
api_gateways = utility.group_integrations_by_api_gateway(
|
|
468
|
+
api_gateways = utility.group_integrations_by_api_gateway(
|
|
469
|
+
self.api_gateway_integrations
|
|
470
|
+
)
|
|
461
471
|
|
|
462
472
|
created_stage = None
|
|
463
|
-
|
|
473
|
+
|
|
464
474
|
# Create deployments and stages using consolidated utility
|
|
465
475
|
for api_key, api_info in api_gateways.items():
|
|
466
|
-
api_gateway = api_info[
|
|
467
|
-
integrations = api_info[
|
|
468
|
-
counter = api_info[
|
|
469
|
-
|
|
476
|
+
api_gateway = api_info["api_gateway"]
|
|
477
|
+
integrations = api_info["integrations"]
|
|
478
|
+
counter = api_info["counter"]
|
|
479
|
+
|
|
470
480
|
# Use consolidated deployment and stage creation
|
|
471
481
|
stage = utility.finalize_api_gateway_deployment(
|
|
472
482
|
api_gateway=api_gateway,
|
|
@@ -474,13 +484,13 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
474
484
|
stack_config=self.stack_config,
|
|
475
485
|
api_config=self.api_config,
|
|
476
486
|
construct_scope=self,
|
|
477
|
-
counter=counter
|
|
487
|
+
counter=counter,
|
|
478
488
|
)
|
|
479
|
-
|
|
489
|
+
|
|
480
490
|
# Store the first created stage to return
|
|
481
491
|
if created_stage is None:
|
|
482
492
|
created_stage = stage
|
|
483
|
-
|
|
493
|
+
|
|
484
494
|
return created_stage
|
|
485
495
|
|
|
486
496
|
def _export_ssm_parameters(self, api_gateway, authorizer=None):
|
|
@@ -502,7 +512,7 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
502
512
|
"api_arn": api_gateway.arn_for_execute_api(),
|
|
503
513
|
"root_resource_id": api_gateway.rest_api_root_resource_id,
|
|
504
514
|
}
|
|
505
|
-
|
|
515
|
+
|
|
506
516
|
# Add URL by constructing it manually since we have a custom deployment pattern
|
|
507
517
|
try:
|
|
508
518
|
# Construct the API URL manually using the API ID and region
|
|
@@ -711,7 +721,7 @@ class ApiGatewayStack(IStack, EnhancedSsmParameterMixin):
|
|
|
711
721
|
"ApiBasePathMapping",
|
|
712
722
|
domain_name=api_gateway_domain_resource,
|
|
713
723
|
rest_api=api,
|
|
714
|
-
stage=getattr(api,
|
|
724
|
+
stage=getattr(api, "_deployment_stage", None) or api.deployment_stage,
|
|
715
725
|
base_path="", # Root path
|
|
716
726
|
)
|
|
717
727
|
|
|
@@ -54,9 +54,8 @@ class ApiGatewayIntegrationUtility:
|
|
|
54
54
|
if not api_config:
|
|
55
55
|
raise ValueError("API Gateway config is missing in Lambda function config")
|
|
56
56
|
|
|
57
|
-
# Get or create authorizer if needed
|
|
58
|
-
|
|
59
|
-
if not api_config.skip_authorizer and not self.authorizer:
|
|
57
|
+
# Get or create authorizer if needed (only for COGNITO_USER_POOLS authorization)
|
|
58
|
+
if api_config.authorization_type != "NONE" and not self.authorizer:
|
|
60
59
|
self.authorizer = self.get_or_create_authorizer(
|
|
61
60
|
api_gateway, api_config, stack_config
|
|
62
61
|
)
|
|
@@ -78,17 +77,26 @@ class ApiGatewayIntegrationUtility:
|
|
|
78
77
|
)
|
|
79
78
|
else:
|
|
80
79
|
# Use L2 constructs for new authorizers
|
|
81
|
-
# Determine authorization type based on
|
|
82
|
-
if
|
|
80
|
+
# Determine authorization type and authorizer based on authorization_type
|
|
81
|
+
if api_config.authorization_type == "NONE":
|
|
82
|
+
# Public access - no authorization required
|
|
83
|
+
auth_type = apigateway.AuthorizationType.NONE
|
|
84
|
+
authorizer_to_use = None
|
|
85
|
+
elif self.authorizer:
|
|
86
|
+
# Cognito authorization with existing authorizer
|
|
83
87
|
auth_type = apigateway.AuthorizationType.COGNITO
|
|
88
|
+
authorizer_to_use = self.authorizer
|
|
84
89
|
else:
|
|
90
|
+
# Use configured authorization type
|
|
85
91
|
auth_type = apigateway.AuthorizationType[api_config.authorization_type]
|
|
92
|
+
authorizer_to_use = None
|
|
93
|
+
|
|
86
94
|
method = None
|
|
87
95
|
try:
|
|
88
96
|
method = resource.add_method(
|
|
89
97
|
api_config.method.upper(),
|
|
90
98
|
integration,
|
|
91
|
-
authorizer=
|
|
99
|
+
authorizer=authorizer_to_use,
|
|
92
100
|
api_key_required=api_config.api_key_required,
|
|
93
101
|
request_parameters=api_config.request_parameters,
|
|
94
102
|
authorization_type=auth_type,
|
|
@@ -971,7 +979,7 @@ class ApiGatewayIntegrationUtility:
|
|
|
971
979
|
http_method=http_method,
|
|
972
980
|
resource_id=resource.resource_id,
|
|
973
981
|
rest_api_id=api_gateway.rest_api_id,
|
|
974
|
-
authorization_type="
|
|
982
|
+
authorization_type="COGNITO",
|
|
975
983
|
authorizer_id=self._get_existing_authorizer_id_with_ssm_fallback(
|
|
976
984
|
api_config, stack_config
|
|
977
985
|
),
|
cdk_factory/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.7.
|
|
1
|
+
__version__ = "0.7.21"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
cdk_factory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
cdk_factory/app.py,sha256=xv863N7O6HPKznB68_t7O4la9JacrkG87t9TjoDUk7s,2827
|
|
3
3
|
cdk_factory/cdk.json,sha256=SKZKhJ2PBpFH78j-F8S3VDYW-lf76--Q2I3ON-ZIQfw,3106
|
|
4
|
-
cdk_factory/version.py,sha256
|
|
4
|
+
cdk_factory/version.py,sha256=dsLz3w-bEQrCd7hoih-4i3AFeJ0J6O2MZqka_Yl9j0A,23
|
|
5
5
|
cdk_factory/builds/README.md,sha256=9BBWd7bXpyKdMU_g2UljhQwrC9i5O_Tvkb6oPvndoZk,90
|
|
6
6
|
cdk_factory/commands/command_loader.py,sha256=QbLquuP_AdxtlxlDy-2IWCQ6D-7qa58aphnDPtp_uTs,3744
|
|
7
7
|
cdk_factory/configurations/base_config.py,sha256=JKjhNsy0RCUZy1s8n5D_aXXI-upR9izaLtCTfKYiV9k,9624
|
|
@@ -18,7 +18,7 @@ cdk_factory/configurations/stack.py,sha256=7whhC48dUYw7BBFV49zM1Q3AghTNkaiDfy4kK
|
|
|
18
18
|
cdk_factory/configurations/workload.py,sha256=sM-B6UKOdOn5_H-eWmW03J9oa8YZZmO0bvQ69wbCM0Q,7756
|
|
19
19
|
cdk_factory/configurations/resources/_resources.py,sha256=tnXGn4kEC0JPQaTWB3QpAZG-2hIGBtugHTzuKn1OTvE,2548
|
|
20
20
|
cdk_factory/configurations/resources/api_gateway.py,sha256=-k4hMGszIdQLb5DGmWBIPy49YGutp8zczafRh-Vob0I,4904
|
|
21
|
-
cdk_factory/configurations/resources/apigateway_route_config.py,sha256=
|
|
21
|
+
cdk_factory/configurations/resources/apigateway_route_config.py,sha256=R7ZUz8aZ37HdzL5aSqLB624KsQ7-kp713NGuBnU0x_4,1982
|
|
22
22
|
cdk_factory/configurations/resources/auto_scaling.py,sha256=OAVl8iUdHiOYVzme1qNDwA3w2raxDNUo_W2_Vebqtx8,5005
|
|
23
23
|
cdk_factory/configurations/resources/cloudfront.py,sha256=xwDIrYQDqQMgekXSJ5vrgNXIUCfY6O8aiybE5ewwijw,1055
|
|
24
24
|
cdk_factory/configurations/resources/cloudwatch_widget.py,sha256=EdEQSXUkDtoY_Mg_cJBWo1Hp84jSiK7U9tsd3k1VhKI,1271
|
|
@@ -72,7 +72,7 @@ cdk_factory/stack/stack_module_registry.py,sha256=J14-A75VZESzRQa8p-Fepdap7Z8T7m
|
|
|
72
72
|
cdk_factory/stack/stack_modules.py,sha256=kgEK-j0smZPozVwTCfM1g1V17EyTBT0TXAQZq4vZz0o,784
|
|
73
73
|
cdk_factory/stack_library/__init__.py,sha256=5Y9TpIe8ZK1688G60PGcuP-hM0RvYEY_3Hl2qJCJJrw,581
|
|
74
74
|
cdk_factory/stack_library/stack_base.py,sha256=tTleSFmlf26DuKVF_ytftf8P7IVWb5iex8cYfYupfvQ,4940
|
|
75
|
-
cdk_factory/stack_library/api_gateway/api_gateway_stack.py,sha256=
|
|
75
|
+
cdk_factory/stack_library/api_gateway/api_gateway_stack.py,sha256=LEjDNcCXpD2rqdi66ef1rbg6uTdt18WnZZcr__Wxjzw,29106
|
|
76
76
|
cdk_factory/stack_library/auto_scaling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
77
77
|
cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py,sha256=UsFqUb_3XPJAlmZ6F75nXna3elOggD1KuFmmdmhi0Lg,19070
|
|
78
78
|
cdk_factory/stack_library/aws_lambdas/lambda_stack.py,sha256=xT8-799fSXMpYaRhRKytxsbpb5EG3g2h6L822_RpRSk,22956
|
|
@@ -97,11 +97,11 @@ cdk_factory/stack_library/vpc/__init__.py,sha256=7pIqP97Gf2AJbv9Ebp1WbQGHYhgEbWJ
|
|
|
97
97
|
cdk_factory/stack_library/vpc/vpc_stack.py,sha256=zdDiGilf03esxuya5Z8zVYSVMAIuZBeD-ZKgfnEd6aw,10077
|
|
98
98
|
cdk_factory/stack_library/websites/static_website_stack.py,sha256=KBQiV6PI09mpHGtH-So5Hk3uhfFLDepoXInGbfin0cY,7938
|
|
99
99
|
cdk_factory/stages/websites/static_website_stage.py,sha256=X4fpKXkhb0zIbSHx3QyddBhVSLBryb1vf1Cg2fMTqog,755
|
|
100
|
-
cdk_factory/utilities/api_gateway_integration_utility.py,sha256=
|
|
100
|
+
cdk_factory/utilities/api_gateway_integration_utility.py,sha256=iQAdgUpQ1jQF_tBz7tvUlaKYERYrjGYNoBlEaNJJeuo,50657
|
|
101
101
|
cdk_factory/utilities/commandline_args.py,sha256=0FiNEJFbWVN8Ct7r0VHnJEx7rhUlaRKT7R7HMNJBSTI,2216
|
|
102
102
|
cdk_factory/utilities/configuration_loader.py,sha256=z0ZdGLNbTO4_yfluB9zUh_i_Poc9qj-7oRyjMRlNkN8,1522
|
|
103
103
|
cdk_factory/utilities/docker_utilities.py,sha256=9r8C-lXYpymqEfi3gTeWCQzHldvfjttPqn6p3j2khTE,8111
|
|
104
|
-
cdk_factory/utilities/environment_services.py,sha256=
|
|
104
|
+
cdk_factory/utilities/environment_services.py,sha256=cd2T0efJtFPMLa1Fm7MPL-sqUlhKXCB7_XHsR8sfymE,9696
|
|
105
105
|
cdk_factory/utilities/file_operations.py,sha256=HCZevKlmnHNB2wkIEPtdm-g2nJSKT3B9uipLk8Kx_Yk,8946
|
|
106
106
|
cdk_factory/utilities/git_utilities.py,sha256=7Xac8PaThc7Lmk5jtDBHaJOj-fWRT017cgZmgXkVizM,3155
|
|
107
107
|
cdk_factory/utilities/json_loading_utility.py,sha256=zdvqO2Bw5OpImJymfQRgqr6wfpZSCVtL20sYCYPAvMg,7617
|
|
@@ -109,7 +109,7 @@ cdk_factory/utilities/lambda_function_utilities.py,sha256=j3tBdv_gC2MdEwBINDwAqY
|
|
|
109
109
|
cdk_factory/utilities/os_execute.py,sha256=5Op0LY_8Y-pUm04y1k8MTpNrmQvcLmQHPQITEP7EuSU,1019
|
|
110
110
|
cdk_factory/utils/api_gateway_utilities.py,sha256=If7Xu5s_UxmuV-kL3JkXxPLBdSVUKoLtohm0IUFoiV8,4378
|
|
111
111
|
cdk_factory/workload/workload_factory.py,sha256=yBUDGIuB8-5p_mGcVFxsD2ZoZIziak3yh3LL3JvS0M4,5903
|
|
112
|
-
cdk_factory-0.7.
|
|
113
|
-
cdk_factory-0.7.
|
|
114
|
-
cdk_factory-0.7.
|
|
115
|
-
cdk_factory-0.7.
|
|
112
|
+
cdk_factory-0.7.21.dist-info/METADATA,sha256=acrJ7JO21mBhlQouEgaGU6TJtPyA7GhrWUsPDTE11t0,2451
|
|
113
|
+
cdk_factory-0.7.21.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
114
|
+
cdk_factory-0.7.21.dist-info/licenses/LICENSE,sha256=NOtdOeLwg2il_XBJdXUPFPX8JlV4dqTdDGAd2-khxT8,1066
|
|
115
|
+
cdk_factory-0.7.21.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|