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.

@@ -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", "") or 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
- apigateway.UsagePlanPerApiStage(
275
- api=api_gateway, stage=getattr(api_gateway, '_deployment_stage', None)
276
- )
277
- ] if hasattr(api_gateway, '_deployment_stage') and api_gateway._deployment_stage else [],
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(api_gateway, api_id, route, lambda_fn, authorizer, suffix)
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(self, api_gateway, api_id, route, lambda_fn, authorizer, suffix):
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
- authorization_type = route.get("authorization_type")
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(self, api_gateway, route, lambda_fn, authorizer, api_id, suffix):
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
- authorization_type = route.get("authorization_type")
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
- authorizer
403
- and authorization_type
404
- and authorization_type.upper() != "NONE"
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
- method_options["authorization_type"] = (
412
- apigateway.AuthorizationType.NONE
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
- route["method"].upper(), integration, **method_options
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, '_deployment_stage_internal', stage)
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 not hasattr(self, 'api_gateway_integrations') or not self.api_gateway_integrations:
454
- logger.info("No API Gateway integrations found, skipping deployment finalization")
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 ApiGatewayIntegrationUtility
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(self.api_gateway_integrations)
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['api_gateway']
467
- integrations = api_info['integrations']
468
- counter = api_info['counter']
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, '_deployment_stage', None) or api.deployment_stage,
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 whether authorizer is provided
82
- if self.authorizer:
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=self.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="COGNITO_USER_POOLS",
982
+ authorization_type="COGNITO",
975
983
  authorizer_id=self._get_existing_authorizer_id_with_ssm_fallback(
976
984
  api_config, stack_config
977
985
  ),
@@ -98,7 +98,7 @@ class EnvironmentVariables:
98
98
  """
99
99
  gets the cognito user pool from an environment var
100
100
  """
101
- value = os.getenv("COGNITO_USER_POOLS")
101
+ value = os.getenv("COGNITO")
102
102
  return value
103
103
 
104
104
  @staticmethod
cdk_factory/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.7.19"
1
+ __version__ = "0.7.21"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cdk_factory
3
- Version: 0.7.19
3
+ Version: 0.7.21
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
@@ -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=-_OxJPv2D0J4Tap1QJZo4Z4XyBYoG9M_2-0CsJ35W-I,23
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=tfu-OzBdQl1hcnwM-ZeS1QXY2O7qbKdq-BsaFQV5Qkg,2381
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=F9FxrbPngYNNH4EMyNSK-MonIDsxi4eOMeWjRGHCZ0w,28946
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=Fh4F1G-rExRdrA3WWZZr-D9dxPkLmj6mOsR-mcI_nxs,50167
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=6iRVFGLY7Icmd5xJ-7Et4cSF1-mw3jALi5NVsGd0Mp4,9707
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.19.dist-info/METADATA,sha256=fjxCse511zGd3cZHUgKk6vTnZE2B0DoCEult2xjpm5k,2451
113
- cdk_factory-0.7.19.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
114
- cdk_factory-0.7.19.dist-info/licenses/LICENSE,sha256=NOtdOeLwg2il_XBJdXUPFPX8JlV4dqTdDGAd2-khxT8,1066
115
- cdk_factory-0.7.19.dist-info/RECORD,,
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,,