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