aws-lambda-powertools 3.10.1a6__tar.gz → 3.10.1a8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/PKG-INFO +1 -1
  2. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/api_gateway.py +8 -5
  3. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/appsync.py +3 -1
  4. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/bedrock_agent.py +8 -8
  5. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/graphql_appsync/_registry.py +4 -1
  6. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/graphql_appsync/base.py +4 -1
  7. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/graphql_appsync/router.py +3 -1
  8. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/lambda_function_url.py +2 -1
  9. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/middlewares/openapi_validation.py +1 -1
  10. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/compat.py +16 -18
  11. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/dependant.py +3 -1
  12. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/encoders.py +3 -1
  13. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/exceptions.py +2 -1
  14. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/models.py +0 -1
  15. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/params.py +3 -1
  16. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/types.py +2 -1
  17. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/util.py +5 -2
  18. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/vpc_lattice.py +2 -1
  19. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/logger.py +34 -4
  20. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/shared/version.py +1 -1
  21. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/batch/base.py +1 -2
  22. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -1
  23. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +17 -6
  24. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/transfer_family_event.py +0 -2
  25. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_masking/provider/base.py +0 -1
  26. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -1
  27. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -1
  28. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/kafka.py +8 -4
  29. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/pyproject.toml +2 -3
  30. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/setup.py +1 -1
  31. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/LICENSE +0 -0
  32. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/README.md +0 -0
  33. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/THIRD-PARTY-LICENSES +0 -0
  34. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/__init__.py +0 -0
  35. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/__init__.py +0 -0
  36. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/content_types.py +0 -0
  37. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
  38. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/graphql_appsync/__init__.py +0 -0
  39. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/graphql_appsync/exceptions.py +0 -0
  40. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/middlewares/__init__.py +0 -0
  41. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/middlewares/base.py +0 -0
  42. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/middlewares/schema_validation.py +0 -0
  43. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/__init__.py +0 -0
  44. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/config.py +0 -0
  45. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/constants.py +0 -0
  46. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/pydantic_loader.py +0 -0
  47. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/swagger_ui/__init__.py +0 -0
  48. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/swagger_ui/html.py +0 -0
  49. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/swagger_ui/oauth2.py +0 -0
  50. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui-bundle.min.js +0 -0
  51. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui.min.css +0 -0
  52. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/router.py +0 -0
  53. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/event_handler/types.py +0 -0
  54. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/exceptions/__init__.py +0 -0
  55. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/__init__.py +0 -0
  56. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/buffer/__init__.py +0 -0
  57. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/buffer/cache.py +0 -0
  58. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/buffer/config.py +0 -0
  59. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/buffer/functions.py +0 -0
  60. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/constants.py +0 -0
  61. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
  62. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/exceptions.py +0 -0
  63. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/filters.py +0 -0
  64. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/formatter.py +0 -0
  65. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
  66. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/formatters/datadog.py +0 -0
  67. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/lambda_context.py +0 -0
  68. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/types.py +0 -0
  69. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/logging/utils.py +0 -0
  70. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/__init__.py +0 -0
  71. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/base.py +0 -0
  72. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/exceptions.py +0 -0
  73. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/functions.py +0 -0
  74. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/metric.py +0 -0
  75. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/metrics.py +0 -0
  76. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/__init__.py +0 -0
  77. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/base.py +0 -0
  78. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py +0 -0
  79. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +0 -0
  80. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py +0 -0
  81. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py +0 -0
  82. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py +0 -0
  83. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py +0 -0
  84. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/cold_start.py +0 -0
  85. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/datadog/__init__.py +0 -0
  86. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/datadog/datadog.py +0 -0
  87. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/datadog/metrics.py +0 -0
  88. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/provider/datadog/warnings.py +0 -0
  89. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/metrics/types.py +0 -0
  90. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/middleware_factory/__init__.py +0 -0
  91. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
  92. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
  93. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/package_logger.py +0 -0
  94. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/py.typed +0 -0
  95. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/shared/__init__.py +0 -0
  96. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/shared/cache_dict.py +0 -0
  97. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/shared/constants.py +0 -0
  98. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/shared/cookies.py +0 -0
  99. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/shared/dynamodb_deserializer.py +0 -0
  100. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/shared/functions.py +0 -0
  101. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
  102. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/shared/json_encoder.py +0 -0
  103. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/shared/lazy_import.py +0 -0
  104. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/shared/types.py +0 -0
  105. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/shared/user_agent.py +0 -0
  106. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/tracing/__init__.py +0 -0
  107. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/tracing/base.py +0 -0
  108. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/tracing/extensions.py +0 -0
  109. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/tracing/tracer.py +0 -0
  110. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/__init__.py +0 -0
  111. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
  112. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/batch/decorators.py +0 -0
  113. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
  114. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +0 -0
  115. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/batch/types.py +0 -0
  116. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/__init__.py +0 -0
  117. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
  118. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
  119. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +0 -0
  120. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
  121. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/api_gateway_websocket_event.py +0 -0
  122. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/appsync/__init__.py +0 -0
  123. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
  124. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
  125. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +0 -0
  126. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +0 -0
  127. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +0 -0
  128. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py +0 -0
  129. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
  130. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
  131. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py +0 -0
  132. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/code_deploy_lifecycle_hook_event.py +0 -0
  133. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
  134. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/common.py +0 -0
  135. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
  136. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +0 -0
  137. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
  138. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
  139. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/iot_registry_event.py +0 -0
  140. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -0
  141. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
  142. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
  143. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
  144. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +0 -0
  145. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
  146. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
  147. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py +0 -0
  148. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
  149. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/shared_functions.py +0 -0
  150. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
  151. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
  152. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +0 -0
  153. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_masking/__init__.py +0 -0
  154. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_masking/base.py +0 -0
  155. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_masking/constants.py +0 -0
  156. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_masking/exceptions.py +0 -0
  157. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_masking/provider/__init__.py +0 -0
  158. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_masking/provider/kms/__init__.py +0 -0
  159. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/data_masking/provider/kms/aws_encryption_sdk.py +0 -0
  160. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
  161. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +0 -0
  162. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/feature_flags/base.py +0 -0
  163. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/feature_flags/comparators.py +0 -0
  164. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/feature_flags/constants.py +0 -0
  165. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
  166. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +0 -0
  167. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
  168. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/feature_flags/types.py +0 -0
  169. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
  170. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/base.py +0 -0
  171. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
  172. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
  173. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/hook.py +0 -0
  174. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/idempotency.py +0 -0
  175. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/persistence/__init__.py +0 -0
  176. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +0 -0
  177. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/persistence/datarecord.py +0 -0
  178. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +0 -0
  179. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/persistence/redis.py +0 -0
  180. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/serialization/__init__.py +0 -0
  181. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/serialization/base.py +0 -0
  182. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +0 -0
  183. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/serialization/functions.py +0 -0
  184. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/idempotency/serialization/no_op.py +0 -0
  185. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +0 -0
  186. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
  187. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
  188. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
  189. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parameters/base.py +0 -0
  190. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parameters/constants.py +0 -0
  191. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
  192. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
  193. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
  194. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parameters/ssm.py +0 -0
  195. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parameters/types.py +0 -0
  196. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/__init__.py +0 -0
  197. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +0 -0
  198. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
  199. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/apigw_websocket.py +0 -0
  200. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
  201. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
  202. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/bedrock_agent.py +0 -0
  203. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
  204. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
  205. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
  206. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
  207. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
  208. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
  209. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
  210. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
  211. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
  212. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py +0 -0
  213. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py +0 -0
  214. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
  215. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/functions.py +0 -0
  216. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/__init__.py +0 -0
  217. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
  218. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
  219. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/apigw_websocket.py +0 -0
  220. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
  221. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/appsync.py +0 -0
  222. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/bedrock_agent.py +0 -0
  223. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +0 -0
  224. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +0 -0
  225. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +0 -0
  226. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
  227. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/iot_registry_events.py +0 -0
  228. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
  229. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
  230. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
  231. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
  232. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
  233. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py +0 -0
  234. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
  235. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
  236. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
  237. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
  238. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
  239. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/transfer_family.py +0 -0
  240. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/vpc_lattice.py +0 -0
  241. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/models/vpc_latticev2.py +0 -0
  242. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/parser.py +0 -0
  243. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/parser/types.py +0 -0
  244. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/serialization.py +0 -0
  245. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/streaming/__init__.py +0 -0
  246. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +0 -0
  247. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
  248. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/streaming/constants.py +0 -0
  249. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/streaming/s3_object.py +0 -0
  250. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
  251. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
  252. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
  253. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
  254. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
  255. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/streaming/types.py +0 -0
  256. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/typing/__init__.py +0 -0
  257. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
  258. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
  259. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
  260. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
  261. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
  262. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/validation/base.py +0 -0
  263. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
  264. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/validation/exceptions.py +0 -0
  265. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/utilities/validation/validator.py +0 -0
  266. {aws_lambda_powertools-3.10.1a6 → aws_lambda_powertools-3.10.1a8}/aws_lambda_powertools/warnings/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: aws_lambda_powertools
3
- Version: 3.10.1a6
3
+ Version: 3.10.1a8
4
4
  Summary: Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.
5
5
  License: MIT
6
6
  Keywords: aws_lambda_powertools,aws,tracing,logging,lambda,powertools,feature_flags,idempotency,middleware
@@ -12,7 +12,7 @@ from enum import Enum
12
12
  from functools import partial
13
13
  from http import HTTPStatus
14
14
  from pathlib import Path
15
- from typing import TYPE_CHECKING, Any, Callable, Generic, Literal, Mapping, Match, Pattern, Sequence, TypeVar, cast
15
+ from typing import TYPE_CHECKING, Any, Generic, Literal, Match, Pattern, TypeVar, cast
16
16
 
17
17
  from typing_extensions import override
18
18
 
@@ -59,6 +59,9 @@ from aws_lambda_powertools.utilities.data_classes import (
59
59
  )
60
60
  from aws_lambda_powertools.utilities.data_classes.common import BaseProxyEvent
61
61
 
62
+ if TYPE_CHECKING:
63
+ from collections.abc import Callable, Mapping, Sequence
64
+
62
65
  logger = logging.getLogger(__name__)
63
66
 
64
67
  _DYNAMIC_ROUTE_PATTERN = r"(<\w+>)"
@@ -68,6 +71,7 @@ _UNSAFE_URI = r"%<> \[\]{}|^"
68
71
  _NAMED_GROUP_BOUNDARY_PATTERN = rf"(?P\1[{_SAFE_URI}{_UNSAFE_URI}\\w]+)"
69
72
  _DEFAULT_OPENAPI_RESPONSE_DESCRIPTION = "Successful Response"
70
73
  _ROUTE_REGEX = "^{}$"
74
+ _JSON_DUMP_CALL = partial(json.dumps, separators=(",", ":"), cls=Encoder)
71
75
 
72
76
  ResponseEventT = TypeVar("ResponseEventT", bound=BaseProxyEvent)
73
77
  ResponseT = TypeVar("ResponseT")
@@ -830,7 +834,7 @@ class ResponseBuilder(Generic[ResponseEventT]):
830
834
  def __init__(
831
835
  self,
832
836
  response: Response,
833
- serializer: Callable[[Any], str] = partial(json.dumps, separators=(",", ":"), cls=Encoder),
837
+ serializer: Callable[[Any], str] = _JSON_DUMP_CALL,
834
838
  route: Route | None = None,
835
839
  ):
836
840
  self.response = response
@@ -1600,7 +1604,6 @@ class ApiGatewayResolver(BaseRouter):
1600
1604
  response_validation_error_http_code: HTTPStatus | int | None,
1601
1605
  enable_validation: bool,
1602
1606
  ) -> HTTPStatus:
1603
-
1604
1607
  if response_validation_error_http_code and not enable_validation:
1605
1608
  msg = "'response_validation_error_http_code' cannot be set when enable_validation is False."
1606
1609
  raise ValueError(msg)
@@ -1609,7 +1612,6 @@ class ApiGatewayResolver(BaseRouter):
1609
1612
  not isinstance(response_validation_error_http_code, HTTPStatus)
1610
1613
  and response_validation_error_http_code is not None
1611
1614
  ):
1612
-
1613
1615
  try:
1614
1616
  response_validation_error_http_code = HTTPStatus(response_validation_error_http_code)
1615
1617
  except ValueError:
@@ -1723,8 +1725,9 @@ class ApiGatewayResolver(BaseRouter):
1723
1725
  security = security or self.openapi_config.security
1724
1726
  openapi_extensions = openapi_extensions or self.openapi_config.openapi_extensions
1725
1727
 
1728
+ from pydantic.json_schema import GenerateJsonSchema
1729
+
1726
1730
  from aws_lambda_powertools.event_handler.openapi.compat import (
1727
- GenerateJsonSchema,
1728
1731
  get_compat_model_name_map,
1729
1732
  get_definitions,
1730
1733
  )
@@ -3,13 +3,15 @@ from __future__ import annotations
3
3
  import asyncio
4
4
  import logging
5
5
  import warnings
6
- from typing import TYPE_CHECKING, Any, Callable
6
+ from typing import TYPE_CHECKING, Any
7
7
 
8
8
  from aws_lambda_powertools.event_handler.graphql_appsync.exceptions import InvalidBatchResponse, ResolverNotFoundError
9
9
  from aws_lambda_powertools.event_handler.graphql_appsync.router import Router
10
10
  from aws_lambda_powertools.utilities.data_classes import AppSyncResolverEvent
11
11
 
12
12
  if TYPE_CHECKING:
13
+ from collections.abc import Callable
14
+
13
15
  from aws_lambda_powertools.utilities.typing import LambdaContext
14
16
 
15
17
  from aws_lambda_powertools.warnings import PowertoolsUserWarning
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import json
4
- from typing import TYPE_CHECKING, Any, Callable
4
+ from typing import TYPE_CHECKING, Any
5
5
 
6
6
  from typing_extensions import override
7
7
 
@@ -14,6 +14,7 @@ from aws_lambda_powertools.event_handler.api_gateway import (
14
14
  from aws_lambda_powertools.event_handler.openapi.constants import DEFAULT_API_VERSION, DEFAULT_OPENAPI_VERSION
15
15
 
16
16
  if TYPE_CHECKING:
17
+ from collections.abc import Callable
17
18
  from http import HTTPStatus
18
19
  from re import Match
19
20
 
@@ -109,11 +110,11 @@ class BedrockAgentResolver(ApiGatewayResolver):
109
110
  tags: list[str] | None = None,
110
111
  operation_id: str | None = None,
111
112
  include_in_schema: bool = True,
113
+ openapi_extensions: dict[str, Any] | None = None,
112
114
  deprecated: bool = False,
113
115
  custom_response_validation_http_code: int | HTTPStatus | None = None,
114
116
  middlewares: list[Callable[..., Any]] | None = None,
115
117
  ) -> Callable[[Callable[..., Any]], Callable[..., Any]]:
116
- openapi_extensions = None
117
118
  security = None
118
119
 
119
120
  return super().get(
@@ -150,11 +151,11 @@ class BedrockAgentResolver(ApiGatewayResolver):
150
151
  tags: list[str] | None = None,
151
152
  operation_id: str | None = None,
152
153
  include_in_schema: bool = True,
154
+ openapi_extensions: dict[str, Any] | None = None,
153
155
  deprecated: bool = False,
154
156
  custom_response_validation_http_code: int | HTTPStatus | None = None,
155
157
  middlewares: list[Callable[..., Any]] | None = None,
156
158
  ):
157
- openapi_extensions = None
158
159
  security = None
159
160
 
160
161
  return super().post(
@@ -191,11 +192,11 @@ class BedrockAgentResolver(ApiGatewayResolver):
191
192
  tags: list[str] | None = None,
192
193
  operation_id: str | None = None,
193
194
  include_in_schema: bool = True,
195
+ openapi_extensions: dict[str, Any] | None = None,
194
196
  deprecated: bool = False,
195
197
  custom_response_validation_http_code: int | HTTPStatus | None = None,
196
198
  middlewares: list[Callable[..., Any]] | None = None,
197
199
  ):
198
- openapi_extensions = None
199
200
  security = None
200
201
 
201
202
  return super().put(
@@ -232,11 +233,11 @@ class BedrockAgentResolver(ApiGatewayResolver):
232
233
  tags: list[str] | None = None,
233
234
  operation_id: str | None = None,
234
235
  include_in_schema: bool = True,
236
+ openapi_extensions: dict[str, Any] | None = None,
235
237
  deprecated: bool = False,
236
238
  custom_response_validation_http_code: int | HTTPStatus | None = None,
237
239
  middlewares: list[Callable] | None = None,
238
240
  ):
239
- openapi_extensions = None
240
241
  security = None
241
242
 
242
243
  return super().patch(
@@ -273,11 +274,11 @@ class BedrockAgentResolver(ApiGatewayResolver):
273
274
  tags: list[str] | None = None,
274
275
  operation_id: str | None = None,
275
276
  include_in_schema: bool = True,
277
+ openapi_extensions: dict[str, Any] | None = None,
276
278
  deprecated: bool = False,
277
279
  custom_response_validation_http_code: int | HTTPStatus | None = None,
278
280
  middlewares: list[Callable[..., Any]] | None = None,
279
281
  ):
280
- openapi_extensions = None
281
282
  security = None
282
283
 
283
284
  return super().delete(
@@ -324,6 +325,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
324
325
  license_info: License | None = None,
325
326
  security_schemes: dict[str, SecurityScheme] | None = None,
326
327
  security: list[dict[str, list[str]]] | None = None,
328
+ openapi_extensions: dict[str, Any] | None = None,
327
329
  ) -> str:
328
330
  """
329
331
  Returns the OpenAPI schema as a JSON serializable dict.
@@ -364,8 +366,6 @@ class BedrockAgentResolver(ApiGatewayResolver):
364
366
  """
365
367
  from aws_lambda_powertools.event_handler.openapi.compat import model_json
366
368
 
367
- openapi_extensions = None
368
-
369
369
  schema = super().get_openapi_schema(
370
370
  title=title,
371
371
  version=version,
@@ -1,7 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import logging
4
- from typing import Any, Callable
4
+ from typing import TYPE_CHECKING, Any
5
+
6
+ if TYPE_CHECKING:
7
+ from collections.abc import Callable
5
8
 
6
9
  logger = logging.getLogger(__name__)
7
10
 
@@ -1,7 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from abc import ABC, abstractmethod
4
- from typing import Callable
4
+ from typing import TYPE_CHECKING
5
+
6
+ if TYPE_CHECKING:
7
+ from collections.abc import Callable
5
8
 
6
9
 
7
10
  class BaseRouter(ABC):
@@ -1,11 +1,13 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import TYPE_CHECKING, Callable
3
+ from typing import TYPE_CHECKING
4
4
 
5
5
  from aws_lambda_powertools.event_handler.graphql_appsync._registry import ResolverRegistry
6
6
  from aws_lambda_powertools.event_handler.graphql_appsync.base import BaseRouter
7
7
 
8
8
  if TYPE_CHECKING:
9
+ from collections.abc import Callable
10
+
9
11
  from aws_lambda_powertools.utilities.data_classes.appsync_resolver_event import AppSyncResolverEvent
10
12
  from aws_lambda_powertools.utilities.typing.lambda_context import LambdaContext
11
13
 
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import TYPE_CHECKING, Callable, Pattern
3
+ from typing import TYPE_CHECKING, Pattern
4
4
 
5
5
  from aws_lambda_powertools.event_handler.api_gateway import (
6
6
  ApiGatewayResolver,
@@ -8,6 +8,7 @@ from aws_lambda_powertools.event_handler.api_gateway import (
8
8
  )
9
9
 
10
10
  if TYPE_CHECKING:
11
+ from collections.abc import Callable
11
12
  from http import HTTPStatus
12
13
 
13
14
  from aws_lambda_powertools.event_handler import CORSConfig
@@ -365,7 +365,7 @@ def _validate_field(
365
365
  """
366
366
  Validate a field, and append any errors to the existing_errors list.
367
367
  """
368
- validated_value, errors = field.validate(value, value, loc=loc)
368
+ validated_value, errors = field.validate(value=value, loc=loc)
369
369
 
370
370
  if isinstance(errors, list):
371
371
  processed_errors = _regenerate_error_with_loc(errors=errors, loc_prefix=())
@@ -1,36 +1,30 @@
1
1
  # mypy: ignore-errors
2
- # flake8: noqa
3
2
  from __future__ import annotations
4
3
 
5
4
  from collections import deque
6
- from copy import copy
5
+ from collections.abc import Mapping, Sequence
7
6
 
8
7
  # MAINTENANCE: remove when deprecating Pydantic v1. Mypy doesn't handle two different code paths that import different
9
8
  # versions of a module, so we need to ignore errors here.
10
-
11
9
  from dataclasses import dataclass, is_dataclass
12
- from enum import Enum
13
- from typing import TYPE_CHECKING, Any, Deque, FrozenSet, List, Mapping, Sequence, Set, Tuple, Union
14
-
15
- from typing_extensions import Annotated, Literal, get_origin, get_args
16
-
17
- from pydantic import BaseModel, create_model
18
- from pydantic.fields import FieldInfo
10
+ from typing import TYPE_CHECKING, Any, Deque, FrozenSet, List, Set, Tuple, Union
19
11
 
20
- from aws_lambda_powertools.event_handler.openapi.types import COMPONENT_REF_PREFIX, UnionType
21
-
22
- from pydantic import TypeAdapter, ValidationError
12
+ from pydantic import BaseModel, TypeAdapter, ValidationError, create_model
23
13
 
24
14
  # Importing from internal libraries in Pydantic may introduce potential risks, as these internal libraries
25
15
  # are not part of the public API and may change without notice in future releases.
26
16
  # We use this for forward reference, as it allows us to handle forward references in type annotations.
27
17
  from pydantic._internal._typing_extra import eval_type_lenient
28
- from pydantic.fields import FieldInfo
29
18
  from pydantic._internal._utils import lenient_issubclass
30
- from pydantic.json_schema import GenerateJsonSchema, JsonSchemaValue
31
19
  from pydantic_core import PydanticUndefined, PydanticUndefinedType
20
+ from typing_extensions import Annotated, Literal, get_args, get_origin
21
+
22
+ from aws_lambda_powertools.event_handler.openapi.types import UnionType
32
23
 
33
24
  if TYPE_CHECKING:
25
+ from pydantic.fields import FieldInfo
26
+ from pydantic.json_schema import GenerateJsonSchema, JsonSchemaValue
27
+
34
28
  from aws_lambda_powertools.event_handler.openapi.types import IncEx, ModelNameMap
35
29
 
36
30
  Undefined = PydanticUndefined
@@ -119,7 +113,10 @@ class ModelField:
119
113
  )
120
114
 
121
115
  def validate(
122
- self, value: Any, values: dict[str, Any] = {}, *, loc: tuple[int | str, ...] = ()
116
+ self,
117
+ value: Any,
118
+ *,
119
+ loc: tuple[int | str, ...] = (),
123
120
  ) -> tuple[Any, list[dict[str, Any]] | None]:
124
121
  try:
125
122
  return (self._type_adapter.validate_python(value, from_attributes=True), None)
@@ -184,7 +181,8 @@ def copy_field_info(*, field_info: FieldInfo, annotation: Any) -> FieldInfo:
184
181
 
185
182
  def get_missing_field_error(loc: tuple[str, ...]) -> dict[str, Any]:
186
183
  error = ValidationError.from_exception_data(
187
- "Field required", [{"type": "missing", "loc": loc, "input": {}}]
184
+ "Field required",
185
+ [{"type": "missing", "loc": loc, "input": {}}],
188
186
  ).errors()[0]
189
187
  error["input"] = None
190
188
  return error
@@ -308,7 +306,7 @@ def value_is_sequence(value: Any) -> bool:
308
306
 
309
307
  def _annotation_is_complex(annotation: type[Any] | None) -> bool:
310
308
  return (
311
- lenient_issubclass(annotation, (BaseModel, Mapping)) # TODO: UploadFile
309
+ lenient_issubclass(annotation, (BaseModel, Mapping)) # Keep it to UploadFile
312
310
  or _annotation_is_sequence(annotation)
313
311
  or is_dataclass(annotation)
314
312
  )
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import inspect
4
4
  import re
5
- from typing import TYPE_CHECKING, Any, Callable, ForwardRef, cast
5
+ from typing import TYPE_CHECKING, Any, ForwardRef, cast
6
6
 
7
7
  from aws_lambda_powertools.event_handler.openapi.compat import (
8
8
  ModelField,
@@ -27,6 +27,8 @@ from aws_lambda_powertools.event_handler.openapi.params import (
27
27
  from aws_lambda_powertools.event_handler.openapi.types import OpenAPIResponse, OpenAPIResponseContentModel
28
28
 
29
29
  if TYPE_CHECKING:
30
+ from collections.abc import Callable
31
+
30
32
  from pydantic import BaseModel
31
33
 
32
34
  """
@@ -8,7 +8,7 @@ from enum import Enum
8
8
  from pathlib import Path, PurePath
9
9
  from re import Pattern
10
10
  from types import GeneratorType
11
- from typing import TYPE_CHECKING, Any, Callable
11
+ from typing import TYPE_CHECKING, Any
12
12
  from uuid import UUID
13
13
 
14
14
  from pydantic import BaseModel
@@ -17,6 +17,8 @@ from pydantic.types import SecretBytes, SecretStr
17
17
  from aws_lambda_powertools.event_handler.openapi.compat import _model_dump
18
18
 
19
19
  if TYPE_CHECKING:
20
+ from collections.abc import Callable
21
+
20
22
  from aws_lambda_powertools.event_handler.openapi.types import IncEx
21
23
 
22
24
  from aws_lambda_powertools.event_handler.openapi.exceptions import SerializationError
@@ -1,4 +1,5 @@
1
- from typing import Any, Literal, Sequence
1
+ from collections.abc import Sequence
2
+ from typing import Any, Literal
2
3
 
3
4
 
4
5
  class ValidationException(Exception):
@@ -36,7 +36,6 @@ class OpenAPIExtensions(BaseModel):
36
36
  @model_validator(mode="before")
37
37
  def serialize_openapi_extension_v2(self):
38
38
  if isinstance(self, dict) and self.get("openapi_extensions"):
39
-
40
39
  openapi_extension_value = self.get("openapi_extensions")
41
40
 
42
41
  for extension_key in openapi_extension_value:
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import inspect
4
4
  from enum import Enum
5
- from typing import TYPE_CHECKING, Any, Callable, Literal
5
+ from typing import TYPE_CHECKING, Any, Literal
6
6
 
7
7
  from pydantic import BaseConfig
8
8
  from pydantic.fields import FieldInfo
@@ -20,6 +20,8 @@ from aws_lambda_powertools.event_handler.openapi.compat import (
20
20
  )
21
21
 
22
22
  if TYPE_CHECKING:
23
+ from collections.abc import Callable
24
+
23
25
  from aws_lambda_powertools.event_handler.openapi.models import Example
24
26
  from aws_lambda_powertools.event_handler.openapi.types import CacheKey
25
27
 
@@ -1,9 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import types
4
- from typing import TYPE_CHECKING, Any, Callable, Dict, Set, Type, TypedDict, Union
4
+ from typing import TYPE_CHECKING, Any, Dict, Set, Type, TypedDict, Union
5
5
 
6
6
  if TYPE_CHECKING:
7
+ from collections.abc import Callable
7
8
  from enum import Enum
8
9
 
9
10
  from pydantic import BaseModel
@@ -1,6 +1,9 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import Any, Dict, List, Mapping
3
+ from typing import TYPE_CHECKING, Any
4
+
5
+ if TYPE_CHECKING:
6
+ from collections.abc import Mapping
4
7
 
5
8
 
6
9
  class _FrozenDict(dict):
@@ -18,7 +21,7 @@ class _FrozenDict(dict):
18
21
  return hash(frozenset(self.keys()))
19
22
 
20
23
 
21
- class _FrozenListDict(List[Dict[str, List[str]]]):
24
+ class _FrozenListDict(list[dict[str, list[str]]]):
22
25
  """
23
26
  Freezes a list of dictionaries containing lists of strings.
24
27
 
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import TYPE_CHECKING, Callable, Pattern
3
+ from typing import TYPE_CHECKING, Pattern
4
4
 
5
5
  from aws_lambda_powertools.event_handler.api_gateway import (
6
6
  ApiGatewayResolver,
@@ -8,6 +8,7 @@ from aws_lambda_powertools.event_handler.api_gateway import (
8
8
  )
9
9
 
10
10
  if TYPE_CHECKING:
11
+ from collections.abc import Callable
11
12
  from http import HTTPStatus
12
13
 
13
14
  from aws_lambda_powertools.event_handler import CORSConfig
@@ -242,10 +242,6 @@ class Logger:
242
242
  buffer_config: LoggerBufferConfig | None = None,
243
243
  **kwargs,
244
244
  ) -> None:
245
-
246
- # Used in case of sampling
247
- self.initial_log_level = self._determine_log_level(level)
248
-
249
245
  self.service = resolve_env_var_choice(
250
246
  choice=service,
251
247
  env=os.getenv(constants.SERVICE_NAME_ENV, "service_undefined"),
@@ -285,6 +281,9 @@ class Logger:
285
281
  if self._buffer_config:
286
282
  self._buffer_cache = LoggerBufferCache(max_size_bytes=self._buffer_config.max_bytes)
287
283
 
284
+ # Used in case of sampling
285
+ self.initial_log_level = self._determine_log_level(level)
286
+
288
287
  self._init_logger(
289
288
  formatter_options=formatter_options,
290
289
  log_level=level,
@@ -1047,6 +1046,20 @@ class Logger:
1047
1046
  stacklevel=2,
1048
1047
  )
1049
1048
 
1049
+ # Check if buffer level is less verbose than ALC
1050
+ if (
1051
+ hasattr(self, "_buffer_config")
1052
+ and self._buffer_config
1053
+ and logging.getLevelName(lambda_log_level)
1054
+ > logging.getLevelName(self._buffer_config.buffer_at_verbosity)
1055
+ ):
1056
+ warnings.warn(
1057
+ "Advanced Logging Controls (ALC) Log Level is less verbose than Log Buffering Log Level. "
1058
+ "Buffered logs will be filtered by ALC",
1059
+ PowertoolsUserWarning,
1060
+ stacklevel=2,
1061
+ )
1062
+
1050
1063
  # AWS Lambda Advanced Logging Controls takes precedence over Powertools log level and we use this
1051
1064
  if lambda_log_level:
1052
1065
  return lambda_log_level
@@ -1133,6 +1146,7 @@ class Logger:
1133
1146
  Handles special first invocation buffering and migration of log records
1134
1147
  between different tracer contexts.
1135
1148
  """
1149
+
1136
1150
  # Determine tracer ID, defaulting to first invoke marker
1137
1151
  tracer_id = get_tracer_id()
1138
1152
 
@@ -1180,6 +1194,7 @@ class Logger:
1180
1194
  Any exceptions from underlying logging or buffer mechanisms
1181
1195
  will be propagated to caller
1182
1196
  """
1197
+
1183
1198
  tracer_id = get_tracer_id()
1184
1199
 
1185
1200
  # Flushing log without a tracer id? Return
@@ -1191,6 +1206,21 @@ class Logger:
1191
1206
  if not buffer:
1192
1207
  return
1193
1208
 
1209
+ if not self._buffer_config:
1210
+ return
1211
+
1212
+ # Check ALC level against buffer level
1213
+ lambda_log_level = self._get_aws_lambda_log_level()
1214
+ if lambda_log_level:
1215
+ # Check if buffer level is less verbose than ALC
1216
+ if logging.getLevelName(lambda_log_level) > logging.getLevelName(self._buffer_config.buffer_at_verbosity):
1217
+ warnings.warn(
1218
+ "Advanced Logging Controls (ALC) Log Level is less verbose than Log Buffering Log Level. "
1219
+ "Some logs might be missing",
1220
+ PowertoolsUserWarning,
1221
+ stacklevel=2,
1222
+ )
1223
+
1194
1224
  # Process log records
1195
1225
  for log_line in buffer:
1196
1226
  self._create_and_flush_log_record(log_line)
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "3.10.1a6"
3
+ VERSION = "3.10.1a8"
@@ -296,8 +296,7 @@ class BasePartialBatchProcessor(BasePartialProcessor): # noqa
296
296
 
297
297
  if self._entire_batch_failed() and self.raise_on_entire_batch_failure:
298
298
  raise BatchProcessingError(
299
- msg=f"All records failed processing. {len(self.exceptions)} individual errors logged "
300
- f"separately below.",
299
+ msg=f"All records failed processing. {len(self.exceptions)} individual errors logged separately below.",
301
300
  child_exceptions=self.exceptions,
302
301
  )
303
302
 
@@ -314,7 +314,6 @@ class CodePipelineJobEvent(DictWrapper):
314
314
  # So we are using if/else instead.
315
315
 
316
316
  if self.data.encryption_key:
317
-
318
317
  encryption_key_id = self.data.encryption_key.get_id
319
318
  encryption_key_type = self.data.encryption_key.get_type
320
319
  if encryption_key_type == "KMS":
@@ -37,14 +37,25 @@ class KafkaEventRecord(DictWrapper):
37
37
  return self["timestampType"]
38
38
 
39
39
  @property
40
- def key(self) -> str:
41
- """The raw (base64 encoded) Kafka record key."""
42
- return self["key"]
40
+ def key(self) -> str | None:
41
+ """
42
+ The raw (base64 encoded) Kafka record key.
43
+
44
+ This key is optional; if not provided,
45
+ a round-robin algorithm will be used to determine
46
+ the partition for the message.
47
+ """
48
+
49
+ return self.get("key")
43
50
 
44
51
  @property
45
- def decoded_key(self) -> bytes:
46
- """Decode the base64 encoded key as bytes."""
47
- return base64.b64decode(self.key)
52
+ def decoded_key(self) -> bytes | None:
53
+ """
54
+ Decode the base64 encoded key as bytes.
55
+
56
+ If the key is not provided, this will return None.
57
+ """
58
+ return None if self.key is None else base64.b64decode(self.key)
48
59
 
49
60
  @property
50
61
  def value(self) -> str:
@@ -39,7 +39,6 @@ class TransferFamilyAuthorizer(DictWrapper):
39
39
 
40
40
 
41
41
  class TransferFamilyAuthorizerResponse:
42
-
43
42
  def _build_authentication_response(
44
43
  self,
45
44
  role_arn: str,
@@ -51,7 +50,6 @@ class TransferFamilyAuthorizerResponse:
51
50
  user_uid: int | None = None,
52
51
  public_keys: str | None = None,
53
52
  ) -> dict[str, Any]:
54
-
55
53
  response: dict[str, Any] = {}
56
54
 
57
55
  if home_directory_type == "PATH":
@@ -82,7 +82,6 @@ class BaseProvider:
82
82
  masking_rules: dict | None = None,
83
83
  **kwargs,
84
84
  ) -> Any:
85
-
86
85
  result: Any = DATA_MASKING_STRING
87
86
 
88
87
  if not any([dynamic_mask, custom_mask, regex_pattern, mask_format, masking_rules]):
@@ -38,7 +38,6 @@ class DataclassSerializer(BaseIdempotencyModelSerializer):
38
38
 
39
39
  @classmethod
40
40
  def instantiate(cls, model_type: Any) -> BaseIdempotencySerializer:
41
-
42
41
  model_type = get_actual_type(model_type=model_type)
43
42
 
44
43
  if model_type is None:
@@ -35,7 +35,6 @@ class PydanticSerializer(BaseIdempotencyModelSerializer):
35
35
 
36
36
  @classmethod
37
37
  def instantiate(cls, model_type: Any) -> BaseIdempotencySerializer:
38
-
39
38
  model_type = get_actual_type(model_type=model_type)
40
39
 
41
40
  if model_type is None:
@@ -1,5 +1,5 @@
1
1
  from datetime import datetime
2
- from typing import Dict, List, Literal, Type, Union
2
+ from typing import Dict, List, Literal, Optional, Type, Union
3
3
 
4
4
  from pydantic import BaseModel, field_validator
5
5
 
@@ -14,12 +14,16 @@ class KafkaRecordModel(BaseModel):
14
14
  offset: int
15
15
  timestamp: datetime
16
16
  timestampType: str
17
- key: bytes
17
+ key: Optional[bytes] = None
18
18
  value: Union[str, Type[BaseModel]]
19
19
  headers: List[Dict[str, bytes]]
20
20
 
21
- # Added type ignore to keep compatibility between Pydantic v1 and v2
22
- _decode_key = field_validator("key")(base64_decode) # type: ignore[type-var, unused-ignore]
21
+ # key is optional; only decode if not None
22
+ @field_validator("key", mode="before")
23
+ def decode_key(cls, value):
24
+ if value is not None:
25
+ return base64_decode(value)
26
+ return value
23
27
 
24
28
  @field_validator("value", mode="before")
25
29
  def data_base64_decode(cls, value):