aws-lambda-powertools 3.13.1a7__tar.gz → 3.14.1a0__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 (279) hide show
  1. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/PKG-INFO +2 -1
  2. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/README.md +1 -0
  3. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/__init__.py +6 -0
  4. aws_lambda_powertools-3.14.1a0/aws_lambda_powertools/event_handler/bedrock_agent_function.py +248 -0
  5. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/shared/version.py +1 -1
  6. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/__init__.py +2 -0
  7. aws_lambda_powertools-3.14.1a0/aws_lambda_powertools/utilities/data_classes/bedrock_agent_function_event.py +81 -0
  8. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +2 -1
  9. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/bedrock_agent.py +25 -1
  10. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/__init__.py +2 -0
  11. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/bedrock_agent.py +18 -0
  12. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/pyproject.toml +2 -2
  13. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/setup.py +2 -2
  14. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/LICENSE +0 -0
  15. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/THIRD-PARTY-LICENSES +0 -0
  16. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/__init__.py +0 -0
  17. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/api_gateway.py +0 -0
  18. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/appsync.py +0 -0
  19. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/bedrock_agent.py +0 -0
  20. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/content_types.py +0 -0
  21. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/events_appsync/__init__.py +0 -0
  22. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/events_appsync/_registry.py +0 -0
  23. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/events_appsync/appsync_events.py +0 -0
  24. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/events_appsync/base.py +0 -0
  25. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/events_appsync/exceptions.py +0 -0
  26. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/events_appsync/functions.py +0 -0
  27. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/events_appsync/router.py +0 -0
  28. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/events_appsync/types.py +0 -0
  29. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/exception_handling.py +0 -0
  30. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
  31. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/graphql_appsync/__init__.py +0 -0
  32. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/graphql_appsync/_registry.py +0 -0
  33. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/graphql_appsync/base.py +0 -0
  34. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/graphql_appsync/exceptions.py +0 -0
  35. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/graphql_appsync/router.py +0 -0
  36. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/lambda_function_url.py +0 -0
  37. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/middlewares/__init__.py +0 -0
  38. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/middlewares/base.py +0 -0
  39. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/middlewares/openapi_validation.py +0 -0
  40. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/middlewares/schema_validation.py +0 -0
  41. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/__init__.py +0 -0
  42. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/compat.py +0 -0
  43. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/config.py +0 -0
  44. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/constants.py +0 -0
  45. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/dependant.py +0 -0
  46. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/encoders.py +0 -0
  47. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/exceptions.py +0 -0
  48. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/models.py +0 -0
  49. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/params.py +0 -0
  50. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/pydantic_loader.py +0 -0
  51. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/__init__.py +0 -0
  52. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/html.py +0 -0
  53. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/oauth2.py +0 -0
  54. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui-bundle.min.js +0 -0
  55. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui.min.css +0 -0
  56. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/openapi/types.py +0 -0
  57. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/router.py +0 -0
  58. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/types.py +0 -0
  59. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/util.py +0 -0
  60. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/event_handler/vpc_lattice.py +0 -0
  61. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/exceptions/__init__.py +0 -0
  62. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/__init__.py +0 -0
  63. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/buffer/__init__.py +0 -0
  64. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/buffer/cache.py +0 -0
  65. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/buffer/config.py +0 -0
  66. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/buffer/functions.py +0 -0
  67. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/constants.py +0 -0
  68. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
  69. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/exceptions.py +0 -0
  70. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/filters.py +0 -0
  71. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/formatter.py +0 -0
  72. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
  73. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/formatters/datadog.py +0 -0
  74. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/lambda_context.py +0 -0
  75. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/logger.py +0 -0
  76. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/types.py +0 -0
  77. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/logging/utils.py +0 -0
  78. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/__init__.py +0 -0
  79. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/base.py +0 -0
  80. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/exceptions.py +0 -0
  81. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/functions.py +0 -0
  82. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/metric.py +0 -0
  83. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/metrics.py +0 -0
  84. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/__init__.py +0 -0
  85. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/base.py +0 -0
  86. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py +0 -0
  87. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +0 -0
  88. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py +0 -0
  89. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py +0 -0
  90. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py +0 -0
  91. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py +0 -0
  92. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/cold_start.py +0 -0
  93. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/datadog/__init__.py +0 -0
  94. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/datadog/datadog.py +0 -0
  95. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/datadog/metrics.py +0 -0
  96. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/provider/datadog/warnings.py +0 -0
  97. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/metrics/types.py +0 -0
  98. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/middleware_factory/__init__.py +0 -0
  99. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
  100. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
  101. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/package_logger.py +0 -0
  102. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/py.typed +0 -0
  103. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/shared/__init__.py +0 -0
  104. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/shared/cache_dict.py +0 -0
  105. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/shared/constants.py +0 -0
  106. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/shared/cookies.py +0 -0
  107. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/shared/dynamodb_deserializer.py +0 -0
  108. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/shared/functions.py +0 -0
  109. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
  110. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/shared/json_encoder.py +0 -0
  111. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/shared/lazy_import.py +0 -0
  112. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/shared/types.py +0 -0
  113. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/shared/user_agent.py +0 -0
  114. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/tracing/__init__.py +0 -0
  115. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/tracing/base.py +0 -0
  116. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/tracing/extensions.py +0 -0
  117. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/tracing/tracer.py +0 -0
  118. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/__init__.py +0 -0
  119. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
  120. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/batch/base.py +0 -0
  121. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/batch/decorators.py +0 -0
  122. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
  123. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +0 -0
  124. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/batch/types.py +0 -0
  125. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
  126. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
  127. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +0 -0
  128. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
  129. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/api_gateway_websocket_event.py +0 -0
  130. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/appsync/__init__.py +0 -0
  131. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
  132. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
  133. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +0 -0
  134. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_events_event.py +0 -0
  135. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +0 -0
  136. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +0 -0
  137. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py +0 -0
  138. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
  139. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
  140. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py +0 -0
  141. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/code_deploy_lifecycle_hook_event.py +0 -0
  142. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -0
  143. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
  144. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/common.py +0 -0
  145. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
  146. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +0 -0
  147. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
  148. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
  149. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/iot_registry_event.py +0 -0
  150. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +0 -0
  151. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -0
  152. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
  153. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
  154. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
  155. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +0 -0
  156. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
  157. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
  158. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py +0 -0
  159. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
  160. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/shared_functions.py +0 -0
  161. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
  162. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
  163. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/transfer_family_event.py +0 -0
  164. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +0 -0
  165. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_masking/__init__.py +0 -0
  166. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_masking/base.py +0 -0
  167. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_masking/constants.py +0 -0
  168. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_masking/exceptions.py +0 -0
  169. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_masking/provider/__init__.py +0 -0
  170. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_masking/provider/base.py +0 -0
  171. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_masking/provider/kms/__init__.py +0 -0
  172. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/data_masking/provider/kms/aws_encryption_sdk.py +0 -0
  173. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
  174. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +0 -0
  175. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/feature_flags/base.py +0 -0
  176. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/feature_flags/comparators.py +0 -0
  177. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/feature_flags/constants.py +0 -0
  178. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
  179. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +0 -0
  180. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
  181. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/feature_flags/types.py +0 -0
  182. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
  183. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/base.py +0 -0
  184. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
  185. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
  186. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/hook.py +0 -0
  187. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/idempotency.py +0 -0
  188. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/persistence/__init__.py +0 -0
  189. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +0 -0
  190. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/persistence/cache.py +0 -0
  191. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/persistence/datarecord.py +0 -0
  192. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +0 -0
  193. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/persistence/redis.py +0 -0
  194. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/serialization/__init__.py +0 -0
  195. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/serialization/base.py +0 -0
  196. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +0 -0
  197. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -0
  198. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/serialization/functions.py +0 -0
  199. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/serialization/no_op.py +0 -0
  200. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -0
  201. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +0 -0
  202. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
  203. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
  204. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
  205. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parameters/base.py +0 -0
  206. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parameters/constants.py +0 -0
  207. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
  208. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
  209. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
  210. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parameters/ssm.py +0 -0
  211. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parameters/types.py +0 -0
  212. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/__init__.py +0 -0
  213. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
  214. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/apigw_websocket.py +0 -0
  215. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
  216. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
  217. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
  218. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
  219. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
  220. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
  221. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
  222. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
  223. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
  224. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
  225. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
  226. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py +0 -0
  227. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py +0 -0
  228. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
  229. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/functions.py +0 -0
  230. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
  231. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
  232. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/apigw_websocket.py +0 -0
  233. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
  234. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/appsync.py +0 -0
  235. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +0 -0
  236. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +0 -0
  237. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +0 -0
  238. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
  239. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/iot_registry_events.py +0 -0
  240. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/kafka.py +0 -0
  241. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
  242. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
  243. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
  244. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
  245. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
  246. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py +0 -0
  247. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
  248. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
  249. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
  250. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
  251. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
  252. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/transfer_family.py +0 -0
  253. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/vpc_lattice.py +0 -0
  254. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/models/vpc_latticev2.py +0 -0
  255. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/parser.py +0 -0
  256. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/parser/types.py +0 -0
  257. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/serialization.py +0 -0
  258. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/streaming/__init__.py +0 -0
  259. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +0 -0
  260. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
  261. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/streaming/constants.py +0 -0
  262. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/streaming/s3_object.py +0 -0
  263. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
  264. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
  265. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
  266. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
  267. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
  268. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/streaming/types.py +0 -0
  269. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/typing/__init__.py +0 -0
  270. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
  271. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
  272. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
  273. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
  274. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
  275. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/validation/base.py +0 -0
  276. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
  277. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/validation/exceptions.py +0 -0
  278. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/aws_lambda_powertools/utilities/validation/validator.py +0 -0
  279. {aws_lambda_powertools-3.13.1a7 → aws_lambda_powertools-3.14.1a0}/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.13.1a7
3
+ Version: 3.14.1a0
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
@@ -113,6 +113,7 @@ The following companies, among others, use Powertools:
113
113
  * [globaldatanet](https://globaldatanet.com/)
114
114
  * [Guild](https://guild.com/)
115
115
  * [IMS](https://ims.tech/)
116
+ * [Instil](https://instil.co/)
116
117
  * [Jit Security](https://www.jit.io/)
117
118
  * [LocalStack](https://www.localstack.cloud/)
118
119
  * [Propellor.ai](https://www.propellor.ai/)
@@ -67,6 +67,7 @@ The following companies, among others, use Powertools:
67
67
  * [globaldatanet](https://globaldatanet.com/)
68
68
  * [Guild](https://guild.com/)
69
69
  * [IMS](https://ims.tech/)
70
+ * [Instil](https://instil.co/)
70
71
  * [Jit Security](https://www.jit.io/)
71
72
  * [LocalStack](https://www.localstack.cloud/)
72
73
  * [Propellor.ai](https://www.propellor.ai/)
@@ -12,6 +12,10 @@ from aws_lambda_powertools.event_handler.api_gateway import (
12
12
  )
13
13
  from aws_lambda_powertools.event_handler.appsync import AppSyncResolver
14
14
  from aws_lambda_powertools.event_handler.bedrock_agent import BedrockAgentResolver, BedrockResponse
15
+ from aws_lambda_powertools.event_handler.bedrock_agent_function import (
16
+ BedrockAgentFunctionResolver,
17
+ BedrockFunctionResponse,
18
+ )
15
19
  from aws_lambda_powertools.event_handler.events_appsync.appsync_events import AppSyncEventsResolver
16
20
  from aws_lambda_powertools.event_handler.lambda_function_url import (
17
21
  LambdaFunctionUrlResolver,
@@ -26,7 +30,9 @@ __all__ = [
26
30
  "ALBResolver",
27
31
  "ApiGatewayResolver",
28
32
  "BedrockAgentResolver",
33
+ "BedrockAgentFunctionResolver",
29
34
  "BedrockResponse",
35
+ "BedrockFunctionResponse",
30
36
  "CORSConfig",
31
37
  "LambdaFunctionUrlResolver",
32
38
  "Response",
@@ -0,0 +1,248 @@
1
+ from __future__ import annotations
2
+
3
+ import inspect
4
+ import json
5
+ import logging
6
+ import warnings
7
+ from collections.abc import Callable
8
+ from typing import Any, Literal, TypeVar
9
+
10
+ from aws_lambda_powertools.utilities.data_classes import BedrockAgentFunctionEvent
11
+ from aws_lambda_powertools.warnings import PowertoolsUserWarning
12
+
13
+ # Define a generic type for the function
14
+ T = TypeVar("T", bound=Callable[..., Any])
15
+
16
+ logger = logging.getLogger(__name__)
17
+
18
+
19
+ class BedrockFunctionResponse:
20
+ """Response class for Bedrock Agent Functions.
21
+
22
+ Parameters
23
+ ----------
24
+ body : Any, optional
25
+ Response body to be returned to the caller.
26
+ session_attributes : dict[str, str] or None, optional
27
+ Session attributes to include in the response for maintaining state.
28
+ prompt_session_attributes : dict[str, str] or None, optional
29
+ Prompt session attributes to include in the response.
30
+ knowledge_bases : list[dict[str, Any]] or None, optional
31
+ Knowledge bases to include in the response.
32
+ response_state : {"FAILURE", "REPROMPT"} or None, optional
33
+ Response state indicating if the function failed or needs reprompting.
34
+
35
+ Examples
36
+ --------
37
+ >>> @app.tool(description="Function that uses session attributes")
38
+ >>> def test_function():
39
+ ... return BedrockFunctionResponse(
40
+ ... body="Hello",
41
+ ... session_attributes={"userId": "123"},
42
+ ... prompt_session_attributes={"lastAction": "login"}
43
+ ... )
44
+
45
+ Notes
46
+ -----
47
+ The `response_state` parameter can only be set to "FAILURE" or "REPROMPT".
48
+ """
49
+
50
+ def __init__(
51
+ self,
52
+ body: Any = None,
53
+ session_attributes: dict[str, str] | None = None,
54
+ prompt_session_attributes: dict[str, str] | None = None,
55
+ knowledge_bases: list[dict[str, Any]] | None = None,
56
+ response_state: Literal["FAILURE", "REPROMPT"] | None = None,
57
+ ) -> None:
58
+ if response_state and response_state not in ["FAILURE", "REPROMPT"]:
59
+ raise ValueError("responseState must be 'FAILURE' or 'REPROMPT'")
60
+
61
+ self.body = body
62
+ self.session_attributes = session_attributes
63
+ self.prompt_session_attributes = prompt_session_attributes
64
+ self.knowledge_bases = knowledge_bases
65
+ self.response_state = response_state
66
+
67
+
68
+ class BedrockFunctionsResponseBuilder:
69
+ """
70
+ Bedrock Functions Response Builder. This builds the response dict to be returned by Lambda
71
+ when using Bedrock Agent Functions.
72
+ """
73
+
74
+ def __init__(self, result: BedrockFunctionResponse | Any) -> None:
75
+ self.result = result
76
+
77
+ def build(self, event: BedrockAgentFunctionEvent, serializer: Callable) -> dict[str, Any]:
78
+ result_obj = self.result
79
+
80
+ # Extract attributes from BedrockFunctionResponse or use defaults
81
+ body = getattr(result_obj, "body", result_obj)
82
+ session_attributes = getattr(result_obj, "session_attributes", None)
83
+ prompt_session_attributes = getattr(result_obj, "prompt_session_attributes", None)
84
+ knowledge_bases = getattr(result_obj, "knowledge_bases", None)
85
+ response_state = getattr(result_obj, "response_state", None)
86
+
87
+ # Build base response structure
88
+ # Per AWS Bedrock documentation, currently only "TEXT" is supported as the responseBody content type
89
+ # https://docs.aws.amazon.com/bedrock/latest/userguide/agents-lambda.html
90
+ response: dict[str, Any] = {
91
+ "messageVersion": "1.0",
92
+ "response": {
93
+ "actionGroup": event.action_group,
94
+ "function": event.function,
95
+ "functionResponse": {
96
+ "responseBody": {"TEXT": {"body": serializer(body if body is not None else "")}},
97
+ },
98
+ },
99
+ "sessionAttributes": session_attributes or event.session_attributes or {},
100
+ "promptSessionAttributes": prompt_session_attributes or event.prompt_session_attributes or {},
101
+ }
102
+
103
+ # Add optional fields when present
104
+ if response_state:
105
+ response["response"]["functionResponse"]["responseState"] = response_state
106
+
107
+ if knowledge_bases:
108
+ response["knowledgeBasesConfiguration"] = knowledge_bases
109
+
110
+ return response
111
+
112
+
113
+ class BedrockAgentFunctionResolver:
114
+ """Bedrock Agent Function resolver that handles function definitions
115
+
116
+ Examples
117
+ --------
118
+ ```python
119
+ from aws_lambda_powertools.event_handler import BedrockAgentFunctionResolver
120
+
121
+ app = BedrockAgentFunctionResolver()
122
+
123
+ @app.tool(name="get_current_time", description="Gets the current UTC time")
124
+ def get_current_time():
125
+ from datetime import datetime
126
+ return datetime.utcnow().isoformat()
127
+
128
+ def lambda_handler(event, context):
129
+ return app.resolve(event, context)
130
+ ```
131
+ """
132
+
133
+ context: dict
134
+
135
+ def __init__(self, serializer: Callable | None = None) -> None:
136
+ self._tools: dict[str, dict[str, Any]] = {}
137
+ self.current_event: BedrockAgentFunctionEvent | None = None
138
+ self.context = {}
139
+ self._response_builder_class = BedrockFunctionsResponseBuilder
140
+ self.serializer = serializer or json.dumps
141
+
142
+ def tool(
143
+ self,
144
+ name: str | None = None,
145
+ description: str | None = None,
146
+ ) -> Callable[[T], T]:
147
+ """Decorator to register a tool function
148
+
149
+ Parameters
150
+ ----------
151
+ name : str | None
152
+ Custom name for the tool. If not provided, uses the function name
153
+ description : str | None
154
+ Description of what the tool does
155
+
156
+ Returns
157
+ -------
158
+ Callable
159
+ Decorator function that registers and returns the original function
160
+ """
161
+
162
+ def decorator(func: T) -> T:
163
+ function_name = name or func.__name__
164
+
165
+ logger.debug(f"Registering {function_name} tool")
166
+
167
+ if function_name in self._tools:
168
+ warnings.warn(
169
+ f"Tool '{function_name}' already registered. Overwriting with new definition.",
170
+ PowertoolsUserWarning,
171
+ stacklevel=2,
172
+ )
173
+
174
+ self._tools[function_name] = {
175
+ "function": func,
176
+ "description": description,
177
+ }
178
+ return func
179
+
180
+ return decorator
181
+
182
+ def resolve(self, event: dict[str, Any], context: Any) -> dict[str, Any]:
183
+ """Resolves the function call from Bedrock Agent event"""
184
+ try:
185
+ self.current_event = BedrockAgentFunctionEvent(event)
186
+ return self._resolve()
187
+ except KeyError as e:
188
+ raise ValueError(f"Missing required field: {str(e)}") from e
189
+
190
+ def _resolve(self) -> dict[str, Any]:
191
+ """Internal resolution logic"""
192
+ if self.current_event is None:
193
+ raise ValueError("No event to process")
194
+
195
+ function_name = self.current_event.function
196
+
197
+ logger.debug(f"Resolving {function_name} tool")
198
+
199
+ try:
200
+ parameters: dict[str, Any] = {}
201
+ # Extract parameters from the event
202
+ for param in getattr(self.current_event, "parameters", []):
203
+ param_type = getattr(param, "type", None)
204
+ if param_type == "string":
205
+ parameters[param.name] = str(param.value)
206
+ elif param_type == "integer":
207
+ try:
208
+ parameters[param.name] = int(param.value)
209
+ except (ValueError, TypeError):
210
+ parameters[param.name] = param.value
211
+ elif param_type == "number":
212
+ try:
213
+ parameters[param.name] = float(param.value)
214
+ except (ValueError, TypeError):
215
+ parameters[param.name] = param.value
216
+ elif param_type == "boolean":
217
+ if isinstance(param.value, str):
218
+ parameters[param.name] = param.value.lower() == "true"
219
+ else:
220
+ parameters[param.name] = bool(param.value)
221
+ else: # "array" or any other type
222
+ parameters[param.name] = param.value
223
+
224
+ func = self._tools[function_name]["function"]
225
+ # Filter parameters to only include those expected by the function
226
+ sig = inspect.signature(func)
227
+ valid_params = {name: value for name, value in parameters.items() if name in sig.parameters}
228
+
229
+ # Call the function with the filtered parameters
230
+ result = func(**valid_params)
231
+
232
+ self.clear_context()
233
+
234
+ # Build and return the response
235
+ return BedrockFunctionsResponseBuilder(result).build(self.current_event, serializer=self.serializer)
236
+ except Exception as error:
237
+ # Return a formatted error response
238
+ logger.error(f"Error processing function: {function_name}", exc_info=True)
239
+ error_response = BedrockFunctionResponse(body=f"Error: {error.__class__.__name__}: {str(error)}")
240
+ return BedrockFunctionsResponseBuilder(error_response).build(self.current_event, serializer=self.serializer)
241
+
242
+ def append_context(self, **additional_context):
243
+ """Append key=value data as routing context"""
244
+ self.context.update(**additional_context)
245
+
246
+ def clear_context(self):
247
+ """Resets routing context"""
248
+ self.context.clear()
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "3.13.1a7"
3
+ VERSION = "3.14.1a0"
@@ -9,6 +9,7 @@ from .appsync_resolver_event import AppSyncResolverEvent
9
9
  from .appsync_resolver_events_event import AppSyncResolverEventsEvent
10
10
  from .aws_config_rule_event import AWSConfigRuleEvent
11
11
  from .bedrock_agent_event import BedrockAgentEvent
12
+ from .bedrock_agent_function_event import BedrockAgentFunctionEvent
12
13
  from .cloud_watch_alarm_event import (
13
14
  CloudWatchAlarmConfiguration,
14
15
  CloudWatchAlarmData,
@@ -59,6 +60,7 @@ __all__ = [
59
60
  "AppSyncResolverEventsEvent",
60
61
  "ALBEvent",
61
62
  "BedrockAgentEvent",
63
+ "BedrockAgentFunctionEvent",
62
64
  "CloudWatchAlarmData",
63
65
  "CloudWatchAlarmEvent",
64
66
  "CloudWatchAlarmMetric",
@@ -0,0 +1,81 @@
1
+ from __future__ import annotations
2
+
3
+ from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
4
+
5
+
6
+ class BedrockAgentInfo(DictWrapper):
7
+ @property
8
+ def name(self) -> str:
9
+ return self["name"]
10
+
11
+ @property
12
+ def id(self) -> str: # noqa: A003
13
+ return self["id"]
14
+
15
+ @property
16
+ def alias(self) -> str:
17
+ return self["alias"]
18
+
19
+ @property
20
+ def version(self) -> str:
21
+ return self["version"]
22
+
23
+
24
+ class BedrockAgentFunctionParameter(DictWrapper):
25
+ @property
26
+ def name(self) -> str:
27
+ return self["name"]
28
+
29
+ @property
30
+ def type(self) -> str: # noqa: A003
31
+ return self["type"]
32
+
33
+ @property
34
+ def value(self) -> str:
35
+ return self["value"]
36
+
37
+
38
+ class BedrockAgentFunctionEvent(DictWrapper):
39
+ """
40
+ Bedrock Agent Function input event
41
+
42
+ Documentation:
43
+ https://docs.aws.amazon.com/bedrock/latest/userguide/agents-lambda.html
44
+ """
45
+
46
+ @property
47
+ def message_version(self) -> str:
48
+ return self["messageVersion"]
49
+
50
+ @property
51
+ def input_text(self) -> str:
52
+ return self["inputText"]
53
+
54
+ @property
55
+ def session_id(self) -> str:
56
+ return self["sessionId"]
57
+
58
+ @property
59
+ def action_group(self) -> str:
60
+ return self["actionGroup"]
61
+
62
+ @property
63
+ def function(self) -> str:
64
+ return self["function"]
65
+
66
+ @property
67
+ def parameters(self) -> list[BedrockAgentFunctionParameter]:
68
+ parameters = self.get("parameters") or []
69
+ return [BedrockAgentFunctionParameter(x) for x in parameters]
70
+
71
+ @property
72
+ def agent(self) -> BedrockAgentInfo:
73
+ return BedrockAgentInfo(self["agent"])
74
+
75
+ @property
76
+ def session_attributes(self) -> dict[str, str]:
77
+ return self.get("sessionAttributes", {}) or {}
78
+
79
+ @property
80
+ def prompt_session_attributes(self) -> dict[str, str]:
81
+ return self.get("promptSessionAttributes", {}) or {}
@@ -2,7 +2,7 @@ from .apigw import ApiGatewayEnvelope
2
2
  from .apigw_websocket import ApiGatewayWebSocketEnvelope
3
3
  from .apigwv2 import ApiGatewayV2Envelope
4
4
  from .base import BaseEnvelope
5
- from .bedrock_agent import BedrockAgentEnvelope
5
+ from .bedrock_agent import BedrockAgentEnvelope, BedrockAgentFunctionEnvelope
6
6
  from .cloudwatch import CloudWatchLogsEnvelope
7
7
  from .dynamodb import DynamoDBStreamEnvelope
8
8
  from .event_bridge import EventBridgeEnvelope
@@ -20,6 +20,7 @@ __all__ = [
20
20
  "ApiGatewayV2Envelope",
21
21
  "ApiGatewayWebSocketEnvelope",
22
22
  "BedrockAgentEnvelope",
23
+ "BedrockAgentFunctionEnvelope",
23
24
  "CloudWatchLogsEnvelope",
24
25
  "DynamoDBStreamEnvelope",
25
26
  "EventBridgeEnvelope",
@@ -4,7 +4,7 @@ import logging
4
4
  from typing import TYPE_CHECKING, Any
5
5
 
6
6
  from aws_lambda_powertools.utilities.parser.envelopes.base import BaseEnvelope
7
- from aws_lambda_powertools.utilities.parser.models import BedrockAgentEventModel
7
+ from aws_lambda_powertools.utilities.parser.models import BedrockAgentEventModel, BedrockAgentFunctionEventModel
8
8
 
9
9
  if TYPE_CHECKING:
10
10
  from aws_lambda_powertools.utilities.parser.types import Model
@@ -34,3 +34,27 @@ class BedrockAgentEnvelope(BaseEnvelope):
34
34
  parsed_envelope: BedrockAgentEventModel = BedrockAgentEventModel.model_validate(data)
35
35
  logger.debug(f"Parsing event payload in `input_text` with {model}")
36
36
  return self._parse(data=parsed_envelope.input_text, model=model)
37
+
38
+
39
+ class BedrockAgentFunctionEnvelope(BaseEnvelope):
40
+ """Bedrock Agent Function envelope to extract data within input_text key"""
41
+
42
+ def parse(self, data: dict[str, Any] | Any | None, model: type[Model]) -> Model | None:
43
+ """Parses data found with model provided
44
+
45
+ Parameters
46
+ ----------
47
+ data : dict
48
+ Lambda event to be parsed
49
+ model : type[Model]
50
+ Data model provided to parse after extracting data using envelope
51
+
52
+ Returns
53
+ -------
54
+ Model | None
55
+ Parsed detail payload with model provided
56
+ """
57
+ logger.debug(f"Parsing incoming data with Bedrock Agent Function model {BedrockAgentFunctionEventModel}")
58
+ parsed_envelope: BedrockAgentFunctionEventModel = BedrockAgentFunctionEventModel.model_validate(data)
59
+ logger.debug(f"Parsing event payload in `input_text` with {model}")
60
+ return self._parse(data=parsed_envelope.input_text, model=model)
@@ -32,6 +32,7 @@ from .appsync import (
32
32
  )
33
33
  from .bedrock_agent import (
34
34
  BedrockAgentEventModel,
35
+ BedrockAgentFunctionEventModel,
35
36
  BedrockAgentModel,
36
37
  BedrockAgentPropertyModel,
37
38
  BedrockAgentRequestBodyModel,
@@ -208,6 +209,7 @@ __all__ = [
208
209
  "BedrockAgentEventModel",
209
210
  "BedrockAgentRequestBodyModel",
210
211
  "BedrockAgentRequestMediaModel",
212
+ "BedrockAgentFunctionEventModel",
211
213
  "S3BatchOperationJobModel",
212
214
  "S3BatchOperationModel",
213
215
  "S3BatchOperationTaskModel",
@@ -36,3 +36,21 @@ class BedrockAgentEventModel(BaseModel):
36
36
  agent: BedrockAgentModel
37
37
  parameters: Optional[List[BedrockAgentPropertyModel]] = None
38
38
  request_body: Optional[BedrockAgentRequestBodyModel] = Field(None, alias="requestBody")
39
+
40
+
41
+ class BedrockAgentFunctionEventModel(BaseModel):
42
+ """Bedrock Agent Function event model
43
+
44
+ Documentation:
45
+ https://docs.aws.amazon.com/bedrock/latest/userguide/agents-lambda.html
46
+ """
47
+
48
+ message_version: str = Field(..., alias="messageVersion")
49
+ agent: BedrockAgentModel
50
+ input_text: str = Field(..., alias="inputText")
51
+ session_id: str = Field(..., alias="sessionId")
52
+ action_group: str = Field(..., alias="actionGroup")
53
+ function: str
54
+ parameters: Optional[List[BedrockAgentPropertyModel]] = None
55
+ session_attributes: Dict[str, str] = Field({}, alias="sessionAttributes")
56
+ prompt_session_attributes: Dict[str, str] = Field({}, alias="promptSessionAttributes")
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "aws_lambda_powertools"
3
- version = "3.13.1a7"
3
+ version = "3.14.1a0"
4
4
  description = "Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity."
5
5
  authors = ["Amazon Web Services"]
6
6
  include = ["aws_lambda_powertools/py.typed", "THIRD-PARTY-LICENSES"]
@@ -108,7 +108,7 @@ hvac = "^2.3.0"
108
108
  aws-requests-auth = "^0.4.3"
109
109
  urllib3 = "<2"
110
110
  requests = ">=2.32.0"
111
- cfn-lint = "1.35.3"
111
+ cfn-lint = "1.35.4"
112
112
  mypy = "^1.1.1"
113
113
  types-python-dateutil = "^2.8.19.6"
114
114
  aws-cdk-aws-appsync-alpha = "^2.59.0a0"
@@ -67,9 +67,9 @@ extras_require = \
67
67
 
68
68
  setup_kwargs = {
69
69
  'name': 'aws_lambda_powertools',
70
- 'version': '3.13.1a7',
70
+ 'version': '3.14.1a0',
71
71
  'description': 'Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.',
72
- 'long_description': '<!-- markdownlint-disable MD013 MD041 MD043 -->\n# Powertools for AWS Lambda (Python)\n\n[![Build](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/quality_check.yml/badge.svg)](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/python_build.yml)\n[![codecov.io](https://codecov.io/github/aws-powertools/powertools-lambda-python/branch/develop/graphs/badge.svg)](https://app.codecov.io/gh/aws-powertools/powertools-lambda-python)\n![PythonSupport](https://img.shields.io/static/v1?label=python&message=%203.9|%203.10|%203.11|%203.12|%203.13&color=blue?style=flat-square&logo=python) ![PyPI version](https://badge.fury.io/py/aws-lambda-powertools.svg) ![PyPi monthly downloads](https://img.shields.io/pypi/dm/aws-lambda-powertools) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python/badge)](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python) [![Join our Discord](https://dcbadge.vercel.app/api/server/B8zZKbbyET?style=flat-square)](https://discord.gg/B8zZKbbyET)\n\nPowertools for AWS Lambda (Python) is a developer toolkit to implement Serverless [best practices and increase developer velocity](https://docs.powertools.aws.dev/lambda/python/latest/#features).\n\n> Also available in [Java](https://github.com/aws-powertools/powertools-lambda-java), [Typescript](https://github.com/aws-powertools/powertools-lambda-typescript), and [.NET](https://github.com/aws-powertools/powertools-lambda-dotnet).\n\n**[📜Documentation](https://docs.powertools.aws.dev/lambda/python/)** | **[🐍PyPi](https://pypi.org/project/aws-lambda-powertools/)** | **[Roadmap](https://docs.powertools.aws.dev/lambda/python/latest/roadmap/)** | **[Detailed blog post](https://aws.amazon.com/blogs/opensource/simplifying-serverless-best-practices-with-lambda-powertools/)**\n\n![hero-image](https://user-images.githubusercontent.com/3340292/198254617-d0fdb672-86a6-4988-8a40-adf437135e0a.png)\n\n## Features\n\n* **[Tracing](https://docs.powertools.aws.dev/lambda/python/latest/core/tracer/)** - Decorators and utilities to trace Lambda function handlers, and both synchronous and asynchronous functions\n* **[Logging](https://docs.powertools.aws.dev/lambda/python/latest/core/logger/)** - Structured logging made easier, and decorator to enrich structured logging with key Lambda context details\n* **[Metrics](https://docs.powertools.aws.dev/lambda/python/latest/core/metrics/)** - Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)\n* **[Event handler: AppSync](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/appsync/)** - AWS AppSync event handler for Lambda Direct Resolver and Amplify GraphQL Transformer function\n* **[Event handler: API Gateway and ALB](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/api_gateway/)** - Amazon API Gateway REST/HTTP API and ALB event handler for Lambda functions invoked using Proxy integration\n* **[Event handler: Agents for Amazon Bedrock](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/bedrock_agents/)** - Create Agents for Amazon Bedrock, automatically generating OpenAPI schemas\n* **[Bring your own middleware](https://docs.powertools.aws.dev/lambda/python/latest/utilities/middleware_factory/)** - Decorator factory to create your own middleware to run logic before, and after each Lambda invocation\n* **[Parameters utility](https://docs.powertools.aws.dev/lambda/python/latest/utilities/parameters/)** - Retrieve and cache parameter values from Parameter Store, Secrets Manager, or DynamoDB\n* **[Batch processing](https://docs.powertools.aws.dev/lambda/python/latest/utilities/batch/)** - Handle partial failures for AWS SQS batch processing\n* **[Typing](https://docs.powertools.aws.dev/lambda/python/latest/utilities/typing/)** - Static typing classes to speedup development in your IDE\n* **[Validation](https://docs.powertools.aws.dev/lambda/python/latest/utilities/validation/)** - JSON Schema validator for inbound events and responses\n* **[Event source data classes](https://docs.powertools.aws.dev/lambda/python/latest/utilities/data_classes/)** - Data classes describing the schema of common Lambda event triggers\n* **[Parser](https://docs.powertools.aws.dev/lambda/python/latest/utilities/parser/)** - Data parsing and deep validation using Pydantic\n* **[Idempotency](https://docs.powertools.aws.dev/lambda/python/latest/utilities/idempotency/)** - Convert your Lambda functions into idempotent operations which are safe to retry\n* **[Data Masking](https://docs.powertools.aws.dev/lambda/python/latest/utilities/data_masking/)** - Protect confidential data with easy removal or encryption\n* **[Feature Flags](https://docs.powertools.aws.dev/lambda/python/latest/utilities/feature_flags/)** - A simple rule engine to evaluate when one or multiple features should be enabled depending on the input\n* **[Streaming](https://docs.powertools.aws.dev/lambda/python/latest/utilities/streaming/)** - Streams datasets larger than the available memory as streaming data.\n\n### Installation\n\nWith [pip](https://pip.pypa.io/en/latest/index.html) installed, run: ``pip install aws-lambda-powertools``\n\n## Tutorial and Examples\n\n* [Tutorial](https://docs.powertools.aws.dev/lambda/python/latest/tutorial)\n* [Serverless Shopping cart](https://github.com/aws-samples/aws-serverless-shopping-cart)\n* [Serverless Airline](https://github.com/aws-samples/aws-serverless-airline-booking)\n* [Serverless E-commerce platform](https://github.com/aws-samples/aws-serverless-ecommerce-platform)\n* [Serverless GraphQL Nanny Booking Api](https://github.com/trey-rosius/babysitter_api)\n\n## How to support Powertools for AWS Lambda (Python)?\n\n### Becoming a reference customer\n\nKnowing which companies are using this library is important to help prioritize the project internally. If your company is using Powertools for AWS Lambda (Python), you can request to have your name and logo added to the README file by raising a [Support Powertools for AWS Lambda (Python) (become a reference)](https://github.com/aws-powertools/powertools-lambda-python/issues/new?assignees=&labels=customer-reference&template=support_powertools.yml&title=%5BSupport+Lambda+Powertools%5D%3A+%3Cyour+organization+name%3E) issue.\n\nThe following companies, among others, use Powertools:\n\n* [Alma Media](https://www.almamedia.fi/en/)\n* [Banxware](https://www.banxware.com/)\n* [Brsk](https://www.brsk.co.uk/)\n* [BusPatrol](https://buspatrol.com/)\n* [Capital One](https://www.capitalone.com/)\n* [Caylent](https://caylent.com/)\n* [CHS Inc.](https://www.chsinc.com/)\n* [CPQi (Exadel Financial Services)](https://cpqi.com/)\n* [CloudZero](https://www.cloudzero.com/)\n* [CyberArk](https://www.cyberark.com/)\n* [Flyweight](https://flyweight.io/)\n* [globaldatanet](https://globaldatanet.com/)\n* [Guild](https://guild.com/)\n* [IMS](https://ims.tech/)\n* [Jit Security](https://www.jit.io/)\n* [LocalStack](https://www.localstack.cloud/)\n* [Propellor.ai](https://www.propellor.ai/)\n* [Pushpay](https://pushpay.com/)\n* [Recast](https://getrecast.com/)\n* [TopSport](https://www.topsport.com.au/)\n* [Transformity](https://transformity.tech/)\n* [Trek10](https://www.trek10.com/)\n* [Vertex Pharmaceuticals](https://www.vrtx.com/)\n\n### Sharing your work\n\nShare what you did with Powertools for AWS Lambda (Python) 💞💞. Blog post, workshops, presentation, sample apps and others. Check out what the community has already shared about Powertools for AWS Lambda (Python) [here](https://docs.powertools.aws.dev/lambda/python/latest/we_made_this/).\n\n### Using Lambda Layer or SAR\n\nThis helps us understand who uses Powertools for AWS Lambda (Python) in a non-intrusive way, and helps us gain future investments for other Powertools for AWS Lambda languages. When [using Layers](https://docs.powertools.aws.dev/lambda/python/latest/#lambda-layer), you can add Powertools for AWS Lambda (Python) as a dev dependency (or as part of your virtual env) to not impact the development process.\n\n## Credits\n\n* Structured logging initial implementation from [aws-lambda-logging](https://gitlab.com/hadrien/aws_lambda_logging)\n* Powertools for AWS Lambda (Python) idea [DAZN Powertools](https://github.com/getndazn/dazn-lambda-powertools/)\n\n## Connect\n\n* **Powertools for AWS Lambda on Discord**: `#python` - **[Invite link](https://discord.gg/B8zZKbbyET)**\n* **Email**: <aws-powertools-maintainers@amazon.com>\n\n## Security disclosures\n\nIf you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions [here](https://aws.amazon.com/security/vulnerability-reporting/) or [email AWS security directly](mailto:aws-security@amazon.com).\n\n## License\n\nThis library is licensed under the MIT-0 License. See the LICENSE file.\n',
72
+ 'long_description': '<!-- markdownlint-disable MD013 MD041 MD043 -->\n# Powertools for AWS Lambda (Python)\n\n[![Build](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/quality_check.yml/badge.svg)](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/python_build.yml)\n[![codecov.io](https://codecov.io/github/aws-powertools/powertools-lambda-python/branch/develop/graphs/badge.svg)](https://app.codecov.io/gh/aws-powertools/powertools-lambda-python)\n![PythonSupport](https://img.shields.io/static/v1?label=python&message=%203.9|%203.10|%203.11|%203.12|%203.13&color=blue?style=flat-square&logo=python) ![PyPI version](https://badge.fury.io/py/aws-lambda-powertools.svg) ![PyPi monthly downloads](https://img.shields.io/pypi/dm/aws-lambda-powertools) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python/badge)](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python) [![Join our Discord](https://dcbadge.vercel.app/api/server/B8zZKbbyET?style=flat-square)](https://discord.gg/B8zZKbbyET)\n\nPowertools for AWS Lambda (Python) is a developer toolkit to implement Serverless [best practices and increase developer velocity](https://docs.powertools.aws.dev/lambda/python/latest/#features).\n\n> Also available in [Java](https://github.com/aws-powertools/powertools-lambda-java), [Typescript](https://github.com/aws-powertools/powertools-lambda-typescript), and [.NET](https://github.com/aws-powertools/powertools-lambda-dotnet).\n\n**[📜Documentation](https://docs.powertools.aws.dev/lambda/python/)** | **[🐍PyPi](https://pypi.org/project/aws-lambda-powertools/)** | **[Roadmap](https://docs.powertools.aws.dev/lambda/python/latest/roadmap/)** | **[Detailed blog post](https://aws.amazon.com/blogs/opensource/simplifying-serverless-best-practices-with-lambda-powertools/)**\n\n![hero-image](https://user-images.githubusercontent.com/3340292/198254617-d0fdb672-86a6-4988-8a40-adf437135e0a.png)\n\n## Features\n\n* **[Tracing](https://docs.powertools.aws.dev/lambda/python/latest/core/tracer/)** - Decorators and utilities to trace Lambda function handlers, and both synchronous and asynchronous functions\n* **[Logging](https://docs.powertools.aws.dev/lambda/python/latest/core/logger/)** - Structured logging made easier, and decorator to enrich structured logging with key Lambda context details\n* **[Metrics](https://docs.powertools.aws.dev/lambda/python/latest/core/metrics/)** - Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)\n* **[Event handler: AppSync](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/appsync/)** - AWS AppSync event handler for Lambda Direct Resolver and Amplify GraphQL Transformer function\n* **[Event handler: API Gateway and ALB](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/api_gateway/)** - Amazon API Gateway REST/HTTP API and ALB event handler for Lambda functions invoked using Proxy integration\n* **[Event handler: Agents for Amazon Bedrock](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/bedrock_agents/)** - Create Agents for Amazon Bedrock, automatically generating OpenAPI schemas\n* **[Bring your own middleware](https://docs.powertools.aws.dev/lambda/python/latest/utilities/middleware_factory/)** - Decorator factory to create your own middleware to run logic before, and after each Lambda invocation\n* **[Parameters utility](https://docs.powertools.aws.dev/lambda/python/latest/utilities/parameters/)** - Retrieve and cache parameter values from Parameter Store, Secrets Manager, or DynamoDB\n* **[Batch processing](https://docs.powertools.aws.dev/lambda/python/latest/utilities/batch/)** - Handle partial failures for AWS SQS batch processing\n* **[Typing](https://docs.powertools.aws.dev/lambda/python/latest/utilities/typing/)** - Static typing classes to speedup development in your IDE\n* **[Validation](https://docs.powertools.aws.dev/lambda/python/latest/utilities/validation/)** - JSON Schema validator for inbound events and responses\n* **[Event source data classes](https://docs.powertools.aws.dev/lambda/python/latest/utilities/data_classes/)** - Data classes describing the schema of common Lambda event triggers\n* **[Parser](https://docs.powertools.aws.dev/lambda/python/latest/utilities/parser/)** - Data parsing and deep validation using Pydantic\n* **[Idempotency](https://docs.powertools.aws.dev/lambda/python/latest/utilities/idempotency/)** - Convert your Lambda functions into idempotent operations which are safe to retry\n* **[Data Masking](https://docs.powertools.aws.dev/lambda/python/latest/utilities/data_masking/)** - Protect confidential data with easy removal or encryption\n* **[Feature Flags](https://docs.powertools.aws.dev/lambda/python/latest/utilities/feature_flags/)** - A simple rule engine to evaluate when one or multiple features should be enabled depending on the input\n* **[Streaming](https://docs.powertools.aws.dev/lambda/python/latest/utilities/streaming/)** - Streams datasets larger than the available memory as streaming data.\n\n### Installation\n\nWith [pip](https://pip.pypa.io/en/latest/index.html) installed, run: ``pip install aws-lambda-powertools``\n\n## Tutorial and Examples\n\n* [Tutorial](https://docs.powertools.aws.dev/lambda/python/latest/tutorial)\n* [Serverless Shopping cart](https://github.com/aws-samples/aws-serverless-shopping-cart)\n* [Serverless Airline](https://github.com/aws-samples/aws-serverless-airline-booking)\n* [Serverless E-commerce platform](https://github.com/aws-samples/aws-serverless-ecommerce-platform)\n* [Serverless GraphQL Nanny Booking Api](https://github.com/trey-rosius/babysitter_api)\n\n## How to support Powertools for AWS Lambda (Python)?\n\n### Becoming a reference customer\n\nKnowing which companies are using this library is important to help prioritize the project internally. If your company is using Powertools for AWS Lambda (Python), you can request to have your name and logo added to the README file by raising a [Support Powertools for AWS Lambda (Python) (become a reference)](https://github.com/aws-powertools/powertools-lambda-python/issues/new?assignees=&labels=customer-reference&template=support_powertools.yml&title=%5BSupport+Lambda+Powertools%5D%3A+%3Cyour+organization+name%3E) issue.\n\nThe following companies, among others, use Powertools:\n\n* [Alma Media](https://www.almamedia.fi/en/)\n* [Banxware](https://www.banxware.com/)\n* [Brsk](https://www.brsk.co.uk/)\n* [BusPatrol](https://buspatrol.com/)\n* [Capital One](https://www.capitalone.com/)\n* [Caylent](https://caylent.com/)\n* [CHS Inc.](https://www.chsinc.com/)\n* [CPQi (Exadel Financial Services)](https://cpqi.com/)\n* [CloudZero](https://www.cloudzero.com/)\n* [CyberArk](https://www.cyberark.com/)\n* [Flyweight](https://flyweight.io/)\n* [globaldatanet](https://globaldatanet.com/)\n* [Guild](https://guild.com/)\n* [IMS](https://ims.tech/)\n* [Instil](https://instil.co/)\n* [Jit Security](https://www.jit.io/)\n* [LocalStack](https://www.localstack.cloud/)\n* [Propellor.ai](https://www.propellor.ai/)\n* [Pushpay](https://pushpay.com/)\n* [Recast](https://getrecast.com/)\n* [TopSport](https://www.topsport.com.au/)\n* [Transformity](https://transformity.tech/)\n* [Trek10](https://www.trek10.com/)\n* [Vertex Pharmaceuticals](https://www.vrtx.com/)\n\n### Sharing your work\n\nShare what you did with Powertools for AWS Lambda (Python) 💞💞. Blog post, workshops, presentation, sample apps and others. Check out what the community has already shared about Powertools for AWS Lambda (Python) [here](https://docs.powertools.aws.dev/lambda/python/latest/we_made_this/).\n\n### Using Lambda Layer or SAR\n\nThis helps us understand who uses Powertools for AWS Lambda (Python) in a non-intrusive way, and helps us gain future investments for other Powertools for AWS Lambda languages. When [using Layers](https://docs.powertools.aws.dev/lambda/python/latest/#lambda-layer), you can add Powertools for AWS Lambda (Python) as a dev dependency (or as part of your virtual env) to not impact the development process.\n\n## Credits\n\n* Structured logging initial implementation from [aws-lambda-logging](https://gitlab.com/hadrien/aws_lambda_logging)\n* Powertools for AWS Lambda (Python) idea [DAZN Powertools](https://github.com/getndazn/dazn-lambda-powertools/)\n\n## Connect\n\n* **Powertools for AWS Lambda on Discord**: `#python` - **[Invite link](https://discord.gg/B8zZKbbyET)**\n* **Email**: <aws-powertools-maintainers@amazon.com>\n\n## Security disclosures\n\nIf you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions [here](https://aws.amazon.com/security/vulnerability-reporting/) or [email AWS security directly](mailto:aws-security@amazon.com).\n\n## License\n\nThis library is licensed under the MIT-0 License. See the LICENSE file.\n',
73
73
  'author': 'Amazon Web Services',
74
74
  'author_email': 'None',
75
75
  'maintainer': 'None',