aws-lambda-powertools 3.5.1a3__tar.gz → 3.5.1a5__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 (260) hide show
  1. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/PKG-INFO +1 -1
  2. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/api_gateway.py +10 -2
  3. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/middlewares/base.py +1 -1
  4. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/middlewares/openapi_validation.py +1 -1
  5. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/middlewares/schema_validation.py +1 -1
  6. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/params.py +27 -5
  7. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/swagger_ui/html.py +1 -1
  8. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/logging/__init__.py +1 -2
  9. aws_lambda_powertools-3.5.1a5/aws_lambda_powertools/logging/exceptions.py +6 -0
  10. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/logging/formatter.py +7 -7
  11. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/logging/logger.py +16 -10
  12. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/__init__.py +1 -2
  13. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/base.py +6 -0
  14. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/metrics.py +3 -3
  15. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +1 -1
  16. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/datadog/datadog.py +0 -4
  17. aws_lambda_powertools-3.5.1a5/aws_lambda_powertools/middleware_factory/__init__.py +8 -0
  18. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/shared/version.py +1 -1
  19. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/tracing/__init__.py +1 -2
  20. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/tracing/base.py +6 -0
  21. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/batch/base.py +2 -0
  22. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/batch/decorators.py +4 -5
  23. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +1 -1
  24. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/common.py +6 -0
  25. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_masking/base.py +9 -2
  26. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_masking/provider/base.py +2 -2
  27. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_masking/provider/kms/aws_encryption_sdk.py +16 -16
  28. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +5 -0
  29. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/feature_flags/base.py +2 -1
  30. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/feature_flags/comparators.py +3 -2
  31. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +7 -5
  32. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/base.py +6 -0
  33. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/idempotency.py +12 -12
  34. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +1 -1
  35. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/persistence/redis.py +1 -1
  36. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +7 -1
  37. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parameters/base.py +2 -0
  38. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/__init__.py +1 -2
  39. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/parser.py +7 -0
  40. aws_lambda_powertools-3.5.1a5/aws_lambda_powertools/utilities/streaming/__init__.py +9 -0
  41. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/typing/__init__.py +2 -0
  42. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/pyproject.toml +2 -2
  43. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/setup.py +1 -1
  44. aws_lambda_powertools-3.5.1a3/aws_lambda_powertools/logging/exceptions.py +0 -2
  45. aws_lambda_powertools-3.5.1a3/aws_lambda_powertools/middleware_factory/__init__.py +0 -5
  46. aws_lambda_powertools-3.5.1a3/aws_lambda_powertools/utilities/streaming/__init__.py +0 -3
  47. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/LICENSE +0 -0
  48. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/README.md +0 -0
  49. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/THIRD-PARTY-LICENSES +0 -0
  50. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/__init__.py +0 -0
  51. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/__init__.py +0 -0
  52. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/appsync.py +0 -0
  53. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/bedrock_agent.py +0 -0
  54. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/content_types.py +0 -0
  55. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
  56. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/graphql_appsync/__init__.py +0 -0
  57. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/graphql_appsync/_registry.py +0 -0
  58. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/graphql_appsync/base.py +0 -0
  59. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/graphql_appsync/exceptions.py +0 -0
  60. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/graphql_appsync/router.py +0 -0
  61. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/lambda_function_url.py +0 -0
  62. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/middlewares/__init__.py +0 -0
  63. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/__init__.py +0 -0
  64. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/compat.py +0 -0
  65. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/constants.py +0 -0
  66. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/dependant.py +0 -0
  67. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/encoders.py +0 -0
  68. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/exceptions.py +0 -0
  69. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/models.py +0 -0
  70. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/pydantic_loader.py +0 -0
  71. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/swagger_ui/__init__.py +0 -0
  72. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/swagger_ui/oauth2.py +0 -0
  73. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui-bundle.min.js +0 -0
  74. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui.min.css +0 -0
  75. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/openapi/types.py +0 -0
  76. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/router.py +0 -0
  77. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/types.py +0 -0
  78. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/util.py +0 -0
  79. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/event_handler/vpc_lattice.py +0 -0
  80. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/exceptions/__init__.py +0 -0
  81. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/logging/constants.py +0 -0
  82. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
  83. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/logging/filters.py +0 -0
  84. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
  85. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/logging/formatters/datadog.py +0 -0
  86. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/logging/lambda_context.py +0 -0
  87. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/logging/types.py +0 -0
  88. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/logging/utils.py +0 -0
  89. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/exceptions.py +0 -0
  90. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/functions.py +0 -0
  91. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/metric.py +0 -0
  92. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/__init__.py +0 -0
  93. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/base.py +0 -0
  94. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py +0 -0
  95. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py +0 -0
  96. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py +0 -0
  97. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py +0 -0
  98. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py +0 -0
  99. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/cold_start.py +0 -0
  100. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/datadog/__init__.py +0 -0
  101. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/datadog/metrics.py +0 -0
  102. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/provider/datadog/warnings.py +0 -0
  103. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/metrics/types.py +0 -0
  104. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
  105. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
  106. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/package_logger.py +0 -0
  107. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/py.typed +0 -0
  108. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/shared/__init__.py +0 -0
  109. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/shared/cache_dict.py +0 -0
  110. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/shared/constants.py +0 -0
  111. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/shared/cookies.py +0 -0
  112. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/shared/dynamodb_deserializer.py +0 -0
  113. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/shared/functions.py +0 -0
  114. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
  115. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/shared/json_encoder.py +0 -0
  116. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/shared/lazy_import.py +0 -0
  117. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/shared/types.py +0 -0
  118. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/shared/user_agent.py +0 -0
  119. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/tracing/extensions.py +0 -0
  120. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/tracing/tracer.py +0 -0
  121. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/__init__.py +0 -0
  122. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
  123. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
  124. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/batch/types.py +0 -0
  125. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/__init__.py +0 -0
  126. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
  127. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
  128. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +0 -0
  129. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
  130. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/appsync/__init__.py +0 -0
  131. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
  132. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
  133. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +0 -0
  134. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +0 -0
  135. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +0 -0
  136. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py +0 -0
  137. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
  138. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
  139. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py +0 -0
  140. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/code_deploy_lifecycle_hook_event.py +0 -0
  141. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -0
  142. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
  143. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
  144. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +0 -0
  145. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
  146. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
  147. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +0 -0
  148. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -0
  149. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
  150. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
  151. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
  152. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +0 -0
  153. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
  154. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
  155. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py +0 -0
  156. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
  157. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/shared_functions.py +0 -0
  158. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
  159. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
  160. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/transfer_family_event.py +0 -0
  161. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +0 -0
  162. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_masking/__init__.py +0 -0
  163. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_masking/constants.py +0 -0
  164. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_masking/exceptions.py +0 -0
  165. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_masking/provider/__init__.py +0 -0
  166. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/data_masking/provider/kms/__init__.py +0 -0
  167. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
  168. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/feature_flags/constants.py +0 -0
  169. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
  170. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
  171. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/feature_flags/types.py +0 -0
  172. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
  173. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
  174. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
  175. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/hook.py +0 -0
  176. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/persistence/__init__.py +0 -0
  177. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +0 -0
  178. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/persistence/datarecord.py +0 -0
  179. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/serialization/__init__.py +0 -0
  180. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/serialization/base.py +0 -0
  181. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +0 -0
  182. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -0
  183. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/serialization/functions.py +0 -0
  184. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/serialization/no_op.py +0 -0
  185. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -0
  186. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
  187. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
  188. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
  189. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parameters/constants.py +0 -0
  190. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
  191. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
  192. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
  193. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parameters/ssm.py +0 -0
  194. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parameters/types.py +0 -0
  195. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +0 -0
  196. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
  197. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/apigw_websocket.py +0 -0
  198. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
  199. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
  200. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/bedrock_agent.py +0 -0
  201. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
  202. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
  203. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
  204. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
  205. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
  206. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
  207. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
  208. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
  209. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
  210. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py +0 -0
  211. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py +0 -0
  212. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
  213. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/functions.py +0 -0
  214. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/__init__.py +0 -0
  215. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
  216. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
  217. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/apigw_websocket.py +0 -0
  218. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
  219. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/bedrock_agent.py +0 -0
  220. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +0 -0
  221. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +0 -0
  222. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +0 -0
  223. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
  224. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/kafka.py +0 -0
  225. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
  226. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
  227. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
  228. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
  229. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
  230. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py +0 -0
  231. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
  232. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
  233. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
  234. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
  235. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
  236. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/transfer_family.py +0 -0
  237. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/vpc_lattice.py +0 -0
  238. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/models/vpc_latticev2.py +0 -0
  239. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/parser/types.py +0 -0
  240. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/serialization.py +0 -0
  241. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +0 -0
  242. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
  243. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/streaming/constants.py +0 -0
  244. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/streaming/s3_object.py +0 -0
  245. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
  246. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
  247. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
  248. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
  249. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
  250. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/streaming/types.py +0 -0
  251. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
  252. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
  253. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
  254. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
  255. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
  256. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/validation/base.py +0 -0
  257. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
  258. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/validation/exceptions.py +0 -0
  259. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/aws_lambda_powertools/utilities/validation/validator.py +0 -0
  260. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a5}/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.5.1a3
3
+ Version: 3.5.1a5
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
@@ -313,10 +313,10 @@ class Route:
313
313
  middlewares: list[Callable[..., Response]] | None = None,
314
314
  ):
315
315
  """
316
+ Internally used Route Configuration
316
317
 
317
318
  Parameters
318
319
  ----------
319
-
320
320
  method: str
321
321
  The HTTP method, example "GET"
322
322
  path: str
@@ -908,6 +908,8 @@ class ResponseBuilder(Generic[ResponseEventT]):
908
908
 
909
909
 
910
910
  class BaseRouter(ABC):
911
+ """Base class for Routing"""
912
+
911
913
  current_event: BaseProxyEvent
912
914
  lambda_context: LambdaContext
913
915
  context: dict
@@ -1459,7 +1461,7 @@ def _registered_api_adapter(app: ApiGatewayResolver, next_middleware: Callable[.
1459
1461
 
1460
1462
 
1461
1463
  class ApiGatewayResolver(BaseRouter):
1462
- """API Gateway and ALB proxy resolver
1464
+ """API Gateway, VPC Laticce, Bedrock and ALB proxy resolver
1463
1465
 
1464
1466
  Examples
1465
1467
  --------
@@ -2570,6 +2572,8 @@ class Router(BaseRouter):
2570
2572
 
2571
2573
 
2572
2574
  class APIGatewayRestResolver(ApiGatewayResolver):
2575
+ """Amazon API Gateway REST and HTTP API v1 payload resolver"""
2576
+
2573
2577
  current_event: APIGatewayProxyEvent
2574
2578
 
2575
2579
  def __init__(
@@ -2650,6 +2654,8 @@ class APIGatewayRestResolver(ApiGatewayResolver):
2650
2654
 
2651
2655
 
2652
2656
  class APIGatewayHttpResolver(ApiGatewayResolver):
2657
+ """Amazon API Gateway HTTP API v2 payload resolver"""
2658
+
2653
2659
  current_event: APIGatewayProxyEventV2
2654
2660
 
2655
2661
  def __init__(
@@ -2685,6 +2691,8 @@ class APIGatewayHttpResolver(ApiGatewayResolver):
2685
2691
 
2686
2692
 
2687
2693
  class ALBResolver(ApiGatewayResolver):
2694
+ """Amazon Application Load Balancer (ALB) resolver"""
2695
+
2688
2696
  current_event: ALBEvent
2689
2697
 
2690
2698
  def __init__(
@@ -26,7 +26,7 @@ class BaseMiddlewareHandler(Generic[EventHandlerInstance], ABC):
26
26
  This is the middleware handler function where middleware logic is implemented.
27
27
  The next middleware handler is represented by `next_middleware`, returning a Response object.
28
28
 
29
- Examples
29
+ Example
30
30
  --------
31
31
 
32
32
  **Correlation ID Middleware**
@@ -37,7 +37,7 @@ class OpenAPIValidationMiddleware(BaseMiddlewareHandler):
37
37
  Lambda handler. It also validates the response against the OpenAPI schema defined by the Lambda handler. It
38
38
  should not be used directly, but rather through the `enable_validation` parameter of the `ApiGatewayResolver`.
39
39
 
40
- Examples
40
+ Example
41
41
  --------
42
42
 
43
43
  ```python
@@ -18,7 +18,7 @@ logger = logging.getLogger(__name__)
18
18
  class SchemaValidationMiddleware(BaseMiddlewareHandler):
19
19
  """Middleware to validate API request and response against JSON Schema using the [Validation utility](https://docs.powertools.aws.dev/lambda/python/latest/utilities/validation/).
20
20
 
21
- Examples
21
+ Example
22
22
  --------
23
23
  **Validating incoming event**
24
24
 
@@ -879,8 +879,6 @@ def get_flat_dependant(
879
879
  ----------
880
880
  dependant: Dependant
881
881
  The dependant model to flatten
882
- skip_repeats: bool
883
- If True, child Dependents already visited will be skipped to avoid duplicates
884
882
  visited: list[CacheKey], optional
885
883
  Keeps track of visited Dependents to avoid infinite recursion. Defaults to empty list.
886
884
 
@@ -932,7 +930,12 @@ def analyze_param(
932
930
  ModelField | None
933
931
  The type annotation and the Pydantic field representing the parameter
934
932
  """
935
- field_info, type_annotation = get_field_info_and_type_annotation(annotation, value, is_path_param)
933
+ field_info, type_annotation = get_field_info_and_type_annotation(
934
+ annotation,
935
+ value,
936
+ is_path_param,
937
+ is_response_param,
938
+ )
936
939
 
937
940
  # If the value is a FieldInfo, we use it as the FieldInfo for the parameter
938
941
  if isinstance(value, FieldInfo):
@@ -962,7 +965,12 @@ def analyze_param(
962
965
  return field
963
966
 
964
967
 
965
- def get_field_info_and_type_annotation(annotation, value, is_path_param: bool) -> tuple[FieldInfo | None, Any]:
968
+ def get_field_info_and_type_annotation(
969
+ annotation,
970
+ value,
971
+ is_path_param: bool,
972
+ is_response_param: bool,
973
+ ) -> tuple[FieldInfo | None, Any]:
966
974
  """
967
975
  Get the FieldInfo and type annotation from an annotation and value.
968
976
  """
@@ -976,6 +984,10 @@ def get_field_info_and_type_annotation(annotation, value, is_path_param: bool) -
976
984
  # If the annotation is a Response type, we recursively call this function with the inner type
977
985
  elif get_origin(annotation) is Response:
978
986
  field_info, type_annotation = get_field_info_response_type(annotation, value)
987
+ # If the response param is a tuple with two elements, we use the first element as the type annotation,
988
+ # just like we did in the APIGateway._to_response
989
+ elif is_response_param and get_origin(annotation) is tuple and len(get_args(annotation)) == 2:
990
+ field_info, type_annotation = get_field_info_tuple_type(annotation, value)
979
991
  # If the annotation is not an Annotated type, we use it as the type annotation
980
992
  else:
981
993
  type_annotation = annotation
@@ -983,12 +995,22 @@ def get_field_info_and_type_annotation(annotation, value, is_path_param: bool) -
983
995
  return field_info, type_annotation
984
996
 
985
997
 
998
+ def get_field_info_tuple_type(annotation, value) -> tuple[FieldInfo | None, Any]:
999
+ (inner_type, _) = get_args(annotation)
1000
+
1001
+ # If the inner type is an Annotated type, we need to extract the type annotation and the FieldInfo
1002
+ if get_origin(inner_type) is Annotated:
1003
+ return get_field_info_annotated_type(inner_type, value, False)
1004
+
1005
+ return None, inner_type
1006
+
1007
+
986
1008
  def get_field_info_response_type(annotation, value) -> tuple[FieldInfo | None, Any]:
987
1009
  # Example: get_args(Response[inner_type]) == (inner_type,) # noqa: ERA001
988
1010
  (inner_type,) = get_args(annotation)
989
1011
 
990
1012
  # Recursively resolve the inner type
991
- return get_field_info_and_type_annotation(inner_type, value, False)
1013
+ return get_field_info_and_type_annotation(inner_type, value, False, True)
992
1014
 
993
1015
 
994
1016
  def get_field_info_annotated_type(annotation, value, is_path_param: bool) -> tuple[FieldInfo | None, Any]:
@@ -22,7 +22,7 @@ def generate_swagger_html(
22
22
  spec: str
23
23
  The OpenAPI spec
24
24
  swagger_js: str
25
- Swagger UI JavaScript source code or URL
25
+ Swagger UI JavaScript source code or URL
26
26
  swagger_css: str
27
27
  Swagger UI CSS source code or URL
28
28
  swagger_base_url: str
@@ -1,5 +1,4 @@
1
- """Logging utility
2
- """
1
+ """Logging utility"""
3
2
 
4
3
  from .logger import Logger
5
4
 
@@ -0,0 +1,6 @@
1
+ class InvalidLoggerSamplingRateError(Exception):
2
+ """
3
+ Logger configured with Invalid Sampling value
4
+ """
5
+
6
+ pass
@@ -273,17 +273,17 @@ class LambdaPowertoolsFormatter(BasePowertoolsFormatter):
273
273
  """
274
274
  Context manager to temporarily add logging keys.
275
275
 
276
- Parameters:
276
+ Parameters
277
277
  -----------
278
- **keys: Any
278
+ **additional_keys: Any
279
279
  Key-value pairs to include in the log context during the lifespan of the context manager.
280
280
 
281
- Example:
281
+ Example
282
282
  --------
283
- >>> logger = Logger(service="example_service")
284
- >>> with logger.append_context_keys(user_id="123", operation="process"):
285
- >>> logger.info("Log with context")
286
- >>> logger.info("Log without context")
283
+ logger = Logger(service="example_service")
284
+ with logger.append_context_keys(user_id="123", operation="process"):
285
+ logger.info("Log with context")
286
+ logger.info("Log without context")
287
287
  """
288
288
  # Add keys to the context
289
289
  self.append_keys(**additional_keys)
@@ -1,3 +1,9 @@
1
+ """
2
+ Logger utility
3
+ !!! abstract "Usage Documentation"
4
+ [`Logger`](../../core/logger.md)
5
+ """
6
+
1
7
  from __future__ import annotations
2
8
 
3
9
  import functools
@@ -82,7 +88,7 @@ class Logger:
82
88
  by default "INFO"
83
89
  child: bool, optional
84
90
  create a child Logger named <service>.<caller_file_name>, False by default
85
- sample_rate: float, optional
91
+ sampling_rate: float, optional
86
92
  sample rate for debug calls within execution context defaults to 0.0
87
93
  stream: sys.stdout, optional
88
94
  valid output for a logging stream, by default sys.stdout
@@ -103,7 +109,6 @@ class Logger:
103
109
  use_datetime_directive: bool, optional
104
110
  Interpret `datefmt` as a format string for `datetime.datetime.strftime`, rather than
105
111
  `time.strftime`.
106
-
107
112
  See https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior . This
108
113
  also supports a custom %F directive for milliseconds.
109
114
  use_rfc3339: bool, optional
@@ -116,7 +121,6 @@ class Logger:
116
121
  by default json.loads
117
122
  json_default : Callable, optional
118
123
  function to coerce unserializable values, by default `str()`
119
-
120
124
  Only used when no custom formatter is set
121
125
  utc : bool, optional
122
126
  set logging timestamp to UTC, by default False to continue to use local time as per stdlib
@@ -590,17 +594,19 @@ class Logger:
590
594
  """
591
595
  Context manager to temporarily add logging keys.
592
596
 
593
- Parameters:
597
+ Parameters
594
598
  -----------
595
- **keys: Any
599
+ **additional_keys: Any
596
600
  Key-value pairs to include in the log context during the lifespan of the context manager.
597
601
 
598
- Example:
602
+ Example
599
603
  --------
600
- >>> logger = Logger(service="example_service")
601
- >>> with logger.append_context_keys(user_id="123", operation="process"):
602
- >>> logger.info("Log with context")
603
- >>> logger.info("Log without context")
604
+ **Logging with contextual keys**
605
+
606
+ logger = Logger(service="example_service")
607
+ with logger.append_context_keys(user_id="123", operation="process"):
608
+ logger.info("Log with context")
609
+ logger.info("Log without context")
604
610
  """
605
611
  with self.registered_formatter.append_context_keys(**additional_keys):
606
612
  yield
@@ -1,5 +1,4 @@
1
- """CloudWatch Embedded Metric Format utility
2
- """
1
+ """CloudWatch Embedded Metric Format utility"""
3
2
 
4
3
  from aws_lambda_powertools.metrics.base import MetricResolution, MetricUnit, single_metric
5
4
  from aws_lambda_powertools.metrics.exceptions import (
@@ -1,3 +1,9 @@
1
+ """
2
+ Metrics utility
3
+ !!! abstract "Usage Documentation"
4
+ [`Metrics`](../../core/metrics.md)
5
+ """
6
+
1
7
  from __future__ import annotations
2
8
 
3
9
  import datetime
@@ -1,7 +1,7 @@
1
1
  # NOTE: keeps for compatibility
2
2
  from __future__ import annotations
3
3
 
4
- from typing import TYPE_CHECKING, Any
4
+ from typing import TYPE_CHECKING, Any, Callable
5
5
 
6
6
  from aws_lambda_powertools.metrics.provider.cloudwatch_emf.cloudwatch import AmazonCloudWatchEMFProvider
7
7
 
@@ -149,8 +149,8 @@ class Metrics:
149
149
  capture_cold_start_metric: bool = False,
150
150
  raise_on_empty_metrics: bool = False,
151
151
  default_dimensions: dict[str, str] | None = None,
152
- **kwargs,
153
- ):
152
+ **kwargs: dict[str, Any],
153
+ ) -> Callable[..., Any]:
154
154
  return self.provider.log_metrics(
155
155
  lambda_handler=lambda_handler,
156
156
  capture_cold_start_metric=capture_cold_start_metric,
@@ -330,7 +330,7 @@ class AmazonCloudWatchEMFProvider(BaseProvider):
330
330
  """
331
331
  Set the timestamp for the metric.
332
332
 
333
- Parameters:
333
+ Parameters
334
334
  -----------
335
335
  timestamp: int | datetime.datetime
336
336
  The timestamp to create the metric.
@@ -87,10 +87,6 @@ class DatadogProvider(BaseProvider):
87
87
  Timestamp in int for the metrics, default = time.time()
88
88
  tags: list[str]
89
89
  In format like ["tag:value", "tag2:value2"]
90
- args: Any
91
- extra args will be dropped for compatibility
92
- kwargs: Any
93
- extra kwargs will be converted into tags, e.g., add_metrics(sales=sam) -> tags=['sales:sam']
94
90
 
95
91
  Examples
96
92
  --------
@@ -0,0 +1,8 @@
1
+ """Utilities to enhance middleware
2
+ !!! abstract "Usage Documentation"
3
+ [`Middleware Factory`](../utilities/middleware_factory.md)
4
+ """
5
+
6
+ from .factory import lambda_handler_decorator
7
+
8
+ __all__ = ["lambda_handler_decorator"]
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "3.5.1a3"
3
+ VERSION = "3.5.1a5"
@@ -1,5 +1,4 @@
1
- """Tracing utility
2
- """
1
+ """Tracing utility"""
3
2
 
4
3
  from .extensions import aiohttp_trace_config
5
4
  from .tracer import Tracer
@@ -1,3 +1,9 @@
1
+ """
2
+ Tracing utility
3
+ !!! abstract "Usage Documentation"
4
+ [`Tracer`](../../core/tracer.md)
5
+ """
6
+
1
7
  from __future__ import annotations
2
8
 
3
9
  import abc
@@ -1,5 +1,7 @@
1
1
  """
2
2
  Batch processing utilities
3
+ !!! abstract "Usage Documentation"
4
+ [`Batch processing`](../../utilities/batch.md)
3
5
  """
4
6
 
5
7
  from __future__ import annotations
@@ -51,9 +51,8 @@ def async_batch_processor(
51
51
  processor: AsyncBatchProcessor
52
52
  Batch Processor to handle partial failure cases
53
53
 
54
- Examples
54
+ Example
55
55
  --------
56
- **Processes Lambda's event with a BasePartialProcessor**
57
56
  >>> from aws_lambda_powertools.utilities.batch import async_batch_processor, AsyncBatchProcessor
58
57
  >>> from aws_lambda_powertools.utilities.data_classes.sqs_event import SQSRecord
59
58
  >>>
@@ -119,7 +118,7 @@ def batch_processor(
119
118
  processor: BatchProcessor
120
119
  Batch Processor to handle partial failure cases
121
120
 
122
- Examples
121
+ Example
123
122
  --------
124
123
  **Processes Lambda's event with a BatchProcessor**
125
124
 
@@ -180,7 +179,7 @@ def process_partial_response(
180
179
  result: PartialItemFailureResponse
181
180
  Lambda Partial Batch Response
182
181
 
183
- Examples
182
+ Example
184
183
  --------
185
184
  **Processes Lambda's SQS event**
186
185
 
@@ -244,7 +243,7 @@ def async_process_partial_response(
244
243
  result: PartialItemFailureResponse
245
244
  Lambda Partial Batch Response
246
245
 
247
- Examples
246
+ Example
248
247
  --------
249
248
  **Processes Lambda's SQS event**
250
249
 
@@ -21,7 +21,7 @@ class SqsFifoPartialProcessor(BatchProcessor):
21
21
  Stops processing records when the first record fails. The remaining records are reported as failed items.
22
22
 
23
23
  Example
24
- _______
24
+ -------
25
25
 
26
26
  ## Process batch triggered by a FIFO SQS
27
27
 
@@ -1,3 +1,9 @@
1
+ """
2
+ Base class for Event Source Data Classes
3
+ !!! abstract "Usage Documentation"
4
+ [`Data classes`](../utilities/data_classes.md)
5
+ """
6
+
1
7
  from __future__ import annotations
2
8
 
3
9
  import base64
@@ -1,3 +1,9 @@
1
+ """
2
+ Base class for Data Masking
3
+ !!! abstract "Usage Documentation"
4
+ [`Data masking`](../../utilities/data_masking.md)
5
+ """
6
+
1
7
  from __future__ import annotations
2
8
 
3
9
  import functools
@@ -24,8 +30,9 @@ class DataMasking:
24
30
  The DataMasking class orchestrates erasing, encrypting, and decrypting
25
31
  for the base provider.
26
32
 
27
- Example:
28
- ```
33
+ Example
34
+ -------
35
+ ```python
29
36
  from aws_lambda_powertools.utilities.data_masking.base import DataMasking
30
37
 
31
38
  def lambda_handler(event, context):
@@ -11,9 +11,9 @@ class BaseProvider:
11
11
  """
12
12
  The BaseProvider class serves as an abstract base class for data masking providers.
13
13
 
14
- Examples
14
+ Example
15
15
  --------
16
- ```
16
+ ```python
17
17
  from aws_lambda_powertools.utilities._data_masking.provider import BaseProvider
18
18
  from aws_lambda_powertools.utilities.data_masking import DataMasking
19
19
 
@@ -48,9 +48,9 @@ class AWSEncryptionSDKProvider(BaseProvider):
48
48
  """
49
49
  The AWSEncryptionSDKProvider is used as a provider for the DataMasking class.
50
50
 
51
- Usage
51
+ Example
52
52
  -------
53
- ```
53
+ ```python
54
54
  from aws_lambda_powertools.utilities.data_masking import DataMasking
55
55
  from aws_lambda_powertools.utilities.data_masking.providers.kms.aws_encryption_sdk import (
56
56
  AWSEncryptionSDKProvider,
@@ -142,17 +142,17 @@ class KMSKeyProvider:
142
142
 
143
143
  Parameters
144
144
  -------
145
- data : Any
146
- The data to be encrypted.
147
- provider_options : dict
148
- Additional options for the aws_encryption_sdk.EncryptionSDKClient
149
- **encryption_context : str
150
- Additional keyword arguments collected into a dictionary.
145
+ data: Any
146
+ The data to be encrypted.
147
+ provider_options: dict
148
+ Additional options for the aws_encryption_sdk.EncryptionSDKClient
149
+ **encryption_context: str
150
+ Additional keyword arguments collected into a dictionary.
151
151
 
152
152
  Returns
153
153
  -------
154
- ciphertext : str
155
- The encrypted data, as a base64-encoded string.
154
+ ciphertext: str
155
+ The encrypted data, as a base64-encoded string.
156
156
  """
157
157
  provider_options = provider_options or {}
158
158
  self._validate_encryption_context(encryption_context)
@@ -179,15 +179,15 @@ class KMSKeyProvider:
179
179
 
180
180
  Parameters
181
181
  -------
182
- data : str
183
- The encrypted data, as a base64-encoded string
184
- provider_options
185
- Additional options for the aws_encryption_sdk.EncryptionSDKClient
182
+ data: str
183
+ The encrypted data, as a base64-encoded string
184
+ provider_options
185
+ Additional options for the aws_encryption_sdk.EncryptionSDKClient
186
186
 
187
187
  Returns
188
188
  -------
189
- ciphertext : bytes
190
- The decrypted data in bytes
189
+ ciphertext: bytes
190
+ The decrypted data in bytes
191
191
  """
192
192
  provider_options = provider_options or {}
193
193
  self._validate_encryption_context(encryption_context)
@@ -1,3 +1,8 @@
1
+ """Advanced feature flags utility
2
+ !!! abstract "Usage Documentation"
3
+ [`Feature Flags`](../../utilities/feature_flags.md)
4
+ """
5
+
1
6
  from __future__ import annotations
2
7
 
3
8
  import logging
@@ -28,7 +28,8 @@ class StoreProvider(ABC):
28
28
  dict[str, Any]
29
29
  parsed JSON dictionary
30
30
 
31
- **Example**
31
+ Example
32
+ -------
32
33
 
33
34
  ```python
34
35
  {
@@ -56,6 +56,8 @@ def compare_time_range(context_value: Any, condition_value: dict) -> bool:
56
56
  end_time = current_time.replace(hour=int(end_hour), minute=int(end_min))
57
57
 
58
58
  if int(end_hour) < int(start_hour):
59
+ # In normal circumstances, we need to assert **both** conditions
60
+ """
59
61
  # When the end hour is smaller than start hour, it means we are crossing a day's boundary.
60
62
  # In this case we need to assert that current_time is **either** on one side or the other side of the boundary
61
63
  #
@@ -69,10 +71,9 @@ def compare_time_range(context_value: Any, condition_value: dict) -> bool:
69
71
  # │ │ │
70
72
  # └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
71
73
  # │
72
-
74
+ """
73
75
  return (start_time <= current_time) or (current_time <= end_time)
74
76
  else:
75
- # In normal circumstances, we need to assert **both** conditions
76
77
  return start_time <= current_time <= end_time
77
78
 
78
79
 
@@ -179,7 +179,8 @@ class FeatureFlags:
179
179
  dict[str, dict]
180
180
  parsed JSON dictionary
181
181
 
182
- **Example**
182
+ Example
183
+ -------
183
184
 
184
185
  ```python
185
186
  {
@@ -251,7 +252,7 @@ class FeatureFlags:
251
252
  Can be boolean or any JSON values for non-boolean features.
252
253
 
253
254
 
254
- Examples
255
+ Example
255
256
  --------
256
257
 
257
258
  ```python
@@ -343,7 +344,8 @@ class FeatureFlags:
343
344
  list[str]
344
345
  list of all feature names that either matches context or have True as default
345
346
 
346
- **Example**
347
+ Example
348
+ -------
347
349
 
348
350
  ```python
349
351
  ["premium_features", "my_feature_two", "always_true_feature"]
@@ -400,8 +402,8 @@ class FeatureFlags:
400
402
  exc_class : Exception | list[Exception]
401
403
  One or more exceptions to catch
402
404
 
403
- Examples
404
- --------
405
+ Example
406
+ -------
405
407
 
406
408
  ```python
407
409
  feature_flags = FeatureFlags(store=app_config)
@@ -1,3 +1,9 @@
1
+ """
2
+ Base for Idempotency utility
3
+ !!! abstract "Usage Documentation"
4
+ [`Idempotency`](../../utilities/idempotency.md)
5
+ """
6
+
1
7
  from __future__ import annotations
2
8
 
3
9
  import datetime