aws-lambda-powertools 3.3.1a20__tar.gz → 3.4.0__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 (254) hide show
  1. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/PKG-INFO +1 -1
  2. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/api_gateway.py +26 -2
  3. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/bedrock_agent.py +10 -1
  4. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +0 -3
  5. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/shared/version.py +1 -1
  6. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/apigw_websocket.py +1 -0
  7. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/parser.py +11 -13
  8. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/pyproject.toml +3 -3
  9. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/setup.py +1 -1
  10. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/LICENSE +0 -0
  11. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/README.md +0 -0
  12. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/THIRD-PARTY-LICENSES +0 -0
  13. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/__init__.py +0 -0
  14. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/__init__.py +0 -0
  15. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/appsync.py +0 -0
  16. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/content_types.py +0 -0
  17. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
  18. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/graphql_appsync/__init__.py +0 -0
  19. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/graphql_appsync/_registry.py +0 -0
  20. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/graphql_appsync/base.py +0 -0
  21. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/graphql_appsync/exceptions.py +0 -0
  22. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/graphql_appsync/router.py +0 -0
  23. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/lambda_function_url.py +0 -0
  24. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/middlewares/__init__.py +0 -0
  25. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/middlewares/base.py +0 -0
  26. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/middlewares/openapi_validation.py +0 -0
  27. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/middlewares/schema_validation.py +0 -0
  28. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/__init__.py +0 -0
  29. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/compat.py +0 -0
  30. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/constants.py +0 -0
  31. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/dependant.py +0 -0
  32. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/encoders.py +0 -0
  33. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/exceptions.py +0 -0
  34. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/models.py +0 -0
  35. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/params.py +0 -0
  36. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/pydantic_loader.py +0 -0
  37. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/__init__.py +0 -0
  38. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/html.py +0 -0
  39. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/oauth2.py +0 -0
  40. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui-bundle.min.js +0 -0
  41. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui.min.css +0 -0
  42. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/openapi/types.py +0 -0
  43. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/router.py +0 -0
  44. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/types.py +0 -0
  45. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/util.py +0 -0
  46. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/event_handler/vpc_lattice.py +0 -0
  47. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/exceptions/__init__.py +0 -0
  48. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/logging/__init__.py +0 -0
  49. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/logging/constants.py +0 -0
  50. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
  51. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/logging/exceptions.py +0 -0
  52. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/logging/filters.py +0 -0
  53. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/logging/formatter.py +0 -0
  54. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
  55. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/logging/formatters/datadog.py +0 -0
  56. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/logging/lambda_context.py +0 -0
  57. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/logging/logger.py +0 -0
  58. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/logging/types.py +0 -0
  59. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/logging/utils.py +0 -0
  60. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/__init__.py +0 -0
  61. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/base.py +0 -0
  62. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/exceptions.py +0 -0
  63. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/functions.py +0 -0
  64. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/metric.py +0 -0
  65. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/metrics.py +0 -0
  66. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/__init__.py +0 -0
  67. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/base.py +0 -0
  68. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py +0 -0
  69. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py +0 -0
  70. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py +0 -0
  71. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py +0 -0
  72. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py +0 -0
  73. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/cold_start.py +0 -0
  74. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/datadog/__init__.py +0 -0
  75. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/datadog/datadog.py +0 -0
  76. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/datadog/metrics.py +0 -0
  77. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/provider/datadog/warnings.py +0 -0
  78. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/metrics/types.py +0 -0
  79. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/middleware_factory/__init__.py +0 -0
  80. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
  81. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
  82. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/package_logger.py +0 -0
  83. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/py.typed +0 -0
  84. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/shared/__init__.py +0 -0
  85. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/shared/cache_dict.py +0 -0
  86. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/shared/constants.py +0 -0
  87. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/shared/cookies.py +0 -0
  88. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/shared/dynamodb_deserializer.py +0 -0
  89. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/shared/functions.py +0 -0
  90. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
  91. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/shared/json_encoder.py +0 -0
  92. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/shared/lazy_import.py +0 -0
  93. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/shared/types.py +0 -0
  94. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/shared/user_agent.py +0 -0
  95. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/tracing/__init__.py +0 -0
  96. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/tracing/base.py +0 -0
  97. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/tracing/extensions.py +0 -0
  98. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/tracing/tracer.py +0 -0
  99. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/__init__.py +0 -0
  100. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
  101. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/batch/base.py +0 -0
  102. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/batch/decorators.py +0 -0
  103. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
  104. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +0 -0
  105. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/batch/types.py +0 -0
  106. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/__init__.py +0 -0
  107. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
  108. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
  109. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +0 -0
  110. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
  111. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/appsync/__init__.py +0 -0
  112. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
  113. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
  114. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +0 -0
  115. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +0 -0
  116. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +0 -0
  117. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py +0 -0
  118. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
  119. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
  120. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py +0 -0
  121. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/code_deploy_lifecycle_hook_event.py +0 -0
  122. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -0
  123. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
  124. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/common.py +0 -0
  125. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
  126. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +0 -0
  127. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
  128. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
  129. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +0 -0
  130. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -0
  131. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
  132. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
  133. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
  134. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +0 -0
  135. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
  136. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
  137. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py +0 -0
  138. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
  139. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/shared_functions.py +0 -0
  140. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
  141. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
  142. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +0 -0
  143. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_masking/__init__.py +0 -0
  144. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_masking/base.py +0 -0
  145. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_masking/constants.py +0 -0
  146. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_masking/exceptions.py +0 -0
  147. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_masking/provider/__init__.py +0 -0
  148. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_masking/provider/base.py +0 -0
  149. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_masking/provider/kms/__init__.py +0 -0
  150. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/data_masking/provider/kms/aws_encryption_sdk.py +0 -0
  151. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
  152. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +0 -0
  153. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/feature_flags/base.py +0 -0
  154. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/feature_flags/comparators.py +0 -0
  155. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/feature_flags/constants.py +0 -0
  156. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
  157. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +0 -0
  158. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
  159. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/feature_flags/types.py +0 -0
  160. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
  161. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/base.py +0 -0
  162. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
  163. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
  164. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/hook.py +0 -0
  165. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/idempotency.py +0 -0
  166. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/persistence/__init__.py +0 -0
  167. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +0 -0
  168. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/persistence/datarecord.py +0 -0
  169. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +0 -0
  170. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/persistence/redis.py +0 -0
  171. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/serialization/__init__.py +0 -0
  172. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/serialization/base.py +0 -0
  173. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +0 -0
  174. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -0
  175. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/serialization/no_op.py +0 -0
  176. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -0
  177. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +0 -0
  178. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
  179. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
  180. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
  181. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parameters/base.py +0 -0
  182. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parameters/constants.py +0 -0
  183. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
  184. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
  185. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
  186. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parameters/ssm.py +0 -0
  187. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parameters/types.py +0 -0
  188. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/__init__.py +0 -0
  189. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +0 -0
  190. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
  191. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/apigw_websocket.py +0 -0
  192. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
  193. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
  194. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/bedrock_agent.py +0 -0
  195. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
  196. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
  197. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
  198. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
  199. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
  200. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
  201. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
  202. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
  203. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
  204. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py +0 -0
  205. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py +0 -0
  206. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
  207. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/functions.py +0 -0
  208. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/__init__.py +0 -0
  209. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
  210. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
  211. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
  212. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/bedrock_agent.py +0 -0
  213. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +0 -0
  214. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +0 -0
  215. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +0 -0
  216. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
  217. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/kafka.py +0 -0
  218. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
  219. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
  220. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
  221. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
  222. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
  223. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py +0 -0
  224. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
  225. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
  226. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
  227. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
  228. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
  229. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/vpc_lattice.py +0 -0
  230. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/models/vpc_latticev2.py +0 -0
  231. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/parser/types.py +0 -0
  232. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/serialization.py +0 -0
  233. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/streaming/__init__.py +0 -0
  234. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +0 -0
  235. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
  236. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/streaming/constants.py +0 -0
  237. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/streaming/s3_object.py +0 -0
  238. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
  239. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
  240. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
  241. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
  242. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
  243. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/streaming/types.py +0 -0
  244. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/typing/__init__.py +0 -0
  245. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
  246. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
  247. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
  248. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
  249. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
  250. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/validation/base.py +0 -0
  251. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
  252. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/validation/exceptions.py +0 -0
  253. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/aws_lambda_powertools/utilities/validation/validator.py +0 -0
  254. {aws_lambda_powertools-3.3.1a20 → aws_lambda_powertools-3.4.0}/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.3.1a20
3
+ Version: 3.4.0
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
@@ -309,6 +309,7 @@ class Route:
309
309
  include_in_schema: bool = True,
310
310
  security: list[dict[str, list[str]]] | None = None,
311
311
  openapi_extensions: dict[str, Any] | None = None,
312
+ deprecated: bool = False,
312
313
  middlewares: list[Callable[..., Response]] | None = None,
313
314
  ):
314
315
  """
@@ -348,6 +349,8 @@ class Route:
348
349
  The OpenAPI security for this route
349
350
  openapi_extensions: dict[str, Any], optional
350
351
  Additional OpenAPI extensions as a dictionary.
352
+ deprecated: bool
353
+ Whether or not to mark this route as deprecated in the OpenAPI schema
351
354
  middlewares: list[Callable[..., Response]] | None
352
355
  The list of route middlewares to be called in order.
353
356
  """
@@ -374,6 +377,7 @@ class Route:
374
377
  self.openapi_extensions = openapi_extensions
375
378
  self.middlewares = middlewares or []
376
379
  self.operation_id = operation_id or self._generate_operation_id()
380
+ self.deprecated = deprecated
377
381
 
378
382
  # _middleware_stack_built is used to ensure the middleware stack is only built once.
379
383
  self._middleware_stack_built = False
@@ -670,6 +674,9 @@ class Route:
670
674
  operation_ids.add(self.operation_id)
671
675
  operation["operationId"] = self.operation_id
672
676
 
677
+ # Mark as deprecated if necessary
678
+ operation["deprecated"] = self.deprecated or None
679
+
673
680
  return operation
674
681
 
675
682
  @staticmethod
@@ -924,6 +931,7 @@ class BaseRouter(ABC):
924
931
  include_in_schema: bool = True,
925
932
  security: list[dict[str, list[str]]] | None = None,
926
933
  openapi_extensions: dict[str, Any] | None = None,
934
+ deprecated: bool = False,
927
935
  middlewares: list[Callable[..., Any]] | None = None,
928
936
  ) -> Callable[[AnyCallableT], AnyCallableT]:
929
937
  raise NotImplementedError()
@@ -984,6 +992,7 @@ class BaseRouter(ABC):
984
992
  include_in_schema: bool = True,
985
993
  security: list[dict[str, list[str]]] | None = None,
986
994
  openapi_extensions: dict[str, Any] | None = None,
995
+ deprecated: bool = False,
987
996
  middlewares: list[Callable[..., Any]] | None = None,
988
997
  ) -> Callable[[AnyCallableT], AnyCallableT]:
989
998
  """Get route decorator with GET `method`
@@ -1023,6 +1032,7 @@ class BaseRouter(ABC):
1023
1032
  include_in_schema,
1024
1033
  security,
1025
1034
  openapi_extensions,
1035
+ deprecated,
1026
1036
  middlewares,
1027
1037
  )
1028
1038
 
@@ -1041,6 +1051,7 @@ class BaseRouter(ABC):
1041
1051
  include_in_schema: bool = True,
1042
1052
  security: list[dict[str, list[str]]] | None = None,
1043
1053
  openapi_extensions: dict[str, Any] | None = None,
1054
+ deprecated: bool = False,
1044
1055
  middlewares: list[Callable[..., Any]] | None = None,
1045
1056
  ) -> Callable[[AnyCallableT], AnyCallableT]:
1046
1057
  """Post route decorator with POST `method`
@@ -1081,6 +1092,7 @@ class BaseRouter(ABC):
1081
1092
  include_in_schema,
1082
1093
  security,
1083
1094
  openapi_extensions,
1095
+ deprecated,
1084
1096
  middlewares,
1085
1097
  )
1086
1098
 
@@ -1099,6 +1111,7 @@ class BaseRouter(ABC):
1099
1111
  include_in_schema: bool = True,
1100
1112
  security: list[dict[str, list[str]]] | None = None,
1101
1113
  openapi_extensions: dict[str, Any] | None = None,
1114
+ deprecated: bool = False,
1102
1115
  middlewares: list[Callable[..., Any]] | None = None,
1103
1116
  ) -> Callable[[AnyCallableT], AnyCallableT]:
1104
1117
  """Put route decorator with PUT `method`
@@ -1139,6 +1152,7 @@ class BaseRouter(ABC):
1139
1152
  include_in_schema,
1140
1153
  security,
1141
1154
  openapi_extensions,
1155
+ deprecated,
1142
1156
  middlewares,
1143
1157
  )
1144
1158
 
@@ -1157,6 +1171,7 @@ class BaseRouter(ABC):
1157
1171
  include_in_schema: bool = True,
1158
1172
  security: list[dict[str, list[str]]] | None = None,
1159
1173
  openapi_extensions: dict[str, Any] | None = None,
1174
+ deprecated: bool = False,
1160
1175
  middlewares: list[Callable[..., Any]] | None = None,
1161
1176
  ) -> Callable[[AnyCallableT], AnyCallableT]:
1162
1177
  """Delete route decorator with DELETE `method`
@@ -1196,6 +1211,7 @@ class BaseRouter(ABC):
1196
1211
  include_in_schema,
1197
1212
  security,
1198
1213
  openapi_extensions,
1214
+ deprecated,
1199
1215
  middlewares,
1200
1216
  )
1201
1217
 
@@ -1214,6 +1230,7 @@ class BaseRouter(ABC):
1214
1230
  include_in_schema: bool = True,
1215
1231
  security: list[dict[str, list[str]]] | None = None,
1216
1232
  openapi_extensions: dict[str, Any] | None = None,
1233
+ deprecated: bool = False,
1217
1234
  middlewares: list[Callable] | None = None,
1218
1235
  ) -> Callable[[AnyCallableT], AnyCallableT]:
1219
1236
  """Patch route decorator with PATCH `method`
@@ -1256,6 +1273,7 @@ class BaseRouter(ABC):
1256
1273
  include_in_schema,
1257
1274
  security,
1258
1275
  openapi_extensions,
1276
+ deprecated,
1259
1277
  middlewares,
1260
1278
  )
1261
1279
 
@@ -1274,6 +1292,7 @@ class BaseRouter(ABC):
1274
1292
  include_in_schema: bool = True,
1275
1293
  security: list[dict[str, list[str]]] | None = None,
1276
1294
  openapi_extensions: dict[str, Any] | None = None,
1295
+ deprecated: bool = False,
1277
1296
  middlewares: list[Callable] | None = None,
1278
1297
  ) -> Callable[[AnyCallableT], AnyCallableT]:
1279
1298
  """Head route decorator with HEAD `method`
@@ -1315,6 +1334,7 @@ class BaseRouter(ABC):
1315
1334
  include_in_schema,
1316
1335
  security,
1317
1336
  openapi_extensions,
1337
+ deprecated,
1318
1338
  middlewares,
1319
1339
  )
1320
1340
 
@@ -1629,7 +1649,6 @@ class ApiGatewayResolver(BaseRouter):
1629
1649
 
1630
1650
  # Add routes to the OpenAPI schema
1631
1651
  for route in all_routes:
1632
-
1633
1652
  if route.security and not _validate_openapi_security_parameters(
1634
1653
  security=route.security,
1635
1654
  security_schemes=security_schemes,
@@ -1694,7 +1713,6 @@ class ApiGatewayResolver(BaseRouter):
1694
1713
 
1695
1714
  @staticmethod
1696
1715
  def _determine_openapi_version(openapi_version: str):
1697
-
1698
1716
  # Pydantic V2 has no support for OpenAPI schema 3.0
1699
1717
  if not openapi_version.startswith("3.1"):
1700
1718
  warnings.warn(
@@ -1950,6 +1968,7 @@ class ApiGatewayResolver(BaseRouter):
1950
1968
  include_in_schema: bool = True,
1951
1969
  security: list[dict[str, list[str]]] | None = None,
1952
1970
  openapi_extensions: dict[str, Any] | None = None,
1971
+ deprecated: bool = False,
1953
1972
  middlewares: list[Callable[..., Any]] | None = None,
1954
1973
  ) -> Callable[[AnyCallableT], AnyCallableT]:
1955
1974
  """Route decorator includes parameter `method`"""
@@ -1978,6 +1997,7 @@ class ApiGatewayResolver(BaseRouter):
1978
1997
  include_in_schema,
1979
1998
  security,
1980
1999
  openapi_extensions,
2000
+ deprecated,
1981
2001
  middlewares,
1982
2002
  )
1983
2003
 
@@ -2492,6 +2512,7 @@ class Router(BaseRouter):
2492
2512
  include_in_schema: bool = True,
2493
2513
  security: list[dict[str, list[str]]] | None = None,
2494
2514
  openapi_extensions: dict[str, Any] | None = None,
2515
+ deprecated: bool = False,
2495
2516
  middlewares: list[Callable[..., Any]] | None = None,
2496
2517
  ) -> Callable[[AnyCallableT], AnyCallableT]:
2497
2518
  def register_route(func: AnyCallableT) -> AnyCallableT:
@@ -2517,6 +2538,7 @@ class Router(BaseRouter):
2517
2538
  include_in_schema,
2518
2539
  frozen_security,
2519
2540
  fronzen_openapi_extensions,
2541
+ deprecated,
2520
2542
  )
2521
2543
 
2522
2544
  # Collate Middleware for routes
@@ -2598,6 +2620,7 @@ class APIGatewayRestResolver(ApiGatewayResolver):
2598
2620
  include_in_schema: bool = True,
2599
2621
  security: list[dict[str, list[str]]] | None = None,
2600
2622
  openapi_extensions: dict[str, Any] | None = None,
2623
+ deprecated: bool = False,
2601
2624
  middlewares: list[Callable[..., Any]] | None = None,
2602
2625
  ) -> Callable[[AnyCallableT], AnyCallableT]:
2603
2626
  # NOTE: see #1552 for more context.
@@ -2616,6 +2639,7 @@ class APIGatewayRestResolver(ApiGatewayResolver):
2616
2639
  include_in_schema,
2617
2640
  security,
2618
2641
  openapi_extensions,
2642
+ deprecated,
2619
2643
  middlewares,
2620
2644
  )
2621
2645
 
@@ -108,9 +108,9 @@ class BedrockAgentResolver(ApiGatewayResolver):
108
108
  tags: list[str] | None = None,
109
109
  operation_id: str | None = None,
110
110
  include_in_schema: bool = True,
111
+ deprecated: bool = False,
111
112
  middlewares: list[Callable[..., Any]] | None = None,
112
113
  ) -> Callable[[Callable[..., Any]], Callable[..., Any]]:
113
-
114
114
  openapi_extensions = None
115
115
  security = None
116
116
 
@@ -128,6 +128,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
128
128
  include_in_schema,
129
129
  security,
130
130
  openapi_extensions,
131
+ deprecated,
131
132
  middlewares,
132
133
  )
133
134
 
@@ -146,6 +147,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
146
147
  tags: list[str] | None = None,
147
148
  operation_id: str | None = None,
148
149
  include_in_schema: bool = True,
150
+ deprecated: bool = False,
149
151
  middlewares: list[Callable[..., Any]] | None = None,
150
152
  ):
151
153
  openapi_extensions = None
@@ -165,6 +167,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
165
167
  include_in_schema,
166
168
  security,
167
169
  openapi_extensions,
170
+ deprecated,
168
171
  middlewares,
169
172
  )
170
173
 
@@ -183,6 +186,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
183
186
  tags: list[str] | None = None,
184
187
  operation_id: str | None = None,
185
188
  include_in_schema: bool = True,
189
+ deprecated: bool = False,
186
190
  middlewares: list[Callable[..., Any]] | None = None,
187
191
  ):
188
192
  openapi_extensions = None
@@ -202,6 +206,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
202
206
  include_in_schema,
203
207
  security,
204
208
  openapi_extensions,
209
+ deprecated,
205
210
  middlewares,
206
211
  )
207
212
 
@@ -220,6 +225,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
220
225
  tags: list[str] | None = None,
221
226
  operation_id: str | None = None,
222
227
  include_in_schema: bool = True,
228
+ deprecated: bool = False,
223
229
  middlewares: list[Callable] | None = None,
224
230
  ):
225
231
  openapi_extensions = None
@@ -239,6 +245,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
239
245
  include_in_schema,
240
246
  security,
241
247
  openapi_extensions,
248
+ deprecated,
242
249
  middlewares,
243
250
  )
244
251
 
@@ -257,6 +264,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
257
264
  tags: list[str] | None = None,
258
265
  operation_id: str | None = None,
259
266
  include_in_schema: bool = True,
267
+ deprecated: bool = False,
260
268
  middlewares: list[Callable[..., Any]] | None = None,
261
269
  ):
262
270
  openapi_extensions = None
@@ -276,6 +284,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
276
284
  include_in_schema,
277
285
  security,
278
286
  openapi_extensions,
287
+ deprecated,
279
288
  middlewares,
280
289
  )
281
290
 
@@ -24,7 +24,6 @@ from aws_lambda_powertools.shared import constants
24
24
  from aws_lambda_powertools.shared.functions import resolve_env_var_choice
25
25
  from aws_lambda_powertools.warnings import PowertoolsUserWarning
26
26
 
27
-
28
27
  if TYPE_CHECKING:
29
28
  from aws_lambda_powertools.metrics.provider.cloudwatch_emf.types import CloudWatchEMFOutput
30
29
  from aws_lambda_powertools.metrics.types import MetricNameUnitResolution
@@ -295,8 +294,6 @@ class AmazonCloudWatchEMFProvider(BaseProvider):
295
294
 
296
295
  self.dimension_set[name] = value
297
296
 
298
-
299
-
300
297
  def add_metadata(self, key: str, value: Any) -> None:
301
298
  """Adds high cardinal metadata for metrics object
302
299
 
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "3.3.1a20"
3
+ VERSION = "3.4.0"
@@ -9,6 +9,7 @@ class APIGatewayWebSocketEventIdentity(BaseModel):
9
9
  source_ip: IPvAnyNetwork = Field(alias="sourceIp")
10
10
  user_agent: Optional[str] = Field(None, alias="userAgent")
11
11
 
12
+
12
13
  class APIGatewayWebSocketEventRequestContextBase(BaseModel):
13
14
  extended_request_id: str = Field(alias="extendedRequestId")
14
15
  request_time: str = Field(alias="requestTime")
@@ -84,9 +84,9 @@ def event_parser(
84
84
  Raises
85
85
  ------
86
86
  ValidationError
87
- When input event does not conform with model provided
87
+ When input event does not conform with the provided model
88
88
  InvalidModelTypeError
89
- When model given does not implement BaseModel or is not provided
89
+ When the model given does not implement BaseModel, is not provided
90
90
  InvalidEnvelopeError
91
91
  When envelope given does not implement BaseEnvelope
92
92
  """
@@ -103,17 +103,14 @@ def event_parser(
103
103
  "or as the type hint of `event` in the handler that it wraps",
104
104
  )
105
105
 
106
- try:
107
- if envelope:
108
- parsed_event = parse(event=event, model=model, envelope=envelope)
109
- else:
110
- parsed_event = parse(event=event, model=model)
111
-
112
- logger.debug(f"Calling handler {handler.__name__}")
113
- return handler(parsed_event, context, **kwargs)
114
- except AttributeError as exc:
115
- raise InvalidModelTypeError(f"Error: {str(exc)}. Please ensure the type you're trying to parse into is correct")
106
+ if envelope:
107
+ parsed_event = parse(event=event, model=model, envelope=envelope)
108
+ else:
109
+ parsed_event = parse(event=event, model=model)
116
110
 
111
+ logger.debug(f"Calling handler {handler.__name__}")
112
+ return handler(parsed_event, context, **kwargs)
113
+
117
114
 
118
115
  @overload
119
116
  def parse(event: dict[str, Any], model: type[T]) -> T: ... # pragma: no cover
@@ -192,6 +189,7 @@ def parse(event: dict[str, Any], model: type[T], envelope: type[Envelope] | None
192
189
  adapter = _retrieve_or_set_model_from_cache(model=model)
193
190
 
194
191
  logger.debug("Parsing and validating event model; no envelope used")
192
+
195
193
  return _parse_and_validate_event(data=event, adapter=adapter)
196
194
 
197
195
  # Pydantic raises PydanticSchemaGenerationError when the model is not a Pydantic model
@@ -204,4 +202,4 @@ def parse(event: dict[str, Any], model: type[T], envelope: type[Envelope] | None
204
202
  f"Error: {str(exc)}. Please ensure the Input model inherits from BaseModel,\n"
205
203
  "and your payload adheres to the specified Input model structure.\n"
206
204
  f"Model={model}",
207
- ) from exc
205
+ ) from exc
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "aws_lambda_powertools"
3
- version = "3.3.1a20"
3
+ version = "3.4.0"
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"]
@@ -76,7 +76,7 @@ aws-cdk-lib = "^2.173.2"
76
76
  "aws-cdk.aws-apigatewayv2-alpha" = "^2.38.1-alpha.0"
77
77
  "aws-cdk.aws-apigatewayv2-integrations-alpha" = "^2.38.1-alpha.0"
78
78
  "aws-cdk.aws-apigatewayv2-authorizers-alpha" = "^2.38.1-alpha.0"
79
- "aws-cdk.aws-lambda-python-alpha" = "^2.173.1a0"
79
+ "aws-cdk.aws-lambda-python-alpha" = "^2.173.2a0"
80
80
  "cdklabs.generative-ai-cdk-constructs" = "^0.1.287"
81
81
  pytest-benchmark = "^4.0.0"
82
82
  types-requests = "^2.31.0"
@@ -115,7 +115,7 @@ types-python-dateutil = "^2.8.19.6"
115
115
  aws-cdk-aws-appsync-alpha = "^2.59.0a0"
116
116
  httpx = ">=0.23.3,<0.29.0"
117
117
  sentry-sdk = ">=1.22.2,<3.0.0"
118
- ruff = ">=0.5.1,<0.8.4"
118
+ ruff = ">=0.5.1,<0.8.5"
119
119
  retry2 = "^0.9.5"
120
120
  pytest-socket = ">=0.6,<0.8"
121
121
  types-redis = "^4.6.0.7"
@@ -64,7 +64,7 @@ extras_require = \
64
64
 
65
65
  setup_kwargs = {
66
66
  'name': 'aws-lambda-powertools',
67
- 'version': '3.3.1a20',
67
+ 'version': '3.4.0',
68
68
  'description': 'Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.',
69
69
  '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* [Alma Media](https://www.almamedia.fi/en/)\n* [Banxware](https://www.banxware.com/)\n* [Brsk](https://www.brsk.co.uk/)\n* [BusPatrol](https://buspatrol.com/)\n* [Capital One](https://www.capitalone.com/)\n* [Caylent](https://caylent.com/)\n* [CHS Inc.](https://www.chsinc.com/)\n* [CPQi (Exadel Financial Services)](https://cpqi.com/)\n* [CloudZero](https://www.cloudzero.com/)\n* [CyberArk](https://www.cyberark.com/)\n* [Flyweight](https://flyweight.io/)\n* [globaldatanet](https://globaldatanet.com/)\n* [IMS](https://ims.tech/)\n* [Jit Security](https://www.jit.io/)\n* [LocalStack](https://www.localstack.cloud/)\n* [Propellor.ai](https://www.propellor.ai/)\n* [Pushpay](https://pushpay.com/)\n* [Recast](https://getrecast.com/)\n* [TopSport](https://www.topsport.com.au/)\n* [Transformity](https://transformity.tech/)\n* [Trek10](https://www.trek10.com/)\n* [Vertex Pharmaceuticals](https://www.vrtx.com/)\n\n### Sharing your work\n\nShare what you did with Powertools for AWS Lambda (Python) 💞💞. Blog post, workshops, presentation, sample apps and others. Check out what the community has already shared about Powertools for AWS Lambda (Python) [here](https://docs.powertools.aws.dev/lambda/python/latest/we_made_this/).\n\n### Using Lambda Layer or SAR\n\nThis helps us understand who uses Powertools for AWS Lambda (Python) in a non-intrusive way, and helps us gain future investments for other Powertools for AWS Lambda languages. When [using Layers](https://docs.powertools.aws.dev/lambda/python/latest/#lambda-layer), you can add Powertools for AWS Lambda (Python) as a dev dependency (or as part of your virtual env) to not impact the development process.\n\n## Credits\n\n* Structured logging initial implementation from [aws-lambda-logging](https://gitlab.com/hadrien/aws_lambda_logging)\n* Powertools for AWS Lambda (Python) idea [DAZN Powertools](https://github.com/getndazn/dazn-lambda-powertools/)\n\n## Connect\n\n* **Powertools for AWS Lambda on Discord**: `#python` - **[Invite link](https://discord.gg/B8zZKbbyET)**\n* **Email**: <aws-powertools-maintainers@amazon.com>\n\n## Security disclosures\n\nIf you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions [here](https://aws.amazon.com/security/vulnerability-reporting/) or [email AWS security directly](mailto:aws-security@amazon.com).\n\n## License\n\nThis library is licensed under the MIT-0 License. See the LICENSE file.\n',
70
70
  'author': 'Amazon Web Services',