aws-lambda-powertools 3.0.2.dev1__py3-none-any.whl → 3.1.1a0__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.
@@ -201,7 +201,7 @@ class Schema(BaseModel):
201
201
  deprecated: Optional[bool] = None
202
202
  readOnly: Optional[bool] = None
203
203
  writeOnly: Optional[bool] = None
204
- examples: Optional[List["Example"]] = None
204
+ examples: Optional[Union[List["Example"], List[str]]] = None
205
205
  # Ref: OpenAPI 3.0.0: https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.0.md#schema-object
206
206
  # Schema Object
207
207
  discriminator: Optional[Discriminator] = None
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "3.0.2.dev1"
3
+ VERSION = "3.1.1a0"
@@ -18,6 +18,9 @@ from .cloud_watch_alarm_event import (
18
18
  from .cloud_watch_custom_widget_event import CloudWatchDashboardCustomWidgetEvent
19
19
  from .cloud_watch_logs_event import CloudWatchLogsEvent
20
20
  from .cloudformation_custom_resource_event import CloudFormationCustomResourceEvent
21
+ from .code_deploy_lifecycle_hook_event import (
22
+ CodeDeployLifecycleHookEvent,
23
+ )
21
24
  from .code_pipeline_job_event import CodePipelineJobEvent
22
25
  from .connect_contact_flow_event import ConnectContactFlowEvent
23
26
  from .dynamo_db_stream_event import DynamoDBStreamEvent
@@ -59,6 +62,7 @@ __all__ = [
59
62
  "CloudWatchAlarmMetricStat",
60
63
  "CloudWatchDashboardCustomWidgetEvent",
61
64
  "CloudWatchLogsEvent",
65
+ "CodeDeployLifecycleHookEvent",
62
66
  "CodePipelineJobEvent",
63
67
  "ConnectContactFlowEvent",
64
68
  "DynamoDBStreamEvent",
@@ -0,0 +1,13 @@
1
+ from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
2
+
3
+
4
+ class CodeDeployLifecycleHookEvent(DictWrapper):
5
+ @property
6
+ def deployment_id(self) -> str:
7
+ """The unique ID of the calling CodeDeploy Deployment."""
8
+ return self["DeploymentId"]
9
+
10
+ @property
11
+ def lifecycle_event_hook_execution_id(self) -> str:
12
+ """The unique ID of a deployments lifecycle hook."""
13
+ return self["LifecycleEventHookExecutionId"]
@@ -239,18 +239,15 @@ class IdempotencyHandler:
239
239
  f"Execution already in progress with idempotency key: "
240
240
  f"{self.persistence_store.event_key_jmespath}={data_record.idempotency_key}",
241
241
  )
242
- response_dict: dict | None = data_record.response_json_as_dict()
243
- if response_dict is not None:
244
- serialized_response = self.output_serializer.from_dict(response_dict)
245
- if self.config.response_hook is not None:
246
- logger.debug("Response hook configured, invoking function")
247
- return self.config.response_hook(
248
- serialized_response,
249
- data_record,
250
- )
251
- return serialized_response
252
242
 
253
- return None
243
+ response_dict = data_record.response_json_as_dict()
244
+ serialized_response = self.output_serializer.from_dict(response_dict) if response_dict else None
245
+
246
+ if self.config.response_hook:
247
+ logger.debug("Response hook configured, invoking function")
248
+ return self.config.response_hook(serialized_response, data_record)
249
+
250
+ return serialized_response
254
251
 
255
252
  def _get_function_response(self):
256
253
  try:
@@ -4,7 +4,10 @@ import logging
4
4
  from abc import ABC, abstractmethod
5
5
  from typing import TYPE_CHECKING, Any, TypeVar
6
6
 
7
- from aws_lambda_powertools.utilities.parser.functions import _retrieve_or_set_model_from_cache
7
+ from aws_lambda_powertools.utilities.parser.functions import (
8
+ _parse_and_validate_event,
9
+ _retrieve_or_set_model_from_cache,
10
+ )
8
11
 
9
12
  if TYPE_CHECKING:
10
13
  from aws_lambda_powertools.utilities.parser.types import T
@@ -38,11 +41,7 @@ class BaseEnvelope(ABC):
38
41
  adapter = _retrieve_or_set_model_from_cache(model=model)
39
42
 
40
43
  logger.debug("parsing event against model")
41
- if isinstance(data, str):
42
- logger.debug("parsing event as string")
43
- return adapter.validate_json(data)
44
-
45
- return adapter.validate_python(data)
44
+ return _parse_and_validate_event(data=data, adapter=adapter)
46
45
 
47
46
  @abstractmethod
48
47
  def parse(self, data: dict[str, Any] | Any | None, model: type[T]):
@@ -1,6 +1,8 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import TYPE_CHECKING
3
+ import json
4
+ import logging
5
+ from typing import TYPE_CHECKING, Any
4
6
 
5
7
  from pydantic import TypeAdapter
6
8
 
@@ -11,6 +13,8 @@ if TYPE_CHECKING:
11
13
 
12
14
  CACHE_TYPE_ADAPTER = LRUDict(max_items=1024)
13
15
 
16
+ logger = logging.getLogger(__name__)
17
+
14
18
 
15
19
  def _retrieve_or_set_model_from_cache(model: type[T]) -> TypeAdapter:
16
20
  """
@@ -38,3 +42,38 @@ def _retrieve_or_set_model_from_cache(model: type[T]) -> TypeAdapter:
38
42
 
39
43
  CACHE_TYPE_ADAPTER[id_model] = TypeAdapter(model)
40
44
  return CACHE_TYPE_ADAPTER[id_model]
45
+
46
+
47
+ def _parse_and_validate_event(data: dict[str, Any] | Any, adapter: TypeAdapter):
48
+ """
49
+ Parse and validate the event data using the provided adapter.
50
+
51
+ Params
52
+ ------
53
+ data: dict | Any
54
+ The event data to be parsed and validated.
55
+ adapter: TypeAdapter
56
+ The adapter object used for validation.
57
+
58
+ Returns:
59
+ dict: The validated event data.
60
+
61
+ Raises:
62
+ ValidationError: If the data is invalid or cannot be parsed.
63
+ """
64
+ logger.debug("Parsing event against model")
65
+
66
+ if isinstance(data, str):
67
+ logger.debug("Parsing event as string")
68
+ try:
69
+ return adapter.validate_json(data)
70
+ except NotImplementedError:
71
+ # See: https://github.com/aws-powertools/powertools-lambda-python/issues/5303
72
+ # See: https://github.com/pydantic/pydantic/issues/8890
73
+ logger.debug(
74
+ "Falling back to Python validation due to Pydantic implementation."
75
+ "See issue: https://github.com/aws-powertools/powertools-lambda-python/issues/5303",
76
+ )
77
+ data = json.loads(data)
78
+
79
+ return adapter.validate_python(data)
@@ -103,8 +103,10 @@ class S3RecordModel(BaseModel):
103
103
  def validate_s3_object(cls, values):
104
104
  event_name = values.get("eventName")
105
105
  s3_object = values.get("s3").get("object")
106
- if "ObjectRemoved" not in event_name and (s3_object.get("size") is None or s3_object.get("eTag") is None):
107
- raise ValueError("S3Object.size and S3Object.eTag are required for non-ObjectRemoved events")
106
+ if ":Delete" not in event_name and (s3_object.get("size") is None or s3_object.get("eTag") is None):
107
+ raise ValueError(
108
+ "Size and eTag fields are required for all events except ObjectRemoved:* and LifecycleExpiration:*.",
109
+ )
108
110
  return values
109
111
 
110
112
 
@@ -4,11 +4,14 @@ import logging
4
4
  import typing
5
5
  from typing import TYPE_CHECKING, Any, Callable, overload
6
6
 
7
- from pydantic import PydanticSchemaGenerationError, ValidationError
7
+ from pydantic import PydanticSchemaGenerationError
8
8
 
9
9
  from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
10
10
  from aws_lambda_powertools.utilities.parser.exceptions import InvalidEnvelopeError, InvalidModelTypeError
11
- from aws_lambda_powertools.utilities.parser.functions import _retrieve_or_set_model_from_cache
11
+ from aws_lambda_powertools.utilities.parser.functions import (
12
+ _parse_and_validate_event,
13
+ _retrieve_or_set_model_from_cache,
14
+ )
12
15
 
13
16
  if TYPE_CHECKING:
14
17
  from aws_lambda_powertools.utilities.parser.envelopes.base import Envelope
@@ -108,7 +111,7 @@ def event_parser(
108
111
 
109
112
  logger.debug(f"Calling handler {handler.__name__}")
110
113
  return handler(parsed_event, context, **kwargs)
111
- except (ValidationError, AttributeError) as exc:
114
+ except AttributeError as exc:
112
115
  raise InvalidModelTypeError(f"Error: {str(exc)}. Please ensure the type you're trying to parse into is correct")
113
116
 
114
117
 
@@ -189,17 +192,14 @@ def parse(event: dict[str, Any], model: type[T], envelope: type[Envelope] | None
189
192
  adapter = _retrieve_or_set_model_from_cache(model=model)
190
193
 
191
194
  logger.debug("Parsing and validating event model; no envelope used")
192
- if isinstance(event, str):
193
- return adapter.validate_json(event)
194
-
195
- return adapter.validate_python(event)
195
+ return _parse_and_validate_event(data=event, adapter=adapter)
196
196
 
197
197
  # Pydantic raises PydanticSchemaGenerationError when the model is not a Pydantic model
198
198
  # This is seen in the tests where we pass a non-Pydantic model type to the parser or
199
199
  # when we pass a data structure that does not match the model (trying to parse a true/false/etc into a model)
200
200
  except PydanticSchemaGenerationError as exc:
201
201
  raise InvalidModelTypeError(f"The event supplied is unable to be validated into {type(model)}") from exc
202
- except ValidationError as exc:
202
+ except AttributeError as exc:
203
203
  raise InvalidModelTypeError(
204
204
  f"Error: {str(exc)}. Please ensure the Input model inherits from BaseModel,\n"
205
205
  "and your payload adheres to the specified Input model structure.\n"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aws-lambda-powertools
3
- Version: 3.0.2.dev1
3
+ Version: 3.1.1a0
4
4
  Summary: Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.
5
5
  Home-page: https://github.com/aws-powertools/powertools-lambda-python
6
6
  License: MIT
@@ -107,6 +107,7 @@ The following companies, among others, use Powertools:
107
107
  * [CPQi (Exadel Financial Services)](https://cpqi.com/)
108
108
  * [CloudZero](https://www.cloudzero.com/)
109
109
  * [CyberArk](https://www.cyberark.com/)
110
+ * [Flyweight](https://flyweight.io/)
110
111
  * [globaldatanet](https://globaldatanet.com/)
111
112
  * [IMS](https://ims.tech/)
112
113
  * [Jit Security](https://www.jit.io/)
@@ -22,7 +22,7 @@ aws_lambda_powertools/event_handler/openapi/constants.py,sha256=79IF4spKAHvMAO3b
22
22
  aws_lambda_powertools/event_handler/openapi/dependant.py,sha256=RTYgsWmRyV5mOC5FedKbcInR4Q4n57nc7EdOsCn2nrk,12521
23
23
  aws_lambda_powertools/event_handler/openapi/encoders.py,sha256=--AUeeqdtOdNZ4oYrzeQTXpuhES_hUeaPmvRuFOJn74,11700
24
24
  aws_lambda_powertools/event_handler/openapi/exceptions.py,sha256=4iubuXydACTddytd3NMfqlwlS9aOXMSaROU7ev2Ojes,777
25
- aws_lambda_powertools/event_handler/openapi/models.py,sha256=qtOfGKGdV6ky8IZ2V8XU2UtuGw4nCNrp5OCD0zaFAWo,16919
25
+ aws_lambda_powertools/event_handler/openapi/models.py,sha256=mgiGig45gCMcBUprp7z8tqoQVE-46kOTOImCFuMr_xw,16937
26
26
  aws_lambda_powertools/event_handler/openapi/params.py,sha256=b8V9D35VHH6MGzbMHcMZtPpegTrqSKohSBbvGn53Om4,41119
27
27
  aws_lambda_powertools/event_handler/openapi/pydantic_loader.py,sha256=Bud_yzI_Cao7UN_9zx6NeP0H2rQOZJbdbDAjgtthB-g,217
28
28
  aws_lambda_powertools/event_handler/openapi/swagger_ui/__init__.py,sha256=52wY3inOe1EPunrNl5cUqVQWHM6FsJHU5wpObSAX7-M,335
@@ -84,7 +84,7 @@ aws_lambda_powertools/shared/json_encoder.py,sha256=JQeWNu-4M7_xI_hqYExrxsb3OcEH
84
84
  aws_lambda_powertools/shared/lazy_import.py,sha256=TbXQm2bcwXdZrYdBaJJXIswyLlumM85RJ_A_0w-h-GU,2019
85
85
  aws_lambda_powertools/shared/types.py,sha256=APkI38HbiTpSF19NSNii8Ydx73vmVUVotgEQ9jHruEI,124
86
86
  aws_lambda_powertools/shared/user_agent.py,sha256=DrCMFQuT4a4iIrpcWpAIjY37EFqR9-QxlxDGD-Nn9Gg,7081
87
- aws_lambda_powertools/shared/version.py,sha256=sjzqOiMHPkSBC5O1DBzCPtURs0Yk7BqAr3o9eBJDdoA,87
87
+ aws_lambda_powertools/shared/version.py,sha256=7dcP2-kn8yR-CUe_Ut9TGcZTwjPwcszpmg3jkINuEow,84
88
88
  aws_lambda_powertools/tracing/__init__.py,sha256=Zdk7mE8lUMICbYOnx_1yFjvghzoPOpPmRv-Wkj-kzkU,142
89
89
  aws_lambda_powertools/tracing/base.py,sha256=VNqc9CtywKJSuD1H0etuFVzUgpyfskQ9e1N2m_S28R0,4416
90
90
  aws_lambda_powertools/tracing/extensions.py,sha256=APOfXOq-hRBKaK5WyfIyrd_6M1_9SWJZ3zxLA9jDZzU,492
@@ -96,7 +96,7 @@ aws_lambda_powertools/utilities/batch/decorators.py,sha256=6kfZ3lX-OFig4p-GJGTj3
96
96
  aws_lambda_powertools/utilities/batch/exceptions.py,sha256=RTuhAlHF6ULgGirfTwijVZp2J8njAkCST0E56Zgj-sc,1585
97
97
  aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py,sha256=sLJkYCritckbG5nMQiHU1uu1tMM2Iu6IZ3RKB1DwPyw,4236
98
98
  aws_lambda_powertools/utilities/batch/types.py,sha256=XgUSbOIfzY4d2z3cFntQHAe6hcmxt6fbvSpa2KaMLeU,1112
99
- aws_lambda_powertools/utilities/data_classes/__init__.py,sha256=Aeo1Z49JN36WxslUojIQxmfe2C8i2IP1Nn_FhWzUyzw,2961
99
+ aws_lambda_powertools/utilities/data_classes/__init__.py,sha256=_VmD2C8w8f0IwWsn40Eq0ZIf9Mk1CrBiAyoWrz6kRi0,3081
100
100
  aws_lambda_powertools/utilities/data_classes/active_mq_event.py,sha256=gJPzcSmw1JsPGKZHUkVGNjveuqQ6OpaibWy6WfJZyHQ,4373
101
101
  aws_lambda_powertools/utilities/data_classes/alb_event.py,sha256=3WUxCa9tympp9isYD7-WylR93aD6gB4td0it4W99fH8,1997
102
102
  aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py,sha256=ntT2Wzb1KMsAfGbm3E67Nha5DwpBmv_zV13PYEdfU5U,21288
@@ -111,6 +111,7 @@ aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py,sha256=_
111
111
  aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py,sha256=jOosilW8xBxD69LxssrYZhiUwqnTbtknJIVhg5FA9a8,4215
112
112
  aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py,sha256=uuGqErwHw0gTyGKEV5Q92W4yGAEjzUULsb33Egd723M,3470
113
113
  aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py,sha256=EextMoBG9v_e5bS9Q1DlzVvzljGtIL1ddBszt5fgTeY,1191
114
+ aws_lambda_powertools/utilities/data_classes/code_deploy_lifecycle_hook_event.py,sha256=chJSwmEj7GcKNlqY3HyWHOuhQIQSjqvA4fUxs-PxovA,464
114
115
  aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py,sha256=dj3RXkOnnIyIyxqoUcekeDN_5SJV_6-xgM-pJrDLyhs,8098
115
116
  aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py,sha256=VN9VdG05jewwxtDBNyKwFhR2QOrrs86PGd1F34hK744,44155
116
117
  aws_lambda_powertools/utilities/data_classes/common.py,sha256=JbJBu_9ESITyLqDK3zPqV4A2EEWrLBQXz6V3xVbZ1p4,20374
@@ -150,7 +151,7 @@ aws_lambda_powertools/utilities/feature_flags/feature_flags.py,sha256=goie3JDRik
150
151
  aws_lambda_powertools/utilities/feature_flags/schema.py,sha256=mOU8tr6iGtwY3QD5iorKC8OLwZ23VLKjHOapQp3C9o0,22682
151
152
  aws_lambda_powertools/utilities/feature_flags/types.py,sha256=UBMywajJ_umny7GAd9vYDMxpGqRNrcyBzXtMrGdXtkU,261
152
153
  aws_lambda_powertools/utilities/idempotency/__init__.py,sha256=9GEhuiB6lLalv37ynRxBVkpZ8kvtuPcQNRLrk9TkzF8,619
153
- aws_lambda_powertools/utilities/idempotency/base.py,sha256=qWA06OuctMzoYRCwkkoXgpM_kFv4aaxS-EH6YEdjqbk,10962
154
+ aws_lambda_powertools/utilities/idempotency/base.py,sha256=kO0bN16q-GXiVL_MxYKd30u-9E83YqUvVM_-7tpfb_Y,10829
154
155
  aws_lambda_powertools/utilities/idempotency/config.py,sha256=h8UraMbewI39KoIIh7FpB_fXtIv_v0WjN1URtvLfeJQ,2868
155
156
  aws_lambda_powertools/utilities/idempotency/exceptions.py,sha256=HLQoBsxrmkkbQVxZ7CxKBwbVw5Tk9ko7VKbkh9qOJmc,2914
156
157
  aws_lambda_powertools/utilities/idempotency/hook.py,sha256=XHj6q0dP65C8Cj-TPJ9a8OZB7LyISNJCuEHc8OzhLZg,450
@@ -181,7 +182,7 @@ aws_lambda_powertools/utilities/parser/__init__.py,sha256=IX6_UzdEMwg7u-bxCpyG3b
181
182
  aws_lambda_powertools/utilities/parser/envelopes/__init__.py,sha256=w4IlyqzKfW0335Z39aOB6gh30Rw8TInFzEAFxZ2o8u0,1092
182
183
  aws_lambda_powertools/utilities/parser/envelopes/apigw.py,sha256=RqOmf4FUKAEUK3boY3dSlHhgIHBv8WkrQ2nFeOyKqjo,1275
183
184
  aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py,sha256=E3Rc3ketdakcoQ8aeeHghETwhsDXvhS2s9h1vCpf-Ik,1291
184
- aws_lambda_powertools/utilities/parser/envelopes/base.py,sha256=dunK0qRX9M9VnrIiea51dJY99sT2jJodanpo_rCA9Fo,2142
185
+ aws_lambda_powertools/utilities/parser/envelopes/base.py,sha256=LmuRJB3Ydd0A6E_tOWvgqLCkDNhGVd45zzO5uZUfFMo,2072
185
186
  aws_lambda_powertools/utilities/parser/envelopes/bedrock_agent.py,sha256=Q_MqowOTeduWS4v0P4hme-KLhOKVby3wjJYw6IofCfg,1294
186
187
  aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py,sha256=xERcckRMA_7RaQS3bP-QSHqxmdU9Tr7o1fVPsbswbPg,1598
187
188
  aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py,sha256=fJyqT7i5dgzwuLkpK3tdvKPo_7g3VuVvKsqFYri3pJA,1731
@@ -195,7 +196,7 @@ aws_lambda_powertools/utilities/parser/envelopes/sqs.py,sha256=MXd9uf6fyP7Sf7ATC
195
196
  aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py,sha256=RIwj1CQJ_qZJVggYAJ4qlfv1T0etrgaODR7Pi51yI1Y,1251
196
197
  aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py,sha256=DGLibAGblJPPe1wC-9gvNWR8LusAzTeTLxwc3cizHzY,1264
197
198
  aws_lambda_powertools/utilities/parser/exceptions.py,sha256=y6DXKUg48xgvswqMAxOYaUGRAqJgg8sm_F8JORgCa1U,207
198
- aws_lambda_powertools/utilities/parser/functions.py,sha256=fVt1YJf2KjLAJ6OVUapO8CvEvq0lQU3bPftAdaOqa08,1174
199
+ aws_lambda_powertools/utilities/parser/functions.py,sha256=DfCWMZ5SAwHdNkaSE4frjM_A6cb45fIE-GsOOjAFOvY,2397
199
200
  aws_lambda_powertools/utilities/parser/models/__init__.py,sha256=t8xfWm0vIrKbmnH18yS8NywkbCKdKNa6EnDjdtPLRfg,5391
200
201
  aws_lambda_powertools/utilities/parser/models/alb.py,sha256=lJPWPjz0_4Hz9Pkpap3NRvScSI3RWC7o4dFYt4F7LLM,439
201
202
  aws_lambda_powertools/utilities/parser/models/apigw.py,sha256=_UbZXcfdcz7U-MrixXor4sc-VkNIuJAj9uwqjJTlhKg,3494
@@ -210,7 +211,7 @@ aws_lambda_powertools/utilities/parser/models/kinesis.py,sha256=-8zJh1GJd69QCo0t
210
211
  aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py,sha256=K1MbkoX9yZjMcZOJ7H7nek3OgVoBAjtqorKlcoWRlQ8,939
211
212
  aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py,sha256=VTXGKlo0aBpi8njpOOiTaNFncl0_vRRWmiI7Z6ngKPI,875
212
213
  aws_lambda_powertools/utilities/parser/models/lambda_function_url.py,sha256=mV8Hg-KiUsNP9S8VqK9j0p9FN8U80i-rler3MVxacow,611
213
- aws_lambda_powertools/utilities/parser/models/s3.py,sha256=1qowKUIK1bDtv_VAa8Xcf1hlHEsjdOdA8HVpsMD6jps,3333
214
+ aws_lambda_powertools/utilities/parser/models/s3.py,sha256=YoUD_2p76UUZgd8MKnHUxBOd7uV2AL69iyU2JWy-ISw,3383
214
215
  aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py,sha256=pMLUCR-1RRw8IKoZDgdpE_8U_Sjw21_OiKb3rFJHq4g,866
215
216
  aws_lambda_powertools/utilities/parser/models/s3_event_notification.py,sha256=3teMeZCi5wPgreXiBffC-5-T-9aF04jSE1Ak2vBrGYE,391
216
217
  aws_lambda_powertools/utilities/parser/models/s3_object_event.py,sha256=o_wYIWZp5lZFDSOfor4_7PTx1ptGjKthASP9yyFjYxM,1280
@@ -219,7 +220,7 @@ aws_lambda_powertools/utilities/parser/models/sns.py,sha256=PV_hBCGl4k8WYsmW0SUH
219
220
  aws_lambda_powertools/utilities/parser/models/sqs.py,sha256=vz9hOrSufi1axmKtr8dAuXharKCfoMYVwsLGrPVZwBo,2730
220
221
  aws_lambda_powertools/utilities/parser/models/vpc_lattice.py,sha256=mgfNtM1lV2EDWlTSKzttO1Zm85lhOm3BadblSd8tR7E,277
221
222
  aws_lambda_powertools/utilities/parser/models/vpc_latticev2.py,sha256=ISrqKuwBMduiHhwHNjkkPCX7_AteW8DHXWa5kLw9q8o,1853
222
- aws_lambda_powertools/utilities/parser/parser.py,sha256=-Ahl7KtFYMfBVf4IjL2zL8nySDjHczj74yiCX-UbT1c,7437
223
+ aws_lambda_powertools/utilities/parser/parser.py,sha256=aDvmtym20-3FcIcw3z3H_mYwhqOxm0TN1TWOx70f3l8,7380
223
224
  aws_lambda_powertools/utilities/parser/types.py,sha256=jyubFUfm99CVOFoO7wWeZxiBhGM77IWl3wGqviS9pfM,457
224
225
  aws_lambda_powertools/utilities/serialization.py,sha256=xxxgDPQUoIsyATHQ5MxeATqye_MKqMCGXv18TgulrFo,1412
225
226
  aws_lambda_powertools/utilities/streaming/__init__.py,sha256=9XrhDFoHnPTzkrKoR3ER_hebDpZ6cV-j4Gj_jTJc5oI,97
@@ -244,7 +245,7 @@ aws_lambda_powertools/utilities/validation/envelopes.py,sha256=YD5HOFx6IClQgii0n
244
245
  aws_lambda_powertools/utilities/validation/exceptions.py,sha256=F-Wpkb3yChHDLgDTKaQy4ngpaMXXH3NJxe27UHoM_dA,2043
245
246
  aws_lambda_powertools/utilities/validation/validator.py,sha256=x_1qpuKJBuWpgNU-zCD3Di-vXrZfyUu7oA5RmjZjr84,10034
246
247
  aws_lambda_powertools/warnings/__init__.py,sha256=vqDVeZz8wGtD8WGYNSkQE7AHwqtIrPGRxuoJR_BBnSs,1193
247
- aws_lambda_powertools-3.0.2.dev1.dist-info/LICENSE,sha256=vMHS2eBgmwPUIMPb7LQ4p7ib_FPVQXarVjAasflrTwo,951
248
- aws_lambda_powertools-3.0.2.dev1.dist-info/METADATA,sha256=_ldBRvabqTEGJ7g00HP2rxqSLLFVWOWS86DthQ6NjJ8,11118
249
- aws_lambda_powertools-3.0.2.dev1.dist-info/WHEEL,sha256=WGfLGfLX43Ei_YORXSnT54hxFygu34kMpcQdmgmEwCQ,88
250
- aws_lambda_powertools-3.0.2.dev1.dist-info/RECORD,,
248
+ aws_lambda_powertools-3.1.1a0.dist-info/LICENSE,sha256=vMHS2eBgmwPUIMPb7LQ4p7ib_FPVQXarVjAasflrTwo,951
249
+ aws_lambda_powertools-3.1.1a0.dist-info/METADATA,sha256=sVoDf60dXq7GV6s3Fa4AoVH-ZLKd0CJ3B9PvwDeaViE,11152
250
+ aws_lambda_powertools-3.1.1a0.dist-info/WHEEL,sha256=WGfLGfLX43Ei_YORXSnT54hxFygu34kMpcQdmgmEwCQ,88
251
+ aws_lambda_powertools-3.1.1a0.dist-info/RECORD,,