aws-lambda-powertools 3.5.1a7__tar.gz → 3.5.1a9__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.1a7 → aws_lambda_powertools-3.5.1a9}/PKG-INFO +1 -1
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/shared/version.py +1 -1
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +157 -16
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/pyproject.toml +2 -2
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/setup.py +1 -1
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/LICENSE +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/README.md +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/THIRD-PARTY-LICENSES +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/api_gateway.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/appsync.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/bedrock_agent.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/content_types.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/graphql_appsync/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/graphql_appsync/_registry.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/graphql_appsync/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/graphql_appsync/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/graphql_appsync/router.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/lambda_function_url.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/middlewares/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/middlewares/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/middlewares/openapi_validation.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/middlewares/schema_validation.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/compat.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/constants.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/dependant.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/encoders.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/models.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/params.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/pydantic_loader.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/swagger_ui/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/swagger_ui/html.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/swagger_ui/oauth2.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui-bundle.min.js +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui.min.css +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/openapi/types.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/router.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/types.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/util.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/event_handler/vpc_lattice.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/exceptions/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/logging/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/logging/constants.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/logging/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/logging/filters.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/logging/formatter.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/logging/formatters/datadog.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/logging/lambda_context.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/logging/logger.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/logging/types.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/logging/utils.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/functions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/metric.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/metrics.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/cold_start.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/datadog/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/datadog/datadog.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/datadog/metrics.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/provider/datadog/warnings.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/metrics/types.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/middleware_factory/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/package_logger.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/py.typed +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/shared/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/shared/cache_dict.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/shared/constants.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/shared/cookies.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/shared/dynamodb_deserializer.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/shared/functions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/shared/json_encoder.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/shared/lazy_import.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/shared/types.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/shared/user_agent.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/tracing/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/tracing/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/tracing/extensions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/tracing/tracer.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/batch/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/batch/decorators.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/batch/types.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/appsync/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/code_deploy_lifecycle_hook_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/common.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/shared_functions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/transfer_family_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_masking/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_masking/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_masking/constants.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_masking/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_masking/provider/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_masking/provider/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_masking/provider/kms/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/data_masking/provider/kms/aws_encryption_sdk.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/feature_flags/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/feature_flags/comparators.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/feature_flags/constants.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/feature_flags/types.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/hook.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/idempotency.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/persistence/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/persistence/datarecord.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/persistence/redis.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/functions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/no_op.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parameters/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parameters/constants.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parameters/ssm.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parameters/types.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/apigw_websocket.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/bedrock_agent.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/functions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/apigw_websocket.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/bedrock_agent.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/kafka.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/transfer_family.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/vpc_lattice.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/models/vpc_latticev2.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/parser.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/parser/types.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/serialization.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/streaming/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/streaming/constants.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/streaming/s3_object.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/streaming/types.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/typing/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/validation/base.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/validation/exceptions.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/utilities/validation/validator.py +0 -0
- {aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/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.1a9
|
|
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
|
|
@@ -5,7 +5,7 @@ import re
|
|
|
5
5
|
import warnings
|
|
6
6
|
from typing import Any, overload
|
|
7
7
|
|
|
8
|
-
from typing_extensions import deprecated
|
|
8
|
+
from typing_extensions import deprecated, override
|
|
9
9
|
|
|
10
10
|
from aws_lambda_powertools.utilities.data_classes.common import (
|
|
11
11
|
BaseRequestContext,
|
|
@@ -28,9 +28,10 @@ class APIGatewayRouteArn:
|
|
|
28
28
|
aws_account_id: str,
|
|
29
29
|
api_id: str,
|
|
30
30
|
stage: str,
|
|
31
|
-
http_method: str,
|
|
31
|
+
http_method: str | None,
|
|
32
32
|
resource: str,
|
|
33
33
|
partition: str = "aws",
|
|
34
|
+
is_websocket_authorizer: bool = False,
|
|
34
35
|
):
|
|
35
36
|
self.partition = partition
|
|
36
37
|
self.region = region
|
|
@@ -40,39 +41,54 @@ class APIGatewayRouteArn:
|
|
|
40
41
|
self.http_method = http_method
|
|
41
42
|
# Remove matching "/" from `resource`.
|
|
42
43
|
self.resource = resource.lstrip("/")
|
|
44
|
+
self.is_websocket_authorizer = is_websocket_authorizer
|
|
43
45
|
|
|
44
46
|
@property
|
|
45
47
|
def arn(self) -> str:
|
|
46
48
|
"""Build an arn from its parts
|
|
47
49
|
eg: arn:aws:execute-api:us-east-1:123456789012:abcdef123/test/GET/request"""
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
base_arn = f"arn:{self.partition}:execute-api:{self.region}:{self.aws_account_id}:{self.api_id}/{self.stage}"
|
|
51
|
+
|
|
52
|
+
if not self.is_websocket_authorizer:
|
|
53
|
+
return f"{base_arn}/{self.http_method}/{self.resource}"
|
|
54
|
+
else:
|
|
55
|
+
return f"{base_arn}/{self.resource}"
|
|
52
56
|
|
|
53
57
|
|
|
54
|
-
def parse_api_gateway_arn(arn: str) -> APIGatewayRouteArn:
|
|
58
|
+
def parse_api_gateway_arn(arn: str, is_websocket_authorizer: bool = False) -> APIGatewayRouteArn:
|
|
55
59
|
"""Parses a gateway route arn as a APIGatewayRouteArn class
|
|
56
60
|
|
|
57
61
|
Parameters
|
|
58
62
|
----------
|
|
59
63
|
arn : str
|
|
60
64
|
ARN string for a methodArn or a routeArn
|
|
65
|
+
is_websocket_authorizer: bool
|
|
66
|
+
If it's a API Gateway Websocket
|
|
67
|
+
|
|
61
68
|
Returns
|
|
62
69
|
-------
|
|
63
70
|
APIGatewayRouteArn
|
|
64
71
|
"""
|
|
65
72
|
arn_parts = arn.split(":")
|
|
66
73
|
api_gateway_arn_parts = arn_parts[5].split("/")
|
|
74
|
+
|
|
75
|
+
if not is_websocket_authorizer:
|
|
76
|
+
http_method = api_gateway_arn_parts[2]
|
|
77
|
+
resource = "/".join(api_gateway_arn_parts[3:]) if len(api_gateway_arn_parts) >= 4 else ""
|
|
78
|
+
else:
|
|
79
|
+
http_method = None
|
|
80
|
+
resource = "/".join(api_gateway_arn_parts[2:])
|
|
81
|
+
|
|
67
82
|
return APIGatewayRouteArn(
|
|
68
83
|
partition=arn_parts[1],
|
|
69
84
|
region=arn_parts[3],
|
|
70
85
|
aws_account_id=arn_parts[4],
|
|
71
86
|
api_id=api_gateway_arn_parts[0],
|
|
72
87
|
stage=api_gateway_arn_parts[1],
|
|
73
|
-
http_method=
|
|
88
|
+
http_method=http_method,
|
|
74
89
|
# conditional allow us to handle /path/{proxy+} resources, as their length changes.
|
|
75
|
-
resource=
|
|
90
|
+
resource=resource,
|
|
91
|
+
is_websocket_authorizer=is_websocket_authorizer,
|
|
76
92
|
)
|
|
77
93
|
|
|
78
94
|
|
|
@@ -512,13 +528,14 @@ class APIGatewayAuthorizerResponse:
|
|
|
512
528
|
raise ValueError(f"Invalid resource path: {resource}. Path should match {self.path_regex}")
|
|
513
529
|
|
|
514
530
|
resource_arn = APIGatewayRouteArn(
|
|
515
|
-
self.region,
|
|
516
|
-
self.aws_account_id,
|
|
517
|
-
self.api_id,
|
|
518
|
-
self.stage,
|
|
519
|
-
http_method,
|
|
520
|
-
resource,
|
|
521
|
-
self.partition,
|
|
531
|
+
region=self.region,
|
|
532
|
+
aws_account_id=self.aws_account_id,
|
|
533
|
+
api_id=self.api_id,
|
|
534
|
+
stage=self.stage,
|
|
535
|
+
http_method=http_method,
|
|
536
|
+
resource=resource,
|
|
537
|
+
partition=self.partition,
|
|
538
|
+
is_websocket_authorizer=False,
|
|
522
539
|
).arn
|
|
523
540
|
|
|
524
541
|
route = {"resourceArn": resource_arn, "conditions": conditions}
|
|
@@ -617,3 +634,127 @@ class APIGatewayAuthorizerResponse:
|
|
|
617
634
|
response["context"] = self.context
|
|
618
635
|
|
|
619
636
|
return response
|
|
637
|
+
|
|
638
|
+
|
|
639
|
+
class APIGatewayAuthorizerResponseWebSocket(APIGatewayAuthorizerResponse):
|
|
640
|
+
"""The IAM Policy Response required for API Gateway WebSocket APIs
|
|
641
|
+
|
|
642
|
+
Based on: - https://github.com/awslabs/aws-apigateway-lambda-authorizer-blueprints/blob/\
|
|
643
|
+
master/blueprints/python/api-gateway-authorizer-python.py
|
|
644
|
+
|
|
645
|
+
Documentation:
|
|
646
|
+
-------------
|
|
647
|
+
- https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html
|
|
648
|
+
- https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-output.html
|
|
649
|
+
"""
|
|
650
|
+
|
|
651
|
+
@staticmethod
|
|
652
|
+
def from_route_arn(
|
|
653
|
+
arn: str,
|
|
654
|
+
principal_id: str,
|
|
655
|
+
context: dict | None = None,
|
|
656
|
+
usage_identifier_key: str | None = None,
|
|
657
|
+
) -> APIGatewayAuthorizerResponseWebSocket:
|
|
658
|
+
parsed_arn = parse_api_gateway_arn(arn, is_websocket_authorizer=True)
|
|
659
|
+
return APIGatewayAuthorizerResponseWebSocket(
|
|
660
|
+
principal_id,
|
|
661
|
+
parsed_arn.region,
|
|
662
|
+
parsed_arn.aws_account_id,
|
|
663
|
+
parsed_arn.api_id,
|
|
664
|
+
parsed_arn.stage,
|
|
665
|
+
context,
|
|
666
|
+
usage_identifier_key,
|
|
667
|
+
)
|
|
668
|
+
|
|
669
|
+
# Note: we need ignore[override] because we are removing the http_method field
|
|
670
|
+
@override
|
|
671
|
+
def _add_route(self, effect: str, resource: str, conditions: list[dict] | None = None): # type: ignore[override]
|
|
672
|
+
"""Adds a route to the internal lists of allowed or denied routes. Each object in
|
|
673
|
+
the internal list contains a resource ARN and a condition statement. The condition
|
|
674
|
+
statement can be null."""
|
|
675
|
+
resource_arn = APIGatewayRouteArn(
|
|
676
|
+
region=self.region,
|
|
677
|
+
aws_account_id=self.aws_account_id,
|
|
678
|
+
api_id=self.api_id,
|
|
679
|
+
stage=self.stage,
|
|
680
|
+
http_method=None,
|
|
681
|
+
resource=resource,
|
|
682
|
+
partition=self.partition,
|
|
683
|
+
is_websocket_authorizer=True,
|
|
684
|
+
).arn
|
|
685
|
+
|
|
686
|
+
route = {"resourceArn": resource_arn, "conditions": conditions}
|
|
687
|
+
|
|
688
|
+
if effect.lower() == "allow":
|
|
689
|
+
self._allow_routes.append(route)
|
|
690
|
+
else: # deny
|
|
691
|
+
self._deny_routes.append(route)
|
|
692
|
+
|
|
693
|
+
@override
|
|
694
|
+
def allow_all_routes(self):
|
|
695
|
+
"""Adds a '*' allow to the policy to authorize access to all methods of an API"""
|
|
696
|
+
self._add_route(effect="Allow", resource="*")
|
|
697
|
+
|
|
698
|
+
@override
|
|
699
|
+
def deny_all_routes(self):
|
|
700
|
+
"""Adds a '*' allow to the policy to deny access to all methods of an API"""
|
|
701
|
+
|
|
702
|
+
self._add_route(effect="Deny", resource="*")
|
|
703
|
+
|
|
704
|
+
# Note: we need ignore[override] because we are removing the http_method field
|
|
705
|
+
@override
|
|
706
|
+
def allow_route(self, resource: str, conditions: list[dict] | None = None): # type: ignore[override]
|
|
707
|
+
"""
|
|
708
|
+
Add an API Gateway Websocket method to the list of allowed methods for the policy.
|
|
709
|
+
|
|
710
|
+
This method adds an API Gateway Websocket method Resource path) to the list of
|
|
711
|
+
allowed methods for the policy. It optionally includes conditions for the policy statement.
|
|
712
|
+
|
|
713
|
+
Parameters
|
|
714
|
+
----------
|
|
715
|
+
resource : str
|
|
716
|
+
The API Gateway resource path to allow.
|
|
717
|
+
conditions : list[dict] | None, optional
|
|
718
|
+
A list of condition dictionaries to apply to the policy statement.
|
|
719
|
+
Default is None.
|
|
720
|
+
|
|
721
|
+
Notes
|
|
722
|
+
-----
|
|
723
|
+
For more information on AWS policy conditions, see:
|
|
724
|
+
https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition
|
|
725
|
+
|
|
726
|
+
Example
|
|
727
|
+
--------
|
|
728
|
+
>>> policy = APIGatewayAuthorizerResponseWebSocket(...)
|
|
729
|
+
>>> policy.allow_route("/api/users", [{"StringEquals": {"aws:RequestTag/Environment": "Production"}}])
|
|
730
|
+
"""
|
|
731
|
+
self._add_route(effect="Allow", resource=resource, conditions=conditions)
|
|
732
|
+
|
|
733
|
+
# Note: we need ignore[override] because we are removing the http_method field
|
|
734
|
+
@override
|
|
735
|
+
def deny_route(self, resource: str, conditions: list[dict] | None = None): # type: ignore[override]
|
|
736
|
+
"""
|
|
737
|
+
Add an API Gateway Websocket method to the list of allowed methods for the policy.
|
|
738
|
+
|
|
739
|
+
This method adds an API Gateway Websocket method Resource path) to the list of
|
|
740
|
+
denied methods for the policy. It optionally includes conditions for the policy statement.
|
|
741
|
+
|
|
742
|
+
Parameters
|
|
743
|
+
----------
|
|
744
|
+
resource : str
|
|
745
|
+
The API Gateway resource path to allow.
|
|
746
|
+
conditions : list[dict] | None, optional
|
|
747
|
+
A list of condition dictionaries to apply to the policy statement.
|
|
748
|
+
Default is None.
|
|
749
|
+
|
|
750
|
+
Notes
|
|
751
|
+
-----
|
|
752
|
+
For more information on AWS policy conditions, see:
|
|
753
|
+
https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition
|
|
754
|
+
|
|
755
|
+
Example
|
|
756
|
+
--------
|
|
757
|
+
>>> policy = APIGatewayAuthorizerResponseWebSocket(...)
|
|
758
|
+
>>> policy.deny_route("/api/users", [{"StringEquals": {"aws:RequestTag/Environment": "Production"}}])
|
|
759
|
+
"""
|
|
760
|
+
self._add_route(effect="Deny", resource=resource, conditions=conditions)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "aws_lambda_powertools"
|
|
3
|
-
version = "3.5.
|
|
3
|
+
version = "3.5.1a9"
|
|
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"]
|
|
@@ -113,7 +113,7 @@ types-python-dateutil = "^2.8.19.6"
|
|
|
113
113
|
aws-cdk-aws-appsync-alpha = "^2.59.0a0"
|
|
114
114
|
httpx = ">=0.23.3,<0.29.0"
|
|
115
115
|
sentry-sdk = ">=1.22.2,<3.0.0"
|
|
116
|
-
ruff = ">=0.5.1,<0.9.
|
|
116
|
+
ruff = ">=0.5.1,<0.9.7"
|
|
117
117
|
retry2 = "^0.9.5"
|
|
118
118
|
pytest-socket = ">=0.6,<0.8"
|
|
119
119
|
types-redis = "^4.6.0.7"
|
|
@@ -64,7 +64,7 @@ extras_require = \
|
|
|
64
64
|
|
|
65
65
|
setup_kwargs = {
|
|
66
66
|
'name': 'aws_lambda_powertools',
|
|
67
|
-
'version': '3.5.
|
|
67
|
+
'version': '3.5.1a9',
|
|
68
68
|
'description': 'Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.',
|
|
69
69
|
'long_description': '<!-- markdownlint-disable MD013 MD041 MD043 -->\n# Powertools for AWS Lambda (Python)\n\n[](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* [Alma Media](https://www.almamedia.fi/en/)\n* [Banxware](https://www.banxware.com/)\n* [Brsk](https://www.brsk.co.uk/)\n* [BusPatrol](https://buspatrol.com/)\n* [Capital One](https://www.capitalone.com/)\n* [Caylent](https://caylent.com/)\n* [CHS Inc.](https://www.chsinc.com/)\n* [CPQi (Exadel Financial Services)](https://cpqi.com/)\n* [CloudZero](https://www.cloudzero.com/)\n* [CyberArk](https://www.cyberark.com/)\n* [Flyweight](https://flyweight.io/)\n* [globaldatanet](https://globaldatanet.com/)\n* [IMS](https://ims.tech/)\n* [Jit Security](https://www.jit.io/)\n* [LocalStack](https://www.localstack.cloud/)\n* [Propellor.ai](https://www.propellor.ai/)\n* [Pushpay](https://pushpay.com/)\n* [Recast](https://getrecast.com/)\n* [TopSport](https://www.topsport.com.au/)\n* [Transformity](https://transformity.tech/)\n* [Trek10](https://www.trek10.com/)\n* [Vertex Pharmaceuticals](https://www.vrtx.com/)\n\n### Sharing your work\n\nShare what you did with Powertools for AWS Lambda (Python) 💞💞. Blog post, workshops, presentation, sample apps and others. Check out what the community has already shared about Powertools for AWS Lambda (Python) [here](https://docs.powertools.aws.dev/lambda/python/latest/we_made_this/).\n\n### Using Lambda Layer or SAR\n\nThis helps us understand who uses Powertools for AWS Lambda (Python) in a non-intrusive way, and helps us gain future investments for other Powertools for AWS Lambda languages. When [using Layers](https://docs.powertools.aws.dev/lambda/python/latest/#lambda-layer), you can add Powertools for AWS Lambda (Python) as a dev dependency (or as part of your virtual env) to not impact the development process.\n\n## Credits\n\n* Structured logging initial implementation from [aws-lambda-logging](https://gitlab.com/hadrien/aws_lambda_logging)\n* Powertools for AWS Lambda (Python) idea [DAZN Powertools](https://github.com/getndazn/dazn-lambda-powertools/)\n\n## Connect\n\n* **Powertools for AWS Lambda on Discord**: `#python` - **[Invite link](https://discord.gg/B8zZKbbyET)**\n* **Email**: <aws-powertools-maintainers@amazon.com>\n\n## Security disclosures\n\nIf you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions [here](https://aws.amazon.com/security/vulnerability-reporting/) or [email AWS security directly](mailto:aws-security@amazon.com).\n\n## License\n\nThis library is licensed under the MIT-0 License. See the LICENSE file.\n',
|
|
70
70
|
'author': 'Amazon Web Services',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/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
|
|
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
|
{aws_lambda_powertools-3.5.1a7 → aws_lambda_powertools-3.5.1a9}/aws_lambda_powertools/py.typed
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
|
|
File without changes
|
|
File without changes
|