aws-lambda-powertools 2.39.0__tar.gz → 2.39.2a0__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 (241) hide show
  1. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/PKG-INFO +1 -1
  2. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/util.py +2 -3
  3. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/shared/version.py +1 -1
  4. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +2 -2
  5. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/validation/base.py +16 -3
  6. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/validation/exceptions.py +1 -1
  7. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/validation/validator.py +44 -6
  8. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/pyproject.toml +12 -11
  9. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/setup.py +1 -1
  10. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/LICENSE +0 -0
  11. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/README.md +0 -0
  12. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/THIRD-PARTY-LICENSES +0 -0
  13. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/__init__.py +0 -0
  14. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/__init__.py +0 -0
  15. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/api_gateway.py +0 -0
  16. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/appsync.py +0 -0
  17. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/bedrock_agent.py +0 -0
  18. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/content_types.py +0 -0
  19. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
  20. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/lambda_function_url.py +0 -0
  21. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/middlewares/__init__.py +0 -0
  22. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/middlewares/base.py +0 -0
  23. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/middlewares/openapi_validation.py +0 -0
  24. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/middlewares/schema_validation.py +0 -0
  25. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/__init__.py +0 -0
  26. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/compat.py +0 -0
  27. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/constants.py +0 -0
  28. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/dependant.py +0 -0
  29. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/encoders.py +0 -0
  30. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/exceptions.py +0 -0
  31. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/models.py +0 -0
  32. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/params.py +0 -0
  33. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/pydantic_loader.py +0 -0
  34. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/__init__.py +0 -0
  35. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/html.py +0 -0
  36. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/oauth2.py +0 -0
  37. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui-bundle.min.js +0 -0
  38. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui.min.css +0 -0
  39. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/openapi/types.py +0 -0
  40. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/router.py +0 -0
  41. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/types.py +0 -0
  42. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/event_handler/vpc_lattice.py +0 -0
  43. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/exceptions/__init__.py +0 -0
  44. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/logging/__init__.py +0 -0
  45. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/logging/constants.py +0 -0
  46. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
  47. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/logging/exceptions.py +0 -0
  48. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/logging/filters.py +0 -0
  49. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/logging/formatter.py +0 -0
  50. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
  51. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/logging/formatters/datadog.py +0 -0
  52. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/logging/lambda_context.py +0 -0
  53. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/logging/logger.py +0 -0
  54. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/logging/types.py +0 -0
  55. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/logging/utils.py +0 -0
  56. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/__init__.py +0 -0
  57. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/base.py +0 -0
  58. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/exceptions.py +0 -0
  59. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/functions.py +0 -0
  60. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/metric.py +0 -0
  61. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/metrics.py +0 -0
  62. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/__init__.py +0 -0
  63. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/base.py +0 -0
  64. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py +0 -0
  65. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +0 -0
  66. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py +0 -0
  67. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py +0 -0
  68. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py +0 -0
  69. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py +0 -0
  70. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/cold_start.py +0 -0
  71. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/datadog/__init__.py +0 -0
  72. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/datadog/datadog.py +0 -0
  73. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/datadog/metrics.py +0 -0
  74. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/provider/datadog/warnings.py +0 -0
  75. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/metrics/types.py +0 -0
  76. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/middleware_factory/__init__.py +0 -0
  77. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
  78. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
  79. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/package_logger.py +0 -0
  80. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/py.typed +0 -0
  81. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/shared/__init__.py +0 -0
  82. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/shared/cache_dict.py +0 -0
  83. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/shared/constants.py +0 -0
  84. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/shared/cookies.py +0 -0
  85. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/shared/functions.py +0 -0
  86. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
  87. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/shared/json_encoder.py +0 -0
  88. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/shared/lazy_import.py +0 -0
  89. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/shared/types.py +0 -0
  90. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/shared/user_agent.py +0 -0
  91. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/tracing/__init__.py +0 -0
  92. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/tracing/base.py +0 -0
  93. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/tracing/extensions.py +0 -0
  94. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/tracing/tracer.py +0 -0
  95. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/__init__.py +0 -0
  96. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
  97. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/batch/base.py +0 -0
  98. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/batch/decorators.py +0 -0
  99. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
  100. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +0 -0
  101. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/batch/types.py +0 -0
  102. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/__init__.py +0 -0
  103. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
  104. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
  105. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +0 -0
  106. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
  107. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/appsync/__init__.py +0 -0
  108. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
  109. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
  110. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +0 -0
  111. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +0 -0
  112. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +0 -0
  113. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py +0 -0
  114. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
  115. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
  116. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py +0 -0
  117. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -0
  118. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
  119. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/common.py +0 -0
  120. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
  121. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +0 -0
  122. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
  123. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
  124. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -0
  125. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
  126. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
  127. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
  128. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +0 -0
  129. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
  130. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
  131. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py +0 -0
  132. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
  133. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/shared_functions.py +0 -0
  134. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
  135. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
  136. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +0 -0
  137. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_masking/__init__.py +0 -0
  138. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_masking/base.py +0 -0
  139. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_masking/constants.py +0 -0
  140. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_masking/exceptions.py +0 -0
  141. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_masking/provider/__init__.py +0 -0
  142. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_masking/provider/base.py +0 -0
  143. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_masking/provider/kms/__init__.py +0 -0
  144. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/data_masking/provider/kms/aws_encryption_sdk.py +0 -0
  145. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
  146. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +0 -0
  147. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/feature_flags/base.py +0 -0
  148. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/feature_flags/comparators.py +0 -0
  149. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
  150. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +0 -0
  151. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
  152. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
  153. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/base.py +0 -0
  154. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
  155. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
  156. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/hook.py +0 -0
  157. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/idempotency.py +0 -0
  158. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/persistence/__init__.py +0 -0
  159. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +0 -0
  160. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/persistence/datarecord.py +0 -0
  161. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +0 -0
  162. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/persistence/redis.py +0 -0
  163. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/serialization/__init__.py +0 -0
  164. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/serialization/base.py +0 -0
  165. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +0 -0
  166. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -0
  167. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/serialization/no_op.py +0 -0
  168. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -0
  169. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +0 -0
  170. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
  171. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
  172. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
  173. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parameters/base.py +0 -0
  174. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
  175. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
  176. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
  177. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parameters/ssm.py +0 -0
  178. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parameters/types.py +0 -0
  179. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/__init__.py +0 -0
  180. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/compat.py +0 -0
  181. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +0 -0
  182. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
  183. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
  184. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
  185. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/bedrock_agent.py +0 -0
  186. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
  187. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
  188. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
  189. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
  190. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
  191. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
  192. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
  193. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
  194. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
  195. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py +0 -0
  196. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py +0 -0
  197. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
  198. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/__init__.py +0 -0
  199. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
  200. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
  201. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
  202. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/bedrock_agent.py +0 -0
  203. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +0 -0
  204. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +0 -0
  205. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +0 -0
  206. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
  207. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/kafka.py +0 -0
  208. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
  209. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
  210. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
  211. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
  212. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
  213. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py +0 -0
  214. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
  215. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
  216. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
  217. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
  218. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
  219. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/vpc_lattice.py +0 -0
  220. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/models/vpc_latticev2.py +0 -0
  221. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/parser.py +0 -0
  222. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/pydantic.py +0 -0
  223. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/parser/types.py +0 -0
  224. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/serialization.py +0 -0
  225. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/streaming/__init__.py +0 -0
  226. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +0 -0
  227. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
  228. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/streaming/s3_object.py +0 -0
  229. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
  230. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
  231. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
  232. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
  233. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
  234. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/typing/__init__.py +0 -0
  235. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
  236. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
  237. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
  238. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
  239. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
  240. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
  241. {aws_lambda_powertools-2.39.0 → aws_lambda_powertools-2.39.2a0}/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: 2.39.0
3
+ Version: 2.39.2a0
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
@@ -1,6 +1,5 @@
1
1
  from typing import Any, Dict, List, Optional
2
2
 
3
- from aws_lambda_powertools.event_handler.openapi.models import SecurityScheme
4
3
  from aws_lambda_powertools.utilities.data_classes.shared_functions import get_header_value
5
4
 
6
5
 
@@ -73,7 +72,7 @@ def extract_origin_header(resolver_headers: Dict[str, Any]):
73
72
 
74
73
  def _validate_openapi_security_parameters(
75
74
  security: List[Dict[str, List[str]]],
76
- security_schemes: Optional[Dict[str, "SecurityScheme"]] = None,
75
+ security_schemes: Optional[Dict[str, Any]] = None,
77
76
  ) -> bool:
78
77
  """
79
78
  This function checks if all security requirements listed in the 'security'
@@ -84,7 +83,7 @@ def _validate_openapi_security_parameters(
84
83
  ----------
85
84
  security: List[Dict[str, List[str]]]
86
85
  A list of security requirements
87
- security_schemes: Optional[Dict[str, "SecurityScheme"]]
86
+ security_schemes: Optional[Dict[str, Any]]
88
87
  A dictionary mapping security scheme names to their corresponding security scheme objects.
89
88
 
90
89
  Returns
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "2.39.0"
3
+ VERSION = "2.39.2a0"
@@ -15,12 +15,12 @@ class KafkaEventRecord(DictWrapper):
15
15
  return self["topic"]
16
16
 
17
17
  @property
18
- def partition(self) -> str:
18
+ def partition(self) -> int:
19
19
  """The Kafka record parition."""
20
20
  return self["partition"]
21
21
 
22
22
  @property
23
- def offset(self) -> str:
23
+ def offset(self) -> int:
24
24
  """The Kafka record offset."""
25
25
  return self["offset"]
26
26
 
@@ -3,12 +3,18 @@ from typing import Dict, Optional, Union
3
3
 
4
4
  import fastjsonschema # type: ignore
5
5
 
6
- from .exceptions import InvalidSchemaFormatError, SchemaValidationError
6
+ from aws_lambda_powertools.utilities.validation.exceptions import InvalidSchemaFormatError, SchemaValidationError
7
7
 
8
8
  logger = logging.getLogger(__name__)
9
9
 
10
10
 
11
- def validate_data_against_schema(data: Union[Dict, str], schema: Dict, formats: Optional[Dict] = None):
11
+ def validate_data_against_schema(
12
+ data: Union[Dict, str],
13
+ schema: Dict,
14
+ formats: Optional[Dict] = None,
15
+ handlers: Optional[Dict] = None,
16
+ provider_options: Optional[Dict] = None,
17
+ ):
12
18
  """Validate dict data against given JSON Schema
13
19
 
14
20
  Parameters
@@ -19,6 +25,11 @@ def validate_data_against_schema(data: Union[Dict, str], schema: Dict, formats:
19
25
  JSON Schema to validate against
20
26
  formats: Dict
21
27
  Custom formats containing a key (e.g. int64) and a value expressed as regex or callback returning bool
28
+ handlers: Dict
29
+ Custom methods to retrieve remote schemes, keyed off of URI scheme
30
+ provider_options: Dict
31
+ Arguments that will be passed directly to the underlying validation call, in this case fastjsonchema.validate.
32
+ For all supported arguments see: https://horejsek.github.io/python-fastjsonschema/#fastjsonschema.validate
22
33
 
23
34
  Raises
24
35
  ------
@@ -29,7 +40,9 @@ def validate_data_against_schema(data: Union[Dict, str], schema: Dict, formats:
29
40
  """
30
41
  try:
31
42
  formats = formats or {}
32
- fastjsonschema.validate(definition=schema, data=data, formats=formats)
43
+ handlers = handlers or {}
44
+ provider_options = provider_options or {}
45
+ fastjsonschema.validate(definition=schema, data=data, formats=formats, handlers=handlers, **provider_options)
33
46
  except (TypeError, AttributeError, fastjsonschema.JsonSchemaDefinitionException) as e:
34
47
  raise InvalidSchemaFormatError(f"Schema received: {schema}, Formats: {formats}. Error: {e}")
35
48
  except fastjsonschema.JsonSchemaValueException as e:
@@ -1,6 +1,6 @@
1
1
  from typing import Any, List, Optional
2
2
 
3
- from ...exceptions import InvalidEnvelopeExpressionError
3
+ from aws_lambda_powertools.exceptions import InvalidEnvelopeExpressionError
4
4
 
5
5
 
6
6
  class SchemaValidationError(Exception):
@@ -1,10 +1,9 @@
1
1
  import logging
2
2
  from typing import Any, Callable, Dict, Optional, Union
3
3
 
4
+ from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
4
5
  from aws_lambda_powertools.utilities import jmespath_utils
5
-
6
- from ...middleware_factory import lambda_handler_decorator
7
- from .base import validate_data_against_schema
6
+ from aws_lambda_powertools.utilities.validation.base import validate_data_against_schema
8
7
 
9
8
  logger = logging.getLogger(__name__)
10
9
 
@@ -16,8 +15,12 @@ def validator(
16
15
  context: Any,
17
16
  inbound_schema: Optional[Dict] = None,
18
17
  inbound_formats: Optional[Dict] = None,
18
+ inbound_handlers: Optional[Dict] = None,
19
+ inbound_provider_options: Optional[Dict] = None,
19
20
  outbound_schema: Optional[Dict] = None,
20
21
  outbound_formats: Optional[Dict] = None,
22
+ outbound_handlers: Optional[Dict] = None,
23
+ outbound_provider_options: Optional[Dict] = None,
21
24
  envelope: str = "",
22
25
  jmespath_options: Optional[Dict] = None,
23
26
  **kwargs: Any,
@@ -44,6 +47,17 @@ def validator(
44
47
  Custom formats containing a key (e.g. int64) and a value expressed as regex or callback returning bool
45
48
  outbound_formats: Dict
46
49
  Custom formats containing a key (e.g. int64) and a value expressed as regex or callback returning bool
50
+ inbound_handlers: Dict
51
+ Custom methods to retrieve remote schemes, keyed off of URI scheme
52
+ outbound_handlers: Dict
53
+ Custom methods to retrieve remote schemes, keyed off of URI scheme
54
+ inbound_provider_options: Dict
55
+ Arguments that will be passed directly to the underlying validation call, in this case fastjsonchema.validate.
56
+ For all supported arguments see: https://horejsek.github.io/python-fastjsonschema/#fastjsonschema.validate
57
+ outbound_provider_options: Dict
58
+ Arguments that will be passed directly to the underlying validation call, in this case fastjsonchema.validate.
59
+ For all supported arguments see: https://horejsek.github.io/python-fastjsonschema/#fastjsonschema.validate
60
+
47
61
 
48
62
  Example
49
63
  -------
@@ -127,13 +141,25 @@ def validator(
127
141
 
128
142
  if inbound_schema:
129
143
  logger.debug("Validating inbound event")
130
- validate_data_against_schema(data=event, schema=inbound_schema, formats=inbound_formats)
144
+ validate_data_against_schema(
145
+ data=event,
146
+ schema=inbound_schema,
147
+ formats=inbound_formats,
148
+ handlers=inbound_handlers,
149
+ provider_options=inbound_provider_options,
150
+ )
131
151
 
132
152
  response = handler(event, context, **kwargs)
133
153
 
134
154
  if outbound_schema:
135
155
  logger.debug("Validating outbound event")
136
- validate_data_against_schema(data=response, schema=outbound_schema, formats=outbound_formats)
156
+ validate_data_against_schema(
157
+ data=response,
158
+ schema=outbound_schema,
159
+ formats=outbound_formats,
160
+ handlers=outbound_handlers,
161
+ provider_options=outbound_provider_options,
162
+ )
137
163
 
138
164
  return response
139
165
 
@@ -142,6 +168,8 @@ def validate(
142
168
  event: Any,
143
169
  schema: Dict,
144
170
  formats: Optional[Dict] = None,
171
+ handlers: Optional[Dict] = None,
172
+ provider_options: Optional[Dict] = None,
145
173
  envelope: Optional[str] = None,
146
174
  jmespath_options: Optional[Dict] = None,
147
175
  ):
@@ -161,6 +189,10 @@ def validate(
161
189
  Alternative JMESPath options to be included when filtering expr
162
190
  formats: Dict
163
191
  Custom formats containing a key (e.g. int64) and a value expressed as regex or callback returning bool
192
+ handlers: Dict
193
+ Custom methods to retrieve remote schemes, keyed off of URI scheme
194
+ provider_options: Dict
195
+ Arguments that will be passed directly to the underlying validate call
164
196
 
165
197
  Example
166
198
  -------
@@ -229,4 +261,10 @@ def validate(
229
261
  jmespath_options=jmespath_options,
230
262
  )
231
263
 
232
- validate_data_against_schema(data=event, schema=schema, formats=formats)
264
+ validate_data_against_schema(
265
+ data=event,
266
+ schema=schema,
267
+ formats=formats,
268
+ handlers=handlers,
269
+ provider_options=provider_options,
270
+ )
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "aws_lambda_powertools"
3
- version = "2.39.0"
3
+ version = "2.39.2a0"
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"]
@@ -64,18 +64,18 @@ pytest-cov = "^5.0.0"
64
64
  pytest-mock = "^3.14.0"
65
65
  pdoc3 = "^0.10.0"
66
66
  pytest-asyncio = "^0.23.7"
67
- bandit = "^1.7.8"
67
+ bandit = "^1.7.9"
68
68
  radon = "^6.0.1"
69
69
  xenon = "^0.9.1"
70
70
  mkdocs-git-revision-date-plugin = "^0.3.2"
71
71
  mike = "^2.1.1"
72
72
  pytest-xdist = "^3.6.1"
73
- aws-cdk-lib = "^2.145.0"
73
+ aws-cdk-lib = "^2.146.0"
74
74
  "aws-cdk.aws-apigatewayv2-alpha" = "^2.38.1-alpha.0"
75
75
  "aws-cdk.aws-apigatewayv2-integrations-alpha" = "^2.38.1-alpha.0"
76
76
  "aws-cdk.aws-apigatewayv2-authorizers-alpha" = "^2.38.1-alpha.0"
77
- "aws-cdk.aws-lambda-python-alpha" = "^2.145.0a0"
78
- "cdklabs.generative-ai-cdk-constructs" = "^0.1.179"
77
+ "aws-cdk.aws-lambda-python-alpha" = "^2.146.0a0"
78
+ "cdklabs.generative-ai-cdk-constructs" = "^0.1.192"
79
79
  pytest-benchmark = "^4.0.0"
80
80
  mypy-boto3-appconfig = "^1.34.58"
81
81
  mypy-boto3-cloudformation = "^1.34.111"
@@ -83,19 +83,19 @@ mypy-boto3-cloudwatch = "^1.34.83"
83
83
  mypy-boto3-dynamodb = "^1.34.114"
84
84
  mypy-boto3-lambda = "^1.34.77"
85
85
  mypy-boto3-logs = "^1.34.66"
86
- mypy-boto3-secretsmanager = "^1.34.109"
86
+ mypy-boto3-secretsmanager = "^1.34.128"
87
87
  mypy-boto3-ssm = "^1.34.91"
88
88
  mypy-boto3-s3 = "^1.34.120"
89
89
  mypy-boto3-xray = "^1.34.0"
90
90
  types-requests = "^2.31.0"
91
91
  typing-extensions = "^4.12.2"
92
- mkdocs-material = "^9.5.26"
93
- filelock = "^3.14.0"
92
+ mkdocs-material = "^9.5.27"
93
+ filelock = "^3.15.3"
94
94
  checksumdir = "^1.2.0"
95
95
  mypy-boto3-appconfigdata = "^1.34.24"
96
96
  ijson = "^3.3.0"
97
97
  typed-ast = { version = "^1.5.5", python = "< 3.8" }
98
- hvac = "^2.2.0"
98
+ hvac = "^2.3.0"
99
99
  aws-requests-auth = "^0.4.3"
100
100
  datadog-lambda = "^6.96.0"
101
101
 
@@ -115,17 +115,18 @@ datadog = ["datadog-lambda"]
115
115
  datamasking = ["aws-encryption-sdk", "jsonpath-ng"]
116
116
 
117
117
  [tool.poetry.group.dev.dependencies]
118
- cfn-lint = "0.87.6"
118
+ cfn-lint = "1.3.0"
119
119
  mypy = "^1.1.1"
120
120
  types-python-dateutil = "^2.8.19.6"
121
121
  httpx = ">=0.23.3,<0.28.0"
122
122
  sentry-sdk = ">=1.22.2,<3.0.0"
123
- ruff = ">=0.0.272,<0.4.9"
123
+ ruff = ">=0.0.272,<0.4.10"
124
124
  retry2 = "^0.9.5"
125
125
  pytest-socket = ">=0.6,<0.8"
126
126
  types-redis = "^4.6.0.7"
127
127
  testcontainers = { extras = ["redis"], version = "^3.7.1" }
128
128
  multiprocess = "^0.70.16"
129
+ nox = "^2024.4.15"
129
130
 
130
131
  [tool.coverage.run]
131
132
  source = ["aws_lambda_powertools"]
@@ -60,7 +60,7 @@ extras_require = \
60
60
 
61
61
  setup_kwargs = {
62
62
  'name': 'aws-lambda-powertools',
63
- 'version': '2.39.0',
63
+ 'version': '2.39.2a0',
64
64
  'description': 'Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.',
65
65
  '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* [Recast](https://getrecast.com/)\n* [TopSport](https://www.topsport.com.au/)\n* [Transformity](https://transformity.tech/)\n* [Trek10](https://www.trek10.com/)\n* [Vertex Pharmaceuticals](https://www.vrtx.com/)\n\n### Sharing your work\n\nShare what you did with Powertools for AWS Lambda (Python) 💞💞. Blog post, workshops, presentation, sample apps and others. Check out what the community has already shared about Powertools for AWS Lambda (Python) [here](https://docs.powertools.aws.dev/lambda/python/latest/we_made_this/).\n\n### Using Lambda Layer or SAR\n\nThis helps us understand who uses Powertools for AWS Lambda (Python) in a non-intrusive way, and helps us gain future investments for other Powertools for AWS Lambda languages. When [using Layers](https://docs.powertools.aws.dev/lambda/python/latest/#lambda-layer), you can add Powertools for AWS Lambda (Python) as a dev dependency (or as part of your virtual env) to not impact the development process.\n\n## Credits\n\n* Structured logging initial implementation from [aws-lambda-logging](https://gitlab.com/hadrien/aws_lambda_logging)\n* Powertools for AWS Lambda (Python) idea [DAZN Powertools](https://github.com/getndazn/dazn-lambda-powertools/)\n\n## Connect\n\n* **Powertools for AWS Lambda on Discord**: `#python` - **[Invite link](https://discord.gg/B8zZKbbyET)**\n* **Email**: <aws-powertools-maintainers@amazon.com>\n\n## Security disclosures\n\nIf you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions [here](https://aws.amazon.com/security/vulnerability-reporting/) or [email AWS security directly](mailto:aws-security@amazon.com).\n\n## License\n\nThis library is licensed under the MIT-0 License. See the LICENSE file.\n',
66
66
  'author': 'Amazon Web Services',