aws-lambda-powertools 3.0.0.dev9__tar.gz → 3.0.0.dev11__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 (248) hide show
  1. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/PKG-INFO +1 -1
  2. aws_lambda_powertools-3.0.0.dev11/aws_lambda_powertools/event_handler/openapi/constants.py +2 -0
  3. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/models.py +4 -5
  4. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/swagger_ui/oauth2.py +1 -1
  5. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/types.py +2 -3
  6. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/shared/version.py +1 -1
  7. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +101 -1
  8. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +57 -1
  9. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/common.py +114 -1
  10. aws_lambda_powertools-3.0.0.dev11/aws_lambda_powertools/utilities/data_classes/shared_functions.py +159 -0
  11. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +1 -3
  12. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/persistence/datarecord.py +21 -0
  13. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/pyproject.toml +1 -1
  14. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/setup.py +1 -1
  15. aws_lambda_powertools-3.0.0.dev9/aws_lambda_powertools/event_handler/openapi/constants.py +0 -6
  16. aws_lambda_powertools-3.0.0.dev9/aws_lambda_powertools/utilities/data_classes/shared_functions.py +0 -18
  17. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/LICENSE +0 -0
  18. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/README.md +0 -0
  19. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/THIRD-PARTY-LICENSES +0 -0
  20. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/__init__.py +0 -0
  21. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/__init__.py +0 -0
  22. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/api_gateway.py +0 -0
  23. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/appsync.py +0 -0
  24. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/bedrock_agent.py +0 -0
  25. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/content_types.py +0 -0
  26. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
  27. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/lambda_function_url.py +0 -0
  28. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/middlewares/__init__.py +0 -0
  29. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/middlewares/base.py +0 -0
  30. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/middlewares/openapi_validation.py +0 -0
  31. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/middlewares/schema_validation.py +0 -0
  32. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/__init__.py +0 -0
  33. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/compat.py +0 -0
  34. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/dependant.py +0 -0
  35. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/encoders.py +0 -0
  36. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/exceptions.py +0 -0
  37. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/params.py +0 -0
  38. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/pydantic_loader.py +0 -0
  39. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/swagger_ui/__init__.py +0 -0
  40. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/swagger_ui/html.py +0 -0
  41. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui-bundle.min.js +0 -0
  42. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui.min.css +0 -0
  43. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/router.py +0 -0
  44. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/types.py +0 -0
  45. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/util.py +0 -0
  46. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/event_handler/vpc_lattice.py +0 -0
  47. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/exceptions/__init__.py +0 -0
  48. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/logging/__init__.py +0 -0
  49. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/logging/constants.py +0 -0
  50. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
  51. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/logging/exceptions.py +0 -0
  52. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/logging/filters.py +0 -0
  53. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/logging/formatter.py +0 -0
  54. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
  55. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/logging/formatters/datadog.py +0 -0
  56. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/logging/lambda_context.py +0 -0
  57. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/logging/logger.py +0 -0
  58. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/logging/types.py +0 -0
  59. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/logging/utils.py +0 -0
  60. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/__init__.py +0 -0
  61. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/base.py +0 -0
  62. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/exceptions.py +0 -0
  63. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/functions.py +0 -0
  64. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/metric.py +0 -0
  65. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/metrics.py +0 -0
  66. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/__init__.py +0 -0
  67. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/base.py +0 -0
  68. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py +0 -0
  69. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +0 -0
  70. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py +0 -0
  71. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py +0 -0
  72. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py +0 -0
  73. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py +0 -0
  74. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/cold_start.py +0 -0
  75. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/datadog/__init__.py +0 -0
  76. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/datadog/datadog.py +0 -0
  77. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/datadog/metrics.py +0 -0
  78. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/provider/datadog/warnings.py +0 -0
  79. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/metrics/types.py +0 -0
  80. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/middleware_factory/__init__.py +0 -0
  81. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
  82. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
  83. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/package_logger.py +0 -0
  84. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/py.typed +0 -0
  85. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/shared/__init__.py +0 -0
  86. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/shared/cache_dict.py +0 -0
  87. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/shared/constants.py +0 -0
  88. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/shared/cookies.py +0 -0
  89. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/shared/dynamodb_deserializer.py +0 -0
  90. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/shared/functions.py +0 -0
  91. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
  92. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/shared/json_encoder.py +0 -0
  93. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/shared/lazy_import.py +0 -0
  94. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/shared/types.py +0 -0
  95. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/shared/user_agent.py +0 -0
  96. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/tracing/__init__.py +0 -0
  97. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/tracing/base.py +0 -0
  98. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/tracing/extensions.py +0 -0
  99. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/tracing/tracer.py +0 -0
  100. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/__init__.py +0 -0
  101. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
  102. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/batch/base.py +0 -0
  103. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/batch/decorators.py +0 -0
  104. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
  105. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +0 -0
  106. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/batch/types.py +0 -0
  107. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/__init__.py +0 -0
  108. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
  109. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
  110. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
  111. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/appsync/__init__.py +0 -0
  112. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
  113. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
  114. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +0 -0
  115. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +0 -0
  116. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py +0 -0
  117. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
  118. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
  119. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py +0 -0
  120. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -0
  121. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
  122. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
  123. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +0 -0
  124. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
  125. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
  126. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +0 -0
  127. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -0
  128. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
  129. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
  130. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
  131. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +0 -0
  132. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
  133. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
  134. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py +0 -0
  135. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
  136. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
  137. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
  138. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_masking/__init__.py +0 -0
  139. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_masking/base.py +0 -0
  140. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_masking/constants.py +0 -0
  141. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_masking/exceptions.py +0 -0
  142. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_masking/provider/__init__.py +0 -0
  143. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_masking/provider/base.py +0 -0
  144. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_masking/provider/kms/__init__.py +0 -0
  145. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/data_masking/provider/kms/aws_encryption_sdk.py +0 -0
  146. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
  147. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +0 -0
  148. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/feature_flags/base.py +0 -0
  149. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/feature_flags/comparators.py +0 -0
  150. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/feature_flags/constants.py +0 -0
  151. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
  152. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +0 -0
  153. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
  154. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/feature_flags/types.py +0 -0
  155. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
  156. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/base.py +0 -0
  157. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
  158. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
  159. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/hook.py +0 -0
  160. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/idempotency.py +0 -0
  161. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/persistence/__init__.py +0 -0
  162. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +0 -0
  163. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +0 -0
  164. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/persistence/redis.py +0 -0
  165. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/serialization/__init__.py +0 -0
  166. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/serialization/base.py +0 -0
  167. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +0 -0
  168. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -0
  169. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/serialization/no_op.py +0 -0
  170. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -0
  171. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +0 -0
  172. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
  173. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
  174. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
  175. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parameters/base.py +0 -0
  176. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parameters/constants.py +0 -0
  177. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
  178. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
  179. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
  180. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parameters/ssm.py +0 -0
  181. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parameters/types.py +0 -0
  182. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/__init__.py +0 -0
  183. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +0 -0
  184. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
  185. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
  186. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
  187. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/bedrock_agent.py +0 -0
  188. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
  189. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
  190. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
  191. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
  192. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
  193. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
  194. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
  195. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
  196. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
  197. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py +0 -0
  198. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py +0 -0
  199. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
  200. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/functions.py +0 -0
  201. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/__init__.py +0 -0
  202. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
  203. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
  204. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
  205. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/bedrock_agent.py +0 -0
  206. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +0 -0
  207. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +0 -0
  208. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +0 -0
  209. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
  210. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/kafka.py +0 -0
  211. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
  212. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
  213. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
  214. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
  215. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
  216. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py +0 -0
  217. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
  218. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
  219. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
  220. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
  221. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
  222. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/vpc_lattice.py +0 -0
  223. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/models/vpc_latticev2.py +0 -0
  224. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/parser.py +0 -0
  225. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/parser/types.py +0 -0
  226. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/serialization.py +0 -0
  227. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/streaming/__init__.py +0 -0
  228. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +0 -0
  229. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
  230. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/streaming/constants.py +0 -0
  231. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/streaming/s3_object.py +0 -0
  232. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
  233. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
  234. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
  235. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
  236. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
  237. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/streaming/types.py +0 -0
  238. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/typing/__init__.py +0 -0
  239. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
  240. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
  241. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
  242. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
  243. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
  244. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/validation/base.py +0 -0
  245. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
  246. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/validation/exceptions.py +0 -0
  247. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/utilities/validation/validator.py +0 -0
  248. {aws_lambda_powertools-3.0.0.dev9 → aws_lambda_powertools-3.0.0.dev11}/aws_lambda_powertools/warnings/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aws-lambda-powertools
3
- Version: 3.0.0.dev9
3
+ Version: 3.0.0.dev11
4
4
  Summary: Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.
5
5
  Home-page: https://github.com/aws-powertools/powertools-lambda-python
6
6
  License: MIT
@@ -0,0 +1,2 @@
1
+ DEFAULT_API_VERSION = "1.0.0"
2
+ DEFAULT_OPENAPI_VERSION = "3.1.0"
@@ -2,14 +2,13 @@
2
2
  from enum import Enum
3
3
  from typing import Any, Dict, List, Literal, Optional, Set, Union
4
4
 
5
- from pydantic import AnyUrl, BaseModel, Field
5
+ from pydantic import AnyUrl, BaseModel, ConfigDict, Field
6
6
  from typing_extensions import Annotated
7
7
 
8
8
  from aws_lambda_powertools.event_handler.openapi.compat import model_rebuild
9
- from aws_lambda_powertools.event_handler.openapi.constants import (
10
- MODEL_CONFIG_ALLOW,
11
- MODEL_CONFIG_IGNORE,
12
- )
9
+
10
+ MODEL_CONFIG_ALLOW = ConfigDict(extra="allow")
11
+ MODEL_CONFIG_IGNORE = ConfigDict(extra="ignore")
13
12
 
14
13
  """
15
14
  The code defines Pydantic models for the various OpenAPI objects like OpenAPI, PathItem, Operation, Parameter etc.
@@ -4,7 +4,7 @@ from typing import Dict, Optional, Sequence
4
4
 
5
5
  from pydantic import BaseModel, Field, field_validator
6
6
 
7
- from aws_lambda_powertools.event_handler.openapi.constants import (
7
+ from aws_lambda_powertools.event_handler.openapi.models import (
8
8
  MODEL_CONFIG_ALLOW,
9
9
  )
10
10
  from aws_lambda_powertools.shared.functions import powertools_dev_is_set
@@ -4,14 +4,13 @@ import types
4
4
  from enum import Enum
5
5
  from typing import TYPE_CHECKING, Any, Callable, Dict, Set, Type, TypedDict, Union
6
6
 
7
- from pydantic import BaseModel
8
-
9
7
  if TYPE_CHECKING:
8
+ from pydantic import BaseModel # noqa: F401
10
9
  from typing_extensions import NotRequired
11
10
 
12
11
  CacheKey = Union[Callable[..., Any], None]
13
12
  IncEx = Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any]]
14
- TypeModelOrEnum = Union[Type[BaseModel], Type[Enum]]
13
+ TypeModelOrEnum = Union[Type["BaseModel"], Type[Enum]]
15
14
  ModelNameMap = Dict[TypeModelOrEnum, str]
16
15
  UnionType = getattr(types, "UnionType", Union)
17
16
 
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "3.0.0.dev9"
3
+ VERSION = "3.0.0.dev11"
@@ -2,7 +2,10 @@ from __future__ import annotations
2
2
 
3
3
  import enum
4
4
  import re
5
- from typing import Any
5
+ import warnings
6
+ from typing import Any, overload
7
+
8
+ from typing_extensions import deprecated
6
9
 
7
10
  from aws_lambda_powertools.utilities.data_classes.common import (
8
11
  BaseRequestContext,
@@ -10,6 +13,10 @@ from aws_lambda_powertools.utilities.data_classes.common import (
10
13
  CaseInsensitiveDict,
11
14
  DictWrapper,
12
15
  )
16
+ from aws_lambda_powertools.utilities.data_classes.shared_functions import (
17
+ get_header_value,
18
+ )
19
+ from aws_lambda_powertools.warnings import PowertoolsDeprecationWarning
13
20
 
14
21
 
15
22
  class APIGatewayRouteArn:
@@ -162,6 +169,55 @@ class APIGatewayAuthorizerRequestEvent(DictWrapper):
162
169
  def request_context(self) -> BaseRequestContext:
163
170
  return BaseRequestContext(self._data)
164
171
 
172
+ @overload
173
+ def get_header_value(
174
+ self,
175
+ name: str,
176
+ default_value: str,
177
+ case_sensitive: bool = False,
178
+ ) -> str: ...
179
+
180
+ @overload
181
+ def get_header_value(
182
+ self,
183
+ name: str,
184
+ default_value: str | None = None,
185
+ case_sensitive: bool = False,
186
+ ) -> str | None: ...
187
+
188
+ @deprecated(
189
+ "`get_header_value` function is deprecated; Access headers directly using event.headers.get('HeaderName')",
190
+ category=None,
191
+ )
192
+ def get_header_value(
193
+ self,
194
+ name: str,
195
+ default_value: str | None = None,
196
+ case_sensitive: bool = False,
197
+ ) -> str | None:
198
+ """Get header value by name
199
+ Parameters
200
+ ----------
201
+ name: str
202
+ Header name
203
+ default_value: str, optional
204
+ Default value if no value was found by name
205
+ case_sensitive: bool
206
+ Whether to use a case-sensitive look up
207
+ Returns
208
+ -------
209
+ str, optional
210
+ Header value
211
+ """
212
+ warnings.warn(
213
+ "The `get_header_value` function is deprecated in V3 and the `case_sensitive` parameter "
214
+ "no longer has any effect. This function will be removed in the next major version. "
215
+ "Instead, access headers directly using event.headers.get('HeaderName'), which is case insensitive.",
216
+ category=PowertoolsDeprecationWarning,
217
+ stacklevel=2,
218
+ )
219
+ return get_header_value(self.headers, name, default_value, case_sensitive)
220
+
165
221
 
166
222
  class APIGatewayAuthorizerEventV2(DictWrapper):
167
223
  """API Gateway Authorizer Event Format 2.0
@@ -244,6 +300,50 @@ class APIGatewayAuthorizerEventV2(DictWrapper):
244
300
  def stage_variables(self) -> dict[str, str]:
245
301
  return self.get("stageVariables") or {}
246
302
 
303
+ @overload
304
+ def get_header_value(self, name: str, default_value: str, case_sensitive: bool = False) -> str: ...
305
+
306
+ @overload
307
+ def get_header_value(
308
+ self,
309
+ name: str,
310
+ default_value: str | None = None,
311
+ case_sensitive: bool = False,
312
+ ) -> str | None: ...
313
+
314
+ @deprecated(
315
+ "`get_header_value` function is deprecated; Access headers directly using event.headers.get('HeaderName')",
316
+ category=None,
317
+ )
318
+ def get_header_value(
319
+ self,
320
+ name: str,
321
+ default_value: str | None = None,
322
+ case_sensitive: bool = False,
323
+ ) -> str | None:
324
+ """Get header value by name
325
+ Parameters
326
+ ----------
327
+ name: str
328
+ Header name
329
+ default_value: str, optional
330
+ Default value if no value was found by name
331
+ case_sensitive: bool
332
+ Whether to use a case-sensitive look up
333
+ Returns
334
+ -------
335
+ str, optional
336
+ Header value
337
+ """
338
+ warnings.warn(
339
+ "The `get_header_value` function is deprecated in V3 and the `case_sensitive` parameter "
340
+ "no longer has any effect. This function will be removed in the next major version. "
341
+ "Instead, access headers directly using event.headers.get('HeaderName'), which is case insensitive.",
342
+ category=PowertoolsDeprecationWarning,
343
+ stacklevel=2,
344
+ )
345
+ return get_header_value(self.headers, name, default_value, case_sensitive)
346
+
247
347
 
248
348
  class APIGatewayAuthorizerResponseV2:
249
349
  """Api Gateway HTTP API V2 payload authorizer simple response helper
@@ -1,8 +1,15 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import Any
3
+ import warnings
4
+ from typing import Any, overload
5
+
6
+ from typing_extensions import deprecated
4
7
 
5
8
  from aws_lambda_powertools.utilities.data_classes.common import CaseInsensitiveDict, DictWrapper
9
+ from aws_lambda_powertools.utilities.data_classes.shared_functions import (
10
+ get_header_value,
11
+ )
12
+ from aws_lambda_powertools.warnings import PowertoolsDeprecationWarning
6
13
 
7
14
 
8
15
  def get_identity_object(identity: dict | None) -> Any:
@@ -212,3 +219,52 @@ class AppSyncResolverEvent(DictWrapper):
212
219
  stash to pass arbitrary data across request and response mapping templates, and across functions in
213
220
  a pipeline resolver."""
214
221
  return self.get("stash") or {}
222
+
223
+ @overload
224
+ def get_header_value(
225
+ self,
226
+ name: str,
227
+ default_value: str,
228
+ case_sensitive: bool = False,
229
+ ) -> str: ...
230
+
231
+ @overload
232
+ def get_header_value(
233
+ self,
234
+ name: str,
235
+ default_value: str | None = None,
236
+ case_sensitive: bool = False,
237
+ ) -> str | None: ...
238
+
239
+ @deprecated(
240
+ "`get_header_value` function is deprecated; Access headers directly using event.headers.get('HeaderName')",
241
+ category=None,
242
+ )
243
+ def get_header_value(
244
+ self,
245
+ name: str,
246
+ default_value: str | None = None,
247
+ case_sensitive: bool = False,
248
+ ) -> str | None:
249
+ """Get header value by name
250
+ Parameters
251
+ ----------
252
+ name: str
253
+ Header name
254
+ default_value: str, optional
255
+ Default value if no value was found by name
256
+ case_sensitive: bool
257
+ Whether to use a case-sensitive look up
258
+ Returns
259
+ -------
260
+ str, optional
261
+ Header value
262
+ """
263
+ warnings.warn(
264
+ "The `get_header_value` function is deprecated in V3 and the `case_sensitive` parameter "
265
+ "no longer has any effect. This function will be removed in the next major version. "
266
+ "Instead, access headers directly using event.headers.get('HeaderName'), which is case insensitive.",
267
+ category=PowertoolsDeprecationWarning,
268
+ stacklevel=2,
269
+ )
270
+ return get_header_value(self.request_headers, name, default_value, case_sensitive)
@@ -2,12 +2,23 @@ from __future__ import annotations
2
2
 
3
3
  import base64
4
4
  import json
5
+ import warnings
5
6
  from functools import cached_property
6
- from typing import TYPE_CHECKING, Any, Callable, Iterator, Mapping
7
+ from typing import TYPE_CHECKING, Any, Callable, Iterator, Mapping, overload
8
+
9
+ from typing_extensions import deprecated
10
+
11
+ from aws_lambda_powertools.warnings import PowertoolsDeprecationWarning
7
12
 
8
13
  if TYPE_CHECKING:
9
14
  from aws_lambda_powertools.shared.headers_serializer import BaseHeadersSerializer
10
15
 
16
+ from aws_lambda_powertools.utilities.data_classes.shared_functions import (
17
+ get_header_value,
18
+ get_multi_value_query_string_values,
19
+ get_query_string_value,
20
+ )
21
+
11
22
 
12
23
  class CaseInsensitiveDict(dict):
13
24
  """Case insensitive dict implementation. Assumes string keys only."""
@@ -208,6 +219,108 @@ class BaseProxyEvent(DictWrapper):
208
219
  """The HTTP method used. Valid values include: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and PUT."""
209
220
  return self["httpMethod"]
210
221
 
222
+ @overload
223
+ def get_query_string_value(self, name: str, default_value: str) -> str: ...
224
+
225
+ @overload
226
+ def get_query_string_value(self, name: str, default_value: str | None = None) -> str | None: ...
227
+
228
+ def get_query_string_value(self, name: str, default_value: str | None = None) -> str | None:
229
+ """Get query string value by name
230
+ Parameters
231
+ ----------
232
+ name: str
233
+ Query string parameter name
234
+ default_value: str, optional
235
+ Default value if no value was found by name
236
+ Returns
237
+ -------
238
+ str, optional
239
+ Query string parameter value
240
+ """
241
+ return get_query_string_value(
242
+ query_string_parameters=self.query_string_parameters,
243
+ name=name,
244
+ default_value=default_value,
245
+ )
246
+
247
+ def get_multi_value_query_string_values(
248
+ self,
249
+ name: str,
250
+ default_values: list[str] | None = None,
251
+ ) -> list[str]:
252
+ """Get multi-value query string parameter values by name
253
+ Parameters
254
+ ----------
255
+ name: str
256
+ Multi-Value query string parameter name
257
+ default_values: List[str], optional
258
+ Default values is no values are found by name
259
+ Returns
260
+ -------
261
+ List[str], optional
262
+ List of query string values
263
+ """
264
+ return get_multi_value_query_string_values(
265
+ multi_value_query_string_parameters=self.multi_value_query_string_parameters,
266
+ name=name,
267
+ default_values=default_values,
268
+ )
269
+
270
+ @overload
271
+ def get_header_value(
272
+ self,
273
+ name: str,
274
+ default_value: str,
275
+ case_sensitive: bool = False,
276
+ ) -> str: ...
277
+
278
+ @overload
279
+ def get_header_value(
280
+ self,
281
+ name: str,
282
+ default_value: str | None = None,
283
+ case_sensitive: bool = False,
284
+ ) -> str | None: ...
285
+
286
+ @deprecated(
287
+ "`get_header_value` function is deprecated; Access headers directly using event.headers.get('HeaderName')",
288
+ category=None,
289
+ )
290
+ def get_header_value(
291
+ self,
292
+ name: str,
293
+ default_value: str | None = None,
294
+ case_sensitive: bool = False,
295
+ ) -> str | None:
296
+ """Get header value by name
297
+ Parameters
298
+ ----------
299
+ name: str
300
+ Header name
301
+ default_value: str, optional
302
+ Default value if no value was found by name
303
+ case_sensitive: bool
304
+ Whether to use a case-sensitive look up. By default we make a case-insensitive lookup.
305
+ Returns
306
+ -------
307
+ str, optional
308
+ Header value
309
+ """
310
+ warnings.warn(
311
+ "The `get_header_value` function is deprecated in V3 and the `case_sensitive` parameter "
312
+ "no longer has any effect. This function will be removed in the next major version. "
313
+ "Instead, access headers directly using event.headers.get('HeaderName'), which is case insensitive.",
314
+ category=PowertoolsDeprecationWarning,
315
+ stacklevel=2,
316
+ )
317
+ return get_header_value(
318
+ headers=self.headers,
319
+ name=name,
320
+ default_value=default_value,
321
+ case_sensitive=case_sensitive,
322
+ )
323
+
211
324
  def header_serializer(self) -> BaseHeadersSerializer:
212
325
  raise NotImplementedError()
213
326
 
@@ -0,0 +1,159 @@
1
+ from __future__ import annotations
2
+
3
+ import base64
4
+ import warnings
5
+ from typing import Any, overload
6
+
7
+ from typing_extensions import deprecated
8
+
9
+ from aws_lambda_powertools.warnings import PowertoolsDeprecationWarning
10
+
11
+
12
+ def base64_decode(value: str) -> str:
13
+ """
14
+ Decodes a Base64-encoded string and returns the decoded value.
15
+
16
+ Parameters
17
+ ----------
18
+ value: str
19
+ The Base64-encoded string to decode.
20
+
21
+ Returns
22
+ -------
23
+ str
24
+ The decoded string value.
25
+ """
26
+ return base64.b64decode(value).decode("UTF-8")
27
+
28
+
29
+ @overload
30
+ def get_header_value(
31
+ headers: dict[str, Any],
32
+ name: str,
33
+ default_value: str,
34
+ case_sensitive: bool = False,
35
+ ) -> str: ...
36
+
37
+
38
+ @overload
39
+ def get_header_value(
40
+ headers: dict[str, Any],
41
+ name: str,
42
+ default_value: str | None = None,
43
+ case_sensitive: bool = False,
44
+ ) -> str | None: ...
45
+
46
+
47
+ @deprecated(
48
+ "`get_header_value` function is deprecated; Access headers directly using event.headers.get('HeaderName')",
49
+ category=None,
50
+ )
51
+ def get_header_value(
52
+ headers: dict[str, Any],
53
+ name: str,
54
+ default_value: str | None = None,
55
+ case_sensitive: bool = False,
56
+ ) -> str | None:
57
+ """
58
+ Get the value of a header by its name.
59
+ Parameters
60
+ ----------
61
+ headers: Dict[str, str]
62
+ The dictionary of headers.
63
+ name: str
64
+ The name of the header to retrieve.
65
+ default_value: str, optional
66
+ The default value to return if the header is not found. Default is None.
67
+ case_sensitive: bool, optional
68
+ Indicates whether the header name should be case-sensitive. Default is False.
69
+ Returns
70
+ -------
71
+ str, optional
72
+ The value of the header if found, otherwise the default value or None.
73
+ """
74
+
75
+ warnings.warn(
76
+ "The `get_header_value` function is deprecated in V3 and the `case_sensitive` parameter "
77
+ "no longer has any effect. This function will be removed in the next major version. "
78
+ "Instead, access headers directly using event.headers.get('HeaderName'), which is case insensitive.",
79
+ category=PowertoolsDeprecationWarning,
80
+ stacklevel=2,
81
+ )
82
+
83
+ # If headers is NoneType, return default value
84
+ if not headers:
85
+ return default_value
86
+
87
+ if case_sensitive:
88
+ return headers.get(name, default_value)
89
+ name_lower = name.lower()
90
+
91
+ return next(
92
+ # Iterate over the dict and do a case-insensitive key comparison
93
+ (value for key, value in headers.items() if key.lower() == name_lower),
94
+ # Default value is returned if no matches was found
95
+ default_value,
96
+ )
97
+
98
+
99
+ @overload
100
+ def get_query_string_value(
101
+ query_string_parameters: dict[str, str] | None,
102
+ name: str,
103
+ default_value: str,
104
+ ) -> str: ...
105
+
106
+
107
+ @overload
108
+ def get_query_string_value(
109
+ query_string_parameters: dict[str, str] | None,
110
+ name: str,
111
+ default_value: str | None = None,
112
+ ) -> str | None: ...
113
+
114
+
115
+ def get_query_string_value(
116
+ query_string_parameters: dict[str, str] | None,
117
+ name: str,
118
+ default_value: str | None = None,
119
+ ) -> str | None:
120
+ """
121
+ Retrieves the value of a query string parameter specified by the given name.
122
+ Parameters
123
+ ----------
124
+ name: str
125
+ The name of the query string parameter to retrieve.
126
+ default_value: str, optional
127
+ The default value to return if the parameter is not found. Defaults to None.
128
+ Returns
129
+ -------
130
+ str. optional
131
+ The value of the query string parameter if found, or the default value if not found.
132
+ """
133
+ params = query_string_parameters
134
+ return default_value if params is None else params.get(name, default_value)
135
+
136
+
137
+ def get_multi_value_query_string_values(
138
+ multi_value_query_string_parameters: dict[str, list[str]] | None,
139
+ name: str,
140
+ default_values: list[str] | None = None,
141
+ ) -> list[str]:
142
+ """
143
+ Retrieves the values of a multi-value string parameters specified by the given name.
144
+ Parameters
145
+ ----------
146
+ name: str
147
+ The name of the query string parameter to retrieve.
148
+ default_value: list[str], optional
149
+ The default value to return if the parameter is not found. Defaults to None.
150
+ Returns
151
+ -------
152
+ List[str]. optional
153
+ The values of the query string parameter if found, or the default values if not found.
154
+ """
155
+
156
+ default = default_values or []
157
+ params = multi_value_query_string_parameters or {}
158
+
159
+ return params.get(name) or default
@@ -35,9 +35,7 @@ class VPCLatticeEventBase(BaseProxyEvent):
35
35
  def decoded_body(self) -> str:
36
36
  """Dynamically base64 decode body as a str"""
37
37
  body: str = self["body"]
38
- if self.is_base64_encoded:
39
- return base64_decode(body)
40
- return body
38
+ return base64_decode(body) if self.is_base64_encoded else body
41
39
 
42
40
  @property
43
41
  def method(self) -> str:
@@ -92,3 +92,24 @@ class DataRecord:
92
92
  previous response data deserialized
93
93
  """
94
94
  return json.loads(self.response_data) if self.response_data else None
95
+
96
+ def get_expiration_datetime(self) -> datetime.datetime | None:
97
+ """
98
+ Converts the expiry timestamp to a datetime object.
99
+
100
+ This method checks if an expiry timestamp exists and converts it to a
101
+ datetime object. If no timestamp is present, it returns None.
102
+
103
+ Returns:
104
+ -------
105
+ datetime.datetime | None
106
+ A datetime object representing the expiration time, or None if no expiry timestamp is set.
107
+
108
+ Note:
109
+ ----
110
+ The returned datetime object is timezone-naive and assumes the timestamp
111
+ is in the system's local timezone. Lambda default timezone is UTC.
112
+ """
113
+ if self.expiry_timestamp:
114
+ return datetime.datetime.fromtimestamp(int(self.expiry_timestamp))
115
+ return None
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "aws_lambda_powertools"
3
- version = "3.0.0.dev9"
3
+ version = "3.0.0.dev11"
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"]
@@ -62,7 +62,7 @@ extras_require = \
62
62
 
63
63
  setup_kwargs = {
64
64
  'name': 'aws-lambda-powertools',
65
- 'version': '3.0.0.dev9',
65
+ 'version': '3.0.0.dev11',
66
66
  'description': 'Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.',
67
67
  '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.8|%203.9|%203.10|%203.11|%203.12&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* [Capital One](https://www.capitalone.com/)\n* [CPQi (Exadel Financial Services)](https://cpqi.com/)\n* [CloudZero](https://www.cloudzero.com/)\n* [CyberArk](https://www.cyberark.com/)\n* [globaldatanet](https://globaldatanet.com/)\n* [IMS](https://ims.tech/)\n* [Jit Security](https://www.jit.io/)\n* [Propellor.ai](https://www.propellor.ai/)\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',
68
68
  'author': 'Amazon Web Services',
@@ -1,6 +0,0 @@
1
- from pydantic import ConfigDict
2
-
3
- DEFAULT_API_VERSION = "1.0.0"
4
- DEFAULT_OPENAPI_VERSION = "3.1.0"
5
- MODEL_CONFIG_ALLOW = ConfigDict(extra="allow")
6
- MODEL_CONFIG_IGNORE = ConfigDict(extra="ignore")
@@ -1,18 +0,0 @@
1
- import base64
2
-
3
-
4
- def base64_decode(value: str) -> str:
5
- """
6
- Decodes a Base64-encoded string and returns the decoded value.
7
-
8
- Parameters
9
- ----------
10
- value: str
11
- The Base64-encoded string to decode.
12
-
13
- Returns
14
- -------
15
- str
16
- The decoded string value.
17
- """
18
- return base64.b64decode(value).decode("UTF-8")