aws-lambda-powertools 2.41.1a1__tar.gz → 2.41.1a3__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-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/PKG-INFO +1 -1
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/api_gateway.py +43 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/bedrock_agent.py +11 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/compat.py +2 -2
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/models.py +63 -6
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/shared/version.py +1 -1
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/pyproject.toml +2 -2
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/setup.py +1 -1
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/LICENSE +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/README.md +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/THIRD-PARTY-LICENSES +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/appsync.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/content_types.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/graphql_appsync/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/graphql_appsync/_registry.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/graphql_appsync/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/graphql_appsync/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/graphql_appsync/router.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/lambda_function_url.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/middlewares/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/middlewares/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/middlewares/openapi_validation.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/middlewares/schema_validation.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/constants.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/dependant.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/encoders.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/params.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/pydantic_loader.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/swagger_ui/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/swagger_ui/html.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/swagger_ui/oauth2.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui-bundle.min.js +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui.min.css +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/openapi/types.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/router.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/types.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/util.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/event_handler/vpc_lattice.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/exceptions/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/logging/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/logging/constants.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/logging/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/logging/filters.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/logging/formatter.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/logging/formatters/datadog.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/logging/lambda_context.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/logging/logger.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/logging/types.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/logging/utils.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/functions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/metric.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/metrics.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/cold_start.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/datadog/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/datadog/datadog.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/datadog/metrics.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/provider/datadog/warnings.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/metrics/types.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/middleware_factory/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/package_logger.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/py.typed +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/shared/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/shared/cache_dict.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/shared/constants.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/shared/cookies.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/shared/functions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/shared/json_encoder.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/shared/lazy_import.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/shared/types.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/shared/user_agent.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/tracing/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/tracing/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/tracing/extensions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/tracing/tracer.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/batch/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/batch/decorators.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/batch/types.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/appsync/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/common.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/shared_functions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_masking/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_masking/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_masking/constants.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_masking/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_masking/provider/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_masking/provider/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_masking/provider/kms/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/data_masking/provider/kms/aws_encryption_sdk.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/feature_flags/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/feature_flags/comparators.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/hook.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/idempotency.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/persistence/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/persistence/datarecord.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/persistence/redis.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/serialization/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/serialization/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/serialization/no_op.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parameters/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parameters/ssm.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parameters/types.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/compat.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/bedrock_agent.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/bedrock_agent.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/kafka.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/vpc_lattice.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/models/vpc_latticev2.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/parser.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/pydantic.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/parser/types.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/serialization.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/streaming/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/streaming/s3_object.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/typing/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/validation/base.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/validation/exceptions.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/utilities/validation/validator.py +0 -0
- {aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/warnings/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: aws-lambda-powertools
|
|
3
|
-
Version: 2.41.
|
|
3
|
+
Version: 2.41.1a3
|
|
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
|
|
@@ -323,6 +323,7 @@ class Route:
|
|
|
323
323
|
operation_id: Optional[str] = None,
|
|
324
324
|
include_in_schema: bool = True,
|
|
325
325
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
326
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
326
327
|
middlewares: Optional[List[Callable[..., Response]]] = None,
|
|
327
328
|
):
|
|
328
329
|
"""
|
|
@@ -360,6 +361,8 @@ class Route:
|
|
|
360
361
|
Whether or not to include this route in the OpenAPI schema
|
|
361
362
|
security: List[Dict[str, List[str]]], optional
|
|
362
363
|
The OpenAPI security for this route
|
|
364
|
+
openapi_extensions: Dict[str, Any], optional
|
|
365
|
+
Additional OpenAPI extensions as a dictionary.
|
|
363
366
|
middlewares: Optional[List[Callable[..., Response]]]
|
|
364
367
|
The list of route middlewares to be called in order.
|
|
365
368
|
"""
|
|
@@ -383,6 +386,7 @@ class Route:
|
|
|
383
386
|
self.tags = tags or []
|
|
384
387
|
self.include_in_schema = include_in_schema
|
|
385
388
|
self.security = security
|
|
389
|
+
self.openapi_extensions = openapi_extensions
|
|
386
390
|
self.middlewares = middlewares or []
|
|
387
391
|
self.operation_id = operation_id or self._generate_operation_id()
|
|
388
392
|
|
|
@@ -534,6 +538,10 @@ class Route:
|
|
|
534
538
|
if self.security:
|
|
535
539
|
operation["security"] = self.security
|
|
536
540
|
|
|
541
|
+
# Add OpenAPI extensions if present
|
|
542
|
+
if self.openapi_extensions:
|
|
543
|
+
operation.update(self.openapi_extensions)
|
|
544
|
+
|
|
537
545
|
# Add the parameters to the OpenAPI operation
|
|
538
546
|
if parameters:
|
|
539
547
|
all_parameters = {(param["in"], param["name"]): param for param in parameters}
|
|
@@ -939,6 +947,7 @@ class BaseRouter(ABC):
|
|
|
939
947
|
operation_id: Optional[str] = None,
|
|
940
948
|
include_in_schema: bool = True,
|
|
941
949
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
950
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
942
951
|
middlewares: Optional[List[Callable[..., Any]]] = None,
|
|
943
952
|
):
|
|
944
953
|
raise NotImplementedError()
|
|
@@ -998,6 +1007,7 @@ class BaseRouter(ABC):
|
|
|
998
1007
|
operation_id: Optional[str] = None,
|
|
999
1008
|
include_in_schema: bool = True,
|
|
1000
1009
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
1010
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
1001
1011
|
middlewares: Optional[List[Callable[..., Any]]] = None,
|
|
1002
1012
|
):
|
|
1003
1013
|
"""Get route decorator with GET `method`
|
|
@@ -1036,6 +1046,7 @@ class BaseRouter(ABC):
|
|
|
1036
1046
|
operation_id,
|
|
1037
1047
|
include_in_schema,
|
|
1038
1048
|
security,
|
|
1049
|
+
openapi_extensions,
|
|
1039
1050
|
middlewares,
|
|
1040
1051
|
)
|
|
1041
1052
|
|
|
@@ -1053,6 +1064,7 @@ class BaseRouter(ABC):
|
|
|
1053
1064
|
operation_id: Optional[str] = None,
|
|
1054
1065
|
include_in_schema: bool = True,
|
|
1055
1066
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
1067
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
1056
1068
|
middlewares: Optional[List[Callable[..., Any]]] = None,
|
|
1057
1069
|
):
|
|
1058
1070
|
"""Post route decorator with POST `method`
|
|
@@ -1092,6 +1104,7 @@ class BaseRouter(ABC):
|
|
|
1092
1104
|
operation_id,
|
|
1093
1105
|
include_in_schema,
|
|
1094
1106
|
security,
|
|
1107
|
+
openapi_extensions,
|
|
1095
1108
|
middlewares,
|
|
1096
1109
|
)
|
|
1097
1110
|
|
|
@@ -1109,6 +1122,7 @@ class BaseRouter(ABC):
|
|
|
1109
1122
|
operation_id: Optional[str] = None,
|
|
1110
1123
|
include_in_schema: bool = True,
|
|
1111
1124
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
1125
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
1112
1126
|
middlewares: Optional[List[Callable[..., Any]]] = None,
|
|
1113
1127
|
):
|
|
1114
1128
|
"""Put route decorator with PUT `method`
|
|
@@ -1148,6 +1162,7 @@ class BaseRouter(ABC):
|
|
|
1148
1162
|
operation_id,
|
|
1149
1163
|
include_in_schema,
|
|
1150
1164
|
security,
|
|
1165
|
+
openapi_extensions,
|
|
1151
1166
|
middlewares,
|
|
1152
1167
|
)
|
|
1153
1168
|
|
|
@@ -1165,6 +1180,7 @@ class BaseRouter(ABC):
|
|
|
1165
1180
|
operation_id: Optional[str] = None,
|
|
1166
1181
|
include_in_schema: bool = True,
|
|
1167
1182
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
1183
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
1168
1184
|
middlewares: Optional[List[Callable[..., Any]]] = None,
|
|
1169
1185
|
):
|
|
1170
1186
|
"""Delete route decorator with DELETE `method`
|
|
@@ -1203,6 +1219,7 @@ class BaseRouter(ABC):
|
|
|
1203
1219
|
operation_id,
|
|
1204
1220
|
include_in_schema,
|
|
1205
1221
|
security,
|
|
1222
|
+
openapi_extensions,
|
|
1206
1223
|
middlewares,
|
|
1207
1224
|
)
|
|
1208
1225
|
|
|
@@ -1220,6 +1237,7 @@ class BaseRouter(ABC):
|
|
|
1220
1237
|
operation_id: Optional[str] = None,
|
|
1221
1238
|
include_in_schema: bool = True,
|
|
1222
1239
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
1240
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
1223
1241
|
middlewares: Optional[List[Callable]] = None,
|
|
1224
1242
|
):
|
|
1225
1243
|
"""Patch route decorator with PATCH `method`
|
|
@@ -1261,6 +1279,7 @@ class BaseRouter(ABC):
|
|
|
1261
1279
|
operation_id,
|
|
1262
1280
|
include_in_schema,
|
|
1263
1281
|
security,
|
|
1282
|
+
openapi_extensions,
|
|
1264
1283
|
middlewares,
|
|
1265
1284
|
)
|
|
1266
1285
|
|
|
@@ -1278,6 +1297,7 @@ class BaseRouter(ABC):
|
|
|
1278
1297
|
operation_id: Optional[str] = None,
|
|
1279
1298
|
include_in_schema: bool = True,
|
|
1280
1299
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
1300
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
1281
1301
|
middlewares: Optional[List[Callable]] = None,
|
|
1282
1302
|
):
|
|
1283
1303
|
"""Head route decorator with HEAD `method`
|
|
@@ -1318,6 +1338,7 @@ class BaseRouter(ABC):
|
|
|
1318
1338
|
operation_id,
|
|
1319
1339
|
include_in_schema,
|
|
1320
1340
|
security,
|
|
1341
|
+
openapi_extensions,
|
|
1321
1342
|
middlewares,
|
|
1322
1343
|
)
|
|
1323
1344
|
|
|
@@ -1541,6 +1562,7 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
1541
1562
|
license_info: Optional["License"] = None,
|
|
1542
1563
|
security_schemes: Optional[Dict[str, "SecurityScheme"]] = None,
|
|
1543
1564
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
1565
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
1544
1566
|
) -> "OpenAPI":
|
|
1545
1567
|
"""
|
|
1546
1568
|
Returns the OpenAPI schema as a pydantic model.
|
|
@@ -1571,6 +1593,8 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
1571
1593
|
A declaration of the security schemes available to be used in the specification.
|
|
1572
1594
|
security: List[Dict[str, List[str]]], optional
|
|
1573
1595
|
A declaration of which security mechanisms are applied globally across the API.
|
|
1596
|
+
openapi_extensions: Dict[str, Any], optional
|
|
1597
|
+
Additional OpenAPI extensions as a dictionary.
|
|
1574
1598
|
|
|
1575
1599
|
Returns
|
|
1576
1600
|
-------
|
|
@@ -1603,11 +1627,15 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
1603
1627
|
|
|
1604
1628
|
info.update({field: value for field, value in optional_fields.items() if value})
|
|
1605
1629
|
|
|
1630
|
+
if not isinstance(openapi_extensions, Dict):
|
|
1631
|
+
openapi_extensions = {}
|
|
1632
|
+
|
|
1606
1633
|
output: Dict[str, Any] = {
|
|
1607
1634
|
"openapi": openapi_version,
|
|
1608
1635
|
"info": info,
|
|
1609
1636
|
"servers": self._get_openapi_servers(servers),
|
|
1610
1637
|
"security": self._get_openapi_security(security, security_schemes),
|
|
1638
|
+
**openapi_extensions,
|
|
1611
1639
|
}
|
|
1612
1640
|
|
|
1613
1641
|
components: Dict[str, Dict[str, Any]] = {}
|
|
@@ -1726,6 +1754,7 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
1726
1754
|
license_info: Optional["License"] = None,
|
|
1727
1755
|
security_schemes: Optional[Dict[str, "SecurityScheme"]] = None,
|
|
1728
1756
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
1757
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
1729
1758
|
) -> str:
|
|
1730
1759
|
"""
|
|
1731
1760
|
Returns the OpenAPI schema as a JSON serializable dict
|
|
@@ -1756,6 +1785,8 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
1756
1785
|
A declaration of the security schemes available to be used in the specification.
|
|
1757
1786
|
security: List[Dict[str, List[str]]], optional
|
|
1758
1787
|
A declaration of which security mechanisms are applied globally across the API.
|
|
1788
|
+
openapi_extensions: Dict[str, Any], optional
|
|
1789
|
+
Additional OpenAPI extensions as a dictionary.
|
|
1759
1790
|
|
|
1760
1791
|
Returns
|
|
1761
1792
|
-------
|
|
@@ -1778,6 +1809,7 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
1778
1809
|
license_info=license_info,
|
|
1779
1810
|
security_schemes=security_schemes,
|
|
1780
1811
|
security=security,
|
|
1812
|
+
openapi_extensions=openapi_extensions,
|
|
1781
1813
|
),
|
|
1782
1814
|
by_alias=True,
|
|
1783
1815
|
exclude_none=True,
|
|
@@ -1805,6 +1837,7 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
1805
1837
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
1806
1838
|
oauth2_config: Optional["OAuth2Config"] = None,
|
|
1807
1839
|
persist_authorization: bool = False,
|
|
1840
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
1808
1841
|
):
|
|
1809
1842
|
"""
|
|
1810
1843
|
Returns the OpenAPI schema as a JSON serializable dict
|
|
@@ -1847,6 +1880,8 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
1847
1880
|
The OAuth2 configuration for the Swagger UI.
|
|
1848
1881
|
persist_authorization: bool, optional
|
|
1849
1882
|
Whether to persist authorization data on browser close/refresh.
|
|
1883
|
+
openapi_extensions: Dict[str, Any], optional
|
|
1884
|
+
Additional OpenAPI extensions as a dictionary.
|
|
1850
1885
|
"""
|
|
1851
1886
|
from aws_lambda_powertools.event_handler.openapi.compat import model_json
|
|
1852
1887
|
from aws_lambda_powertools.event_handler.openapi.models import Server
|
|
@@ -1896,6 +1931,7 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
1896
1931
|
license_info=license_info,
|
|
1897
1932
|
security_schemes=security_schemes,
|
|
1898
1933
|
security=security,
|
|
1934
|
+
openapi_extensions=openapi_extensions,
|
|
1899
1935
|
)
|
|
1900
1936
|
|
|
1901
1937
|
# The .replace('</', '<\\/') part is necessary to prevent a potential issue where the JSON string contains
|
|
@@ -1949,6 +1985,7 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
1949
1985
|
operation_id: Optional[str] = None,
|
|
1950
1986
|
include_in_schema: bool = True,
|
|
1951
1987
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
1988
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
1952
1989
|
middlewares: Optional[List[Callable[..., Any]]] = None,
|
|
1953
1990
|
):
|
|
1954
1991
|
"""Route decorator includes parameter `method`"""
|
|
@@ -1976,6 +2013,7 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
1976
2013
|
operation_id,
|
|
1977
2014
|
include_in_schema,
|
|
1978
2015
|
security,
|
|
2016
|
+
openapi_extensions,
|
|
1979
2017
|
middlewares,
|
|
1980
2018
|
)
|
|
1981
2019
|
|
|
@@ -2489,6 +2527,7 @@ class Router(BaseRouter):
|
|
|
2489
2527
|
operation_id: Optional[str] = None,
|
|
2490
2528
|
include_in_schema: bool = True,
|
|
2491
2529
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
2530
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
2492
2531
|
middlewares: Optional[List[Callable[..., Any]]] = None,
|
|
2493
2532
|
):
|
|
2494
2533
|
def register_route(func: Callable):
|
|
@@ -2497,6 +2536,7 @@ class Router(BaseRouter):
|
|
|
2497
2536
|
frozen_responses = _FrozenDict(responses) if responses else None
|
|
2498
2537
|
frozen_tags = frozenset(tags) if tags else None
|
|
2499
2538
|
frozen_security = _FrozenListDict(security) if security else None
|
|
2539
|
+
fronzen_openapi_extensions = _FrozenDict(openapi_extensions) if openapi_extensions else None
|
|
2500
2540
|
|
|
2501
2541
|
route_key = (
|
|
2502
2542
|
rule,
|
|
@@ -2512,6 +2552,7 @@ class Router(BaseRouter):
|
|
|
2512
2552
|
operation_id,
|
|
2513
2553
|
include_in_schema,
|
|
2514
2554
|
frozen_security,
|
|
2555
|
+
fronzen_openapi_extensions,
|
|
2515
2556
|
)
|
|
2516
2557
|
|
|
2517
2558
|
# Collate Middleware for routes
|
|
@@ -2592,6 +2633,7 @@ class APIGatewayRestResolver(ApiGatewayResolver):
|
|
|
2592
2633
|
operation_id: Optional[str] = None,
|
|
2593
2634
|
include_in_schema: bool = True,
|
|
2594
2635
|
security: Optional[List[Dict[str, List[str]]]] = None,
|
|
2636
|
+
openapi_extensions: Optional[Dict[str, Any]] = None,
|
|
2595
2637
|
middlewares: Optional[List[Callable[..., Any]]] = None,
|
|
2596
2638
|
):
|
|
2597
2639
|
# NOTE: see #1552 for more context.
|
|
@@ -2609,6 +2651,7 @@ class APIGatewayRestResolver(ApiGatewayResolver):
|
|
|
2609
2651
|
operation_id,
|
|
2610
2652
|
include_in_schema,
|
|
2611
2653
|
security,
|
|
2654
|
+
openapi_extensions,
|
|
2612
2655
|
middlewares,
|
|
2613
2656
|
)
|
|
2614
2657
|
|
|
@@ -102,6 +102,8 @@ class BedrockAgentResolver(ApiGatewayResolver):
|
|
|
102
102
|
include_in_schema: bool = True,
|
|
103
103
|
middlewares: Optional[List[Callable[..., Any]]] = None,
|
|
104
104
|
) -> Callable[[Callable[..., Any]], Callable[..., Any]]:
|
|
105
|
+
|
|
106
|
+
openapi_extensions = None
|
|
105
107
|
security = None
|
|
106
108
|
|
|
107
109
|
return super(BedrockAgentResolver, self).get(
|
|
@@ -117,6 +119,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
|
|
|
117
119
|
operation_id,
|
|
118
120
|
include_in_schema,
|
|
119
121
|
security,
|
|
122
|
+
openapi_extensions,
|
|
120
123
|
middlewares,
|
|
121
124
|
)
|
|
122
125
|
|
|
@@ -137,6 +140,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
|
|
|
137
140
|
include_in_schema: bool = True,
|
|
138
141
|
middlewares: Optional[List[Callable[..., Any]]] = None,
|
|
139
142
|
):
|
|
143
|
+
openapi_extensions = None
|
|
140
144
|
security = None
|
|
141
145
|
|
|
142
146
|
return super().post(
|
|
@@ -152,6 +156,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
|
|
|
152
156
|
operation_id,
|
|
153
157
|
include_in_schema,
|
|
154
158
|
security,
|
|
159
|
+
openapi_extensions,
|
|
155
160
|
middlewares,
|
|
156
161
|
)
|
|
157
162
|
|
|
@@ -172,6 +177,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
|
|
|
172
177
|
include_in_schema: bool = True,
|
|
173
178
|
middlewares: Optional[List[Callable[..., Any]]] = None,
|
|
174
179
|
):
|
|
180
|
+
openapi_extensions = None
|
|
175
181
|
security = None
|
|
176
182
|
|
|
177
183
|
return super().put(
|
|
@@ -187,6 +193,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
|
|
|
187
193
|
operation_id,
|
|
188
194
|
include_in_schema,
|
|
189
195
|
security,
|
|
196
|
+
openapi_extensions,
|
|
190
197
|
middlewares,
|
|
191
198
|
)
|
|
192
199
|
|
|
@@ -207,6 +214,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
|
|
|
207
214
|
include_in_schema: bool = True,
|
|
208
215
|
middlewares: Optional[List[Callable]] = None,
|
|
209
216
|
):
|
|
217
|
+
openapi_extensions = None
|
|
210
218
|
security = None
|
|
211
219
|
|
|
212
220
|
return super().patch(
|
|
@@ -222,6 +230,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
|
|
|
222
230
|
operation_id,
|
|
223
231
|
include_in_schema,
|
|
224
232
|
security,
|
|
233
|
+
openapi_extensions,
|
|
225
234
|
middlewares,
|
|
226
235
|
)
|
|
227
236
|
|
|
@@ -242,6 +251,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
|
|
|
242
251
|
include_in_schema: bool = True,
|
|
243
252
|
middlewares: Optional[List[Callable[..., Any]]] = None,
|
|
244
253
|
):
|
|
254
|
+
openapi_extensions = None
|
|
245
255
|
security = None
|
|
246
256
|
|
|
247
257
|
return super().delete(
|
|
@@ -257,6 +267,7 @@ class BedrockAgentResolver(ApiGatewayResolver):
|
|
|
257
267
|
operation_id,
|
|
258
268
|
include_in_schema,
|
|
259
269
|
security,
|
|
270
|
+
openapi_extensions,
|
|
260
271
|
middlewares,
|
|
261
272
|
)
|
|
262
273
|
|
|
@@ -41,7 +41,7 @@ sequence_types = tuple(sequence_annotation_to_type.keys())
|
|
|
41
41
|
RequestErrorModel: Type[BaseModel] = create_model("Request")
|
|
42
42
|
|
|
43
43
|
if PYDANTIC_V2: # pragma: no cover # false positive; dropping in v3
|
|
44
|
-
from pydantic import TypeAdapter, ValidationError
|
|
44
|
+
from pydantic import TypeAdapter, ValidationError, model_validator as parser_openapi_extension
|
|
45
45
|
from pydantic._internal._typing_extra import eval_type_lenient
|
|
46
46
|
from pydantic.fields import FieldInfo
|
|
47
47
|
from pydantic._internal._utils import lenient_issubclass
|
|
@@ -217,7 +217,7 @@ if PYDANTIC_V2: # pragma: no cover # false positive; dropping in v3
|
|
|
217
217
|
return model.model_dump_json(**kwargs)
|
|
218
218
|
|
|
219
219
|
else:
|
|
220
|
-
from pydantic import BaseModel, ValidationError
|
|
220
|
+
from pydantic import BaseModel, ValidationError, root_validator as parser_openapi_extension
|
|
221
221
|
from pydantic.fields import (
|
|
222
222
|
ModelField,
|
|
223
223
|
Required,
|
|
@@ -3,7 +3,8 @@ from typing import Any, Dict, List, Optional, Set, Union
|
|
|
3
3
|
|
|
4
4
|
from pydantic import AnyUrl, BaseModel, Field
|
|
5
5
|
|
|
6
|
-
from aws_lambda_powertools.event_handler.openapi.compat import model_rebuild
|
|
6
|
+
from aws_lambda_powertools.event_handler.openapi.compat import model_rebuild, parser_openapi_extension
|
|
7
|
+
from aws_lambda_powertools.event_handler.openapi.exceptions import SchemaValidationError
|
|
7
8
|
from aws_lambda_powertools.event_handler.openapi.pydantic_loader import PYDANTIC_V2
|
|
8
9
|
from aws_lambda_powertools.shared.types import Annotated, Literal
|
|
9
10
|
|
|
@@ -13,6 +14,62 @@ These models can be used to parse OpenAPI JSON/YAML files into Python objects, o
|
|
|
13
14
|
"""
|
|
14
15
|
|
|
15
16
|
|
|
17
|
+
class OpenAPIExtensions(BaseModel):
|
|
18
|
+
"""
|
|
19
|
+
This class serves as a Pydantic proxy model to add OpenAPI extensions.
|
|
20
|
+
|
|
21
|
+
OpenAPI extensions are arbitrary fields, so we remove openapi_extensions when dumping
|
|
22
|
+
and add only the provided value in the schema.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
openapi_extensions: Optional[Dict[str, Any]] = None
|
|
26
|
+
|
|
27
|
+
# This rule is valid for Pydantic v1 and v2
|
|
28
|
+
# If the 'openapi_extensions' field is present in the 'values' dictionary,
|
|
29
|
+
# And if the extension starts with x- (must respect the RFC)
|
|
30
|
+
# update the 'values' dictionary with the contents of 'openapi_extensions',
|
|
31
|
+
# and then remove the 'openapi_extensions' field from the 'values' dictionary
|
|
32
|
+
|
|
33
|
+
if PYDANTIC_V2:
|
|
34
|
+
|
|
35
|
+
model_config = {"extra": "allow"}
|
|
36
|
+
|
|
37
|
+
@parser_openapi_extension(mode="before")
|
|
38
|
+
def serialize_openapi_extension_v2(self):
|
|
39
|
+
if isinstance(self, dict) and self.get("openapi_extensions"):
|
|
40
|
+
|
|
41
|
+
openapi_extension_value = self.get("openapi_extensions")
|
|
42
|
+
|
|
43
|
+
for extension_key in openapi_extension_value:
|
|
44
|
+
if not str(extension_key).startswith("x-"):
|
|
45
|
+
raise SchemaValidationError("An OpenAPI extension key must start with x-")
|
|
46
|
+
|
|
47
|
+
self.update(openapi_extension_value)
|
|
48
|
+
self.pop("openapi_extensions", None)
|
|
49
|
+
|
|
50
|
+
return self
|
|
51
|
+
|
|
52
|
+
else:
|
|
53
|
+
|
|
54
|
+
@parser_openapi_extension(pre=False, allow_reuse=True)
|
|
55
|
+
def serialize_openapi_extension_v1(cls, values):
|
|
56
|
+
openapi_extension_value = values.get("openapi_extensions")
|
|
57
|
+
|
|
58
|
+
if openapi_extension_value:
|
|
59
|
+
|
|
60
|
+
for extension_key in openapi_extension_value:
|
|
61
|
+
if not str(extension_key).startswith("x-"):
|
|
62
|
+
raise SchemaValidationError("An OpenAPI extension key must start with x-")
|
|
63
|
+
|
|
64
|
+
values.update(values["openapi_extensions"])
|
|
65
|
+
del values["openapi_extensions"]
|
|
66
|
+
|
|
67
|
+
return values
|
|
68
|
+
|
|
69
|
+
class Config:
|
|
70
|
+
extra = "allow"
|
|
71
|
+
|
|
72
|
+
|
|
16
73
|
# https://swagger.io/specification/#contact-object
|
|
17
74
|
class Contact(BaseModel):
|
|
18
75
|
name: Optional[str] = None
|
|
@@ -77,7 +134,7 @@ class ServerVariable(BaseModel):
|
|
|
77
134
|
|
|
78
135
|
|
|
79
136
|
# https://swagger.io/specification/#server-object
|
|
80
|
-
class Server(
|
|
137
|
+
class Server(OpenAPIExtensions):
|
|
81
138
|
url: Union[AnyUrl, str]
|
|
82
139
|
description: Optional[str] = None
|
|
83
140
|
variables: Optional[Dict[str, ServerVariable]] = None
|
|
@@ -379,7 +436,7 @@ class Tag(BaseModel):
|
|
|
379
436
|
|
|
380
437
|
|
|
381
438
|
# https://swagger.io/specification/#operation-object
|
|
382
|
-
class Operation(
|
|
439
|
+
class Operation(OpenAPIExtensions):
|
|
383
440
|
tags: Optional[List[str]] = None
|
|
384
441
|
summary: Optional[str] = None
|
|
385
442
|
description: Optional[str] = None
|
|
@@ -436,12 +493,12 @@ class SecuritySchemeType(Enum):
|
|
|
436
493
|
openIdConnect = "openIdConnect"
|
|
437
494
|
|
|
438
495
|
|
|
439
|
-
class SecurityBase(
|
|
496
|
+
class SecurityBase(OpenAPIExtensions):
|
|
440
497
|
type_: SecuritySchemeType = Field(alias="type")
|
|
441
498
|
description: Optional[str] = None
|
|
442
499
|
|
|
443
500
|
if PYDANTIC_V2:
|
|
444
|
-
model_config = {"extra": "allow", "populate_by_name": True}
|
|
501
|
+
model_config = {"extra": "allow", "populate_by_name": True} # type: ignore
|
|
445
502
|
|
|
446
503
|
else:
|
|
447
504
|
|
|
@@ -557,7 +614,7 @@ class Components(BaseModel):
|
|
|
557
614
|
|
|
558
615
|
|
|
559
616
|
# https://swagger.io/specification/#openapi-object
|
|
560
|
-
class OpenAPI(
|
|
617
|
+
class OpenAPI(OpenAPIExtensions):
|
|
561
618
|
openapi: str
|
|
562
619
|
info: Info
|
|
563
620
|
jsonSchemaDialect: Optional[str] = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "aws_lambda_powertools"
|
|
3
|
-
version = "2.41.
|
|
3
|
+
version = "2.41.1a3"
|
|
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"]
|
|
@@ -115,7 +115,7 @@ datadog = ["datadog-lambda"]
|
|
|
115
115
|
datamasking = ["aws-encryption-sdk", "jsonpath-ng"]
|
|
116
116
|
|
|
117
117
|
[tool.poetry.group.dev.dependencies]
|
|
118
|
-
cfn-lint = "1.6.
|
|
118
|
+
cfn-lint = "1.6.1"
|
|
119
119
|
mypy = "^1.1.1"
|
|
120
120
|
types-python-dateutil = "^2.8.19.6"
|
|
121
121
|
aws-cdk-aws-appsync-alpha = "^2.59.0a0"
|
|
@@ -61,7 +61,7 @@ extras_require = \
|
|
|
61
61
|
|
|
62
62
|
setup_kwargs = {
|
|
63
63
|
'name': 'aws-lambda-powertools',
|
|
64
|
-
'version': '2.41.
|
|
64
|
+
'version': '2.41.1a3',
|
|
65
65
|
'description': 'Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.',
|
|
66
66
|
'long_description': '<!-- markdownlint-disable MD013 MD041 MD043 -->\n# Powertools for AWS Lambda (Python)\n\n[](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/python_build.yml)\n[](https://app.codecov.io/gh/aws-powertools/powertools-lambda-python)\n   [](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python) [](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\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* [Brsk](https://www.brsk.co.uk/)\n* [BusPatrol](https://buspatrol.com/)\n* [Capital One](https://www.capitalone.com/)\n* [CPQi (Exadel Financial Services)](https://cpqi.com/)\n* [CloudZero](https://www.cloudzero.com/)\n* [CyberArk](https://www.cyberark.com/)\n* [globaldatanet](https://globaldatanet.com/)\n* [IMS](https://ims.tech/)\n* [Jit Security](https://www.jit.io/)\n* [Propellor.ai](https://www.propellor.ai/)\n* [Recast](https://getrecast.com/)\n* [TopSport](https://www.topsport.com.au/)\n* [Transformity](https://transformity.tech/)\n* [Trek10](https://www.trek10.com/)\n* [Vertex Pharmaceuticals](https://www.vrtx.com/)\n\n### Sharing your work\n\nShare what you did with Powertools for AWS Lambda (Python) 💞💞. Blog post, workshops, presentation, sample apps and others. Check out what the community has already shared about Powertools for AWS Lambda (Python) [here](https://docs.powertools.aws.dev/lambda/python/latest/we_made_this/).\n\n### Using Lambda Layer or SAR\n\nThis helps us understand who uses Powertools for AWS Lambda (Python) in a non-intrusive way, and helps us gain future investments for other Powertools for AWS Lambda languages. When [using Layers](https://docs.powertools.aws.dev/lambda/python/latest/#lambda-layer), you can add Powertools for AWS Lambda (Python) as a dev dependency (or as part of your virtual env) to not impact the development process.\n\n## Credits\n\n* Structured logging initial implementation from [aws-lambda-logging](https://gitlab.com/hadrien/aws_lambda_logging)\n* Powertools for AWS Lambda (Python) idea [DAZN Powertools](https://github.com/getndazn/dazn-lambda-powertools/)\n\n## Connect\n\n* **Powertools for AWS Lambda on Discord**: `#python` - **[Invite link](https://discord.gg/B8zZKbbyET)**\n* **Email**: <aws-powertools-maintainers@amazon.com>\n\n## Security disclosures\n\nIf you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions [here](https://aws.amazon.com/security/vulnerability-reporting/) or [email AWS security directly](mailto:aws-security@amazon.com).\n\n## License\n\nThis library is licensed under the MIT-0 License. See the LICENSE file.\n',
|
|
67
67
|
'author': 'Amazon Web Services',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aws_lambda_powertools-2.41.1a1 → aws_lambda_powertools-2.41.1a3}/aws_lambda_powertools/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|