aws-lambda-powertools 2.16.2__tar.gz → 2.17.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/PKG-INFO +2 -2
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/README.md +1 -1
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/event_handler/api_gateway.py +14 -3
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/logging/formatter.py +11 -8
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/logging/formatters/datadog.py +4 -3
- aws_lambda_powertools-2.17.0/aws_lambda_powertools/logging/types.py +50 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/shared/version.py +1 -1
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/__init__.py +4 -0
- aws_lambda_powertools-2.17.0/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +361 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/common.py +1 -1
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +1 -1
- aws_lambda_powertools-2.17.0/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +91 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/idempotency/base.py +3 -2
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +35 -6
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/__init__.py +10 -0
- aws_lambda_powertools-2.17.0/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +29 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/pyproject.toml +11 -11
- aws_lambda_powertools-2.17.0/setup.py +64 -0
- aws_lambda_powertools-2.16.2/setup.py +0 -64
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/LICENSE +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/THIRD-PARTY-LICENSES +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/event_handler/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/event_handler/appsync.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/event_handler/content_types.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/event_handler/lambda_function_url.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/event_handler/router.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/exceptions/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/logging/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/logging/compat.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/logging/exceptions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/logging/filters.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/logging/lambda_context.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/logging/logger.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/logging/utils.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/metrics/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/metrics/base.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/metrics/exceptions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/metrics/metric.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/metrics/metrics.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/metrics/types.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/middleware_factory/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/package_logger.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/py.typed +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/shared/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/shared/cache_dict.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/shared/constants.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/shared/cookies.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/shared/functions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/shared/json_encoder.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/shared/lazy_import.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/shared/types.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/shared/user_agent.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/tracing/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/tracing/base.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/tracing/extensions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/tracing/tracer.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/batch/base.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/batch/decorators.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/batch/types.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/appsync/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/feature_flags/base.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/feature_flags/time_conditions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/idempotency/idempotency.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/idempotency/persistence/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parameters/base.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parameters/ssm.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parameters/types.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/kafka.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/parser.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/pydantic.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/parser/types.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/streaming/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/streaming/s3_object.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/typing/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/validation/base.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/validation/exceptions.py +0 -0
- {aws_lambda_powertools-2.16.2 → aws_lambda_powertools-2.17.0}/aws_lambda_powertools/utilities/validation/validator.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: aws-lambda-powertools
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.17.0
|
|
4
4
|
Summary: Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.
|
|
5
5
|
Home-page: https://github.com/awslabs/aws-lambda-powertools-python
|
|
6
6
|
License: MIT
|
|
@@ -37,7 +37,7 @@ Description-Content-Type: text/markdown
|
|
|
37
37
|
<!-- markdownlint-disable MD013 MD041 MD043 -->
|
|
38
38
|
# Powertools for AWS Lambda (Python)
|
|
39
39
|
|
|
40
|
-
[](https://github.com/awslabs/aws-lambda-powertools-python/actions/workflows/python_build.yml)
|
|
41
41
|
[](https://app.codecov.io/gh/awslabs/aws-lambda-powertools-python)
|
|
42
42
|
   [](https://discord.gg/B8zZKbbyET)
|
|
43
43
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!-- markdownlint-disable MD013 MD041 MD043 -->
|
|
2
2
|
# Powertools for AWS Lambda (Python)
|
|
3
3
|
|
|
4
|
-
[](https://github.com/awslabs/aws-lambda-powertools-python/actions/workflows/python_build.yml)
|
|
5
5
|
[](https://app.codecov.io/gh/awslabs/aws-lambda-powertools-python)
|
|
6
6
|
   [](https://discord.gg/B8zZKbbyET)
|
|
7
7
|
|
|
@@ -483,7 +483,8 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
483
483
|
with api gateways with multiple custom mappings.
|
|
484
484
|
"""
|
|
485
485
|
self._proxy_type = proxy_type
|
|
486
|
-
self.
|
|
486
|
+
self._dynamic_routes: List[Route] = []
|
|
487
|
+
self._static_routes: List[Route] = []
|
|
487
488
|
self._route_keys: List[str] = []
|
|
488
489
|
self._exception_handlers: Dict[Type, Callable] = {}
|
|
489
490
|
self._cors = cors
|
|
@@ -515,7 +516,17 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
515
516
|
cors_enabled = cors
|
|
516
517
|
|
|
517
518
|
for item in methods:
|
|
518
|
-
|
|
519
|
+
_route = Route(item, self._compile_regex(rule), func, cors_enabled, compress, cache_control)
|
|
520
|
+
|
|
521
|
+
# The more specific route wins.
|
|
522
|
+
# We store dynamic (/studies/{studyid}) and static routes (/studies/fetch) separately.
|
|
523
|
+
# Then attempt a match for static routes before dynamic routes.
|
|
524
|
+
# This ensures that the most specific route is prioritized and processed first (studies/fetch).
|
|
525
|
+
if _route.rule.groups > 0:
|
|
526
|
+
self._dynamic_routes.append(_route)
|
|
527
|
+
else:
|
|
528
|
+
self._static_routes.append(_route)
|
|
529
|
+
|
|
519
530
|
route_key = item + rule
|
|
520
531
|
if route_key in self._route_keys:
|
|
521
532
|
warnings.warn(
|
|
@@ -624,7 +635,7 @@ class ApiGatewayResolver(BaseRouter):
|
|
|
624
635
|
"""Resolves the response or return the not found response"""
|
|
625
636
|
method = self.current_event.http_method.upper()
|
|
626
637
|
path = self._remove_prefix(self.current_event.path)
|
|
627
|
-
for route in self.
|
|
638
|
+
for route in self._static_routes + self._dynamic_routes:
|
|
628
639
|
if method != route.method:
|
|
629
640
|
continue
|
|
630
641
|
match_results: Optional[Match] = route.rule.match(path)
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
import inspect
|
|
2
4
|
import json
|
|
3
5
|
import logging
|
|
@@ -8,8 +10,9 @@ from datetime import datetime, timezone
|
|
|
8
10
|
from functools import partial
|
|
9
11
|
from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, Union
|
|
10
12
|
|
|
11
|
-
from
|
|
12
|
-
from
|
|
13
|
+
from aws_lambda_powertools.logging.types import LogRecord
|
|
14
|
+
from aws_lambda_powertools.shared import constants
|
|
15
|
+
from aws_lambda_powertools.shared.functions import powertools_dev_is_set
|
|
13
16
|
|
|
14
17
|
RESERVED_LOG_ATTRS = (
|
|
15
18
|
"name",
|
|
@@ -66,12 +69,12 @@ class LambdaPowertoolsFormatter(BasePowertoolsFormatter):
|
|
|
66
69
|
|
|
67
70
|
def __init__(
|
|
68
71
|
self,
|
|
69
|
-
json_serializer:
|
|
70
|
-
json_deserializer:
|
|
71
|
-
json_default:
|
|
72
|
-
datefmt:
|
|
72
|
+
json_serializer: Callable[[LogRecord], str] | None = None,
|
|
73
|
+
json_deserializer: Callable[[Dict | str | bool | int | float], str] | None = None,
|
|
74
|
+
json_default: Callable[[Any], Any] | None = None,
|
|
75
|
+
datefmt: str | None = None,
|
|
73
76
|
use_datetime_directive: bool = False,
|
|
74
|
-
log_record_order:
|
|
77
|
+
log_record_order: List[str] | None = None,
|
|
75
78
|
utc: bool = False,
|
|
76
79
|
use_rfc3339: bool = False,
|
|
77
80
|
**kwargs,
|
|
@@ -144,7 +147,7 @@ class LambdaPowertoolsFormatter(BasePowertoolsFormatter):
|
|
|
144
147
|
|
|
145
148
|
super().__init__(datefmt=self.datefmt)
|
|
146
149
|
|
|
147
|
-
def serialize(self, log:
|
|
150
|
+
def serialize(self, log: LogRecord) -> str:
|
|
148
151
|
"""Serialize structured log dict to JSON str"""
|
|
149
152
|
return self.json_serializer(log)
|
|
150
153
|
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from typing import Any, Callable
|
|
3
|
+
from typing import Any, Callable, Dict
|
|
4
4
|
|
|
5
5
|
from aws_lambda_powertools.logging.formatter import LambdaPowertoolsFormatter
|
|
6
|
+
from aws_lambda_powertools.logging.types import LogRecord
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class DatadogLogFormatter(LambdaPowertoolsFormatter):
|
|
9
10
|
def __init__(
|
|
10
11
|
self,
|
|
11
|
-
json_serializer: Callable[[
|
|
12
|
-
json_deserializer: Callable[[
|
|
12
|
+
json_serializer: Callable[[LogRecord], str] | None = None,
|
|
13
|
+
json_deserializer: Callable[[Dict | str | bool | int | float], str] | None = None,
|
|
13
14
|
json_default: Callable[[Any], Any] | None = None,
|
|
14
15
|
datefmt: str | None = None,
|
|
15
16
|
use_datetime_directive: bool = False,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import sys
|
|
4
|
+
|
|
5
|
+
if sys.version_info >= (3, 11):
|
|
6
|
+
from typing import NotRequired
|
|
7
|
+
else:
|
|
8
|
+
from typing_extensions import NotRequired
|
|
9
|
+
|
|
10
|
+
if sys.version_info >= (3, 8):
|
|
11
|
+
from typing import TypedDict
|
|
12
|
+
else:
|
|
13
|
+
from typing_extensions import TypedDict
|
|
14
|
+
|
|
15
|
+
if sys.version_info >= (3, 10):
|
|
16
|
+
from typing import TypeAlias
|
|
17
|
+
else:
|
|
18
|
+
from typing_extensions import TypeAlias
|
|
19
|
+
|
|
20
|
+
from typing import Any, Dict, List, Union
|
|
21
|
+
|
|
22
|
+
LogRecord: TypeAlias = Union[Dict[str, Any], "PowertoolsLogRecord"]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class PowertoolsLogRecord(TypedDict):
|
|
26
|
+
# Base fields (required)
|
|
27
|
+
level: str
|
|
28
|
+
location: str
|
|
29
|
+
message: Dict[str, Any] | str | bool | List[Any]
|
|
30
|
+
timestamp: str | int
|
|
31
|
+
service: str
|
|
32
|
+
|
|
33
|
+
# Fields from logger.inject_lambda_context
|
|
34
|
+
cold_start: NotRequired[bool]
|
|
35
|
+
function_name: NotRequired[str]
|
|
36
|
+
function_memory_size: NotRequired[int]
|
|
37
|
+
function_arn: NotRequired[str]
|
|
38
|
+
function_request_id: NotRequired[str]
|
|
39
|
+
# From logger.inject_lambda_context if AWS X-Ray is enabled
|
|
40
|
+
xray_trace_id: NotRequired[str]
|
|
41
|
+
|
|
42
|
+
# If sample_rate is defined
|
|
43
|
+
sampling_rate: NotRequired[float]
|
|
44
|
+
|
|
45
|
+
# From logger.set_correlation_id
|
|
46
|
+
correlation_id: NotRequired[str]
|
|
47
|
+
|
|
48
|
+
# Fields from logger.exception
|
|
49
|
+
exception_name: NotRequired[str]
|
|
50
|
+
exception: NotRequired[str]
|
|
@@ -5,6 +5,7 @@ Event Source Data Classes utility provides classes self-describing Lambda event
|
|
|
5
5
|
from .alb_event import ALBEvent
|
|
6
6
|
from .api_gateway_proxy_event import APIGatewayProxyEvent, APIGatewayProxyEventV2
|
|
7
7
|
from .appsync_resolver_event import AppSyncResolverEvent
|
|
8
|
+
from .aws_config_rule_event import AWSConfigRuleEvent
|
|
8
9
|
from .cloud_watch_custom_widget_event import CloudWatchDashboardCustomWidgetEvent
|
|
9
10
|
from .cloud_watch_logs_event import CloudWatchLogsEvent
|
|
10
11
|
from .code_pipeline_job_event import CodePipelineJobEvent
|
|
@@ -20,6 +21,7 @@ from .s3_event import S3Event, S3EventBridgeNotificationEvent
|
|
|
20
21
|
from .ses_event import SESEvent
|
|
21
22
|
from .sns_event import SNSEvent
|
|
22
23
|
from .sqs_event import SQSEvent
|
|
24
|
+
from .vpc_lattice import VPCLatticeEvent
|
|
23
25
|
|
|
24
26
|
__all__ = [
|
|
25
27
|
"APIGatewayProxyEvent",
|
|
@@ -42,4 +44,6 @@ __all__ = [
|
|
|
42
44
|
"SNSEvent",
|
|
43
45
|
"SQSEvent",
|
|
44
46
|
"event_source",
|
|
47
|
+
"AWSConfigRuleEvent",
|
|
48
|
+
"VPCLatticeEvent",
|
|
45
49
|
]
|
aws_lambda_powertools-2.17.0/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py
ADDED
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
from typing import Any, Dict, List, Optional
|
|
5
|
+
|
|
6
|
+
from aws_lambda_powertools.utilities.data_classes.common import DictWrapper
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def get_invoke_event(
|
|
10
|
+
invoking_event: dict,
|
|
11
|
+
) -> AWSConfigConfigurationChanged | AWSConfigScheduledNotification | AWSConfigOversizedConfiguration:
|
|
12
|
+
"""
|
|
13
|
+
Returns the corresponding event object based on the messageType in the invoking event.
|
|
14
|
+
|
|
15
|
+
Parameters
|
|
16
|
+
----------
|
|
17
|
+
invoking_event: dict
|
|
18
|
+
The invoking event received.
|
|
19
|
+
|
|
20
|
+
Returns
|
|
21
|
+
-------
|
|
22
|
+
AWSConfigConfigurationChanged | AWSConfigScheduledNotification | AWSConfigOversizedConfiguration:
|
|
23
|
+
The event object based on the messageType in the invoking event.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
message_type = invoking_event.get("messageType")
|
|
27
|
+
|
|
28
|
+
if message_type == "ScheduledNotification":
|
|
29
|
+
return AWSConfigScheduledNotification(invoking_event)
|
|
30
|
+
|
|
31
|
+
if message_type == "OversizedConfigurationItemChangeNotification":
|
|
32
|
+
return AWSConfigOversizedConfiguration(invoking_event)
|
|
33
|
+
|
|
34
|
+
# Default return is AWSConfigConfigurationChanged event
|
|
35
|
+
return AWSConfigConfigurationChanged(invoking_event)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class AWSConfigConfigurationChanged(DictWrapper):
|
|
39
|
+
@property
|
|
40
|
+
def configuration_item_diff(self) -> Dict:
|
|
41
|
+
"""The configuration item diff of the ConfigurationItemChangeNotification event."""
|
|
42
|
+
return self["configurationItemDiff"]
|
|
43
|
+
|
|
44
|
+
@property
|
|
45
|
+
def configuration_item(self) -> AWSConfigConfigurationItemChanged:
|
|
46
|
+
"""The configuration item of the ConfigurationItemChangeNotification event."""
|
|
47
|
+
return AWSConfigConfigurationItemChanged(self["configurationItem"])
|
|
48
|
+
|
|
49
|
+
@property
|
|
50
|
+
def raw_configuration_item(self) -> Dict:
|
|
51
|
+
"""The raw configuration item of the ConfigurationItemChangeNotification event."""
|
|
52
|
+
return self["configurationItem"]
|
|
53
|
+
|
|
54
|
+
@property
|
|
55
|
+
def record_version(self) -> str:
|
|
56
|
+
"""The record version of the ConfigurationItemChangeNotification event."""
|
|
57
|
+
return self["recordVersion"]
|
|
58
|
+
|
|
59
|
+
@property
|
|
60
|
+
def message_type(self) -> str:
|
|
61
|
+
"""The message type of the ConfigurationItemChangeNotification event."""
|
|
62
|
+
return self["messageType"]
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
def notification_creation_time(self) -> str:
|
|
66
|
+
"""The notification creation time of the ConfigurationItemChangeNotification event."""
|
|
67
|
+
return self["notificationCreationTime"]
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class AWSConfigConfigurationItemChanged(DictWrapper):
|
|
71
|
+
@property
|
|
72
|
+
def related_events(self) -> List:
|
|
73
|
+
"""The related events of the ConfigurationItemChangeNotification event."""
|
|
74
|
+
return self["relatedEvents"]
|
|
75
|
+
|
|
76
|
+
@property
|
|
77
|
+
def relationships(self) -> List:
|
|
78
|
+
"""The relationships of the ConfigurationItemChangeNotification event."""
|
|
79
|
+
return self["relationships"]
|
|
80
|
+
|
|
81
|
+
@property
|
|
82
|
+
def configuration(self) -> Dict:
|
|
83
|
+
"""The configuration of the ConfigurationItemChangeNotification event."""
|
|
84
|
+
return self["configuration"]
|
|
85
|
+
|
|
86
|
+
@property
|
|
87
|
+
def supplementary_configuration(self) -> Dict:
|
|
88
|
+
"""The supplementary configuration of the ConfigurationItemChangeNotification event."""
|
|
89
|
+
return self["supplementaryConfiguration"]
|
|
90
|
+
|
|
91
|
+
@property
|
|
92
|
+
def tags(self) -> Dict:
|
|
93
|
+
"""The tags of the ConfigurationItemChangeNotification event."""
|
|
94
|
+
return self["tags"]
|
|
95
|
+
|
|
96
|
+
@property
|
|
97
|
+
def configuration_item_version(self) -> str:
|
|
98
|
+
"""The configuration item version of the ConfigurationItemChangeNotification event."""
|
|
99
|
+
return self["configurationItemVersion"]
|
|
100
|
+
|
|
101
|
+
@property
|
|
102
|
+
def configuration_item_capture_time(self) -> str:
|
|
103
|
+
"""The configuration item capture time of the ConfigurationItemChangeNotification event."""
|
|
104
|
+
return self["configurationItemCaptureTime"]
|
|
105
|
+
|
|
106
|
+
@property
|
|
107
|
+
def configuration_state_id(self) -> str:
|
|
108
|
+
"""The configuration state id of the ConfigurationItemChangeNotification event."""
|
|
109
|
+
return self["configurationStateId"]
|
|
110
|
+
|
|
111
|
+
@property
|
|
112
|
+
def accountid(self) -> str:
|
|
113
|
+
"""The accountid of the ConfigurationItemChangeNotification event."""
|
|
114
|
+
return self["awsAccountId"]
|
|
115
|
+
|
|
116
|
+
@property
|
|
117
|
+
def configuration_item_status(self) -> str:
|
|
118
|
+
"""The configuration item status of the ConfigurationItemChangeNotification event."""
|
|
119
|
+
return self["configurationItemStatus"]
|
|
120
|
+
|
|
121
|
+
@property
|
|
122
|
+
def resource_type(self) -> str:
|
|
123
|
+
"""The resource type of the ConfigurationItemChangeNotification event."""
|
|
124
|
+
return self["resourceType"]
|
|
125
|
+
|
|
126
|
+
@property
|
|
127
|
+
def resource_id(self) -> str:
|
|
128
|
+
"""The resource id of the ConfigurationItemChangeNotification event."""
|
|
129
|
+
return self["resourceId"]
|
|
130
|
+
|
|
131
|
+
@property
|
|
132
|
+
def resource_name(self) -> str:
|
|
133
|
+
"""The resource name of the ConfigurationItemChangeNotification event."""
|
|
134
|
+
return self["resourceName"]
|
|
135
|
+
|
|
136
|
+
@property
|
|
137
|
+
def resource_arn(self) -> str:
|
|
138
|
+
"""The resource arn of the ConfigurationItemChangeNotification event."""
|
|
139
|
+
return self["ARN"]
|
|
140
|
+
|
|
141
|
+
@property
|
|
142
|
+
def region(self) -> str:
|
|
143
|
+
"""The region of the ConfigurationItemChangeNotification event."""
|
|
144
|
+
return self["awsRegion"]
|
|
145
|
+
|
|
146
|
+
@property
|
|
147
|
+
def availability_zone(self) -> str:
|
|
148
|
+
"""The availability zone of the ConfigurationItemChangeNotification event."""
|
|
149
|
+
return self["availabilityZone"]
|
|
150
|
+
|
|
151
|
+
@property
|
|
152
|
+
def configuration_state_md5_hash(self) -> str:
|
|
153
|
+
"""The md5 hash of the state of the ConfigurationItemChangeNotification event."""
|
|
154
|
+
return self["configurationStateMd5Hash"]
|
|
155
|
+
|
|
156
|
+
@property
|
|
157
|
+
def resource_creation_time(self) -> str:
|
|
158
|
+
"""The resource creation time of the ConfigurationItemChangeNotification event."""
|
|
159
|
+
return self["resourceCreationTime"]
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
class AWSConfigScheduledNotification(DictWrapper):
|
|
163
|
+
@property
|
|
164
|
+
def accountid(self) -> str:
|
|
165
|
+
"""The accountid of the ScheduledNotification event."""
|
|
166
|
+
return self["awsAccountId"]
|
|
167
|
+
|
|
168
|
+
@property
|
|
169
|
+
def notification_creation_time(self) -> str:
|
|
170
|
+
"""The notification creation time of the ScheduledNotification event."""
|
|
171
|
+
return self["notificationCreationTime"]
|
|
172
|
+
|
|
173
|
+
@property
|
|
174
|
+
def record_version(self) -> str:
|
|
175
|
+
"""The record version of the ScheduledNotification event."""
|
|
176
|
+
return self["recordVersion"]
|
|
177
|
+
|
|
178
|
+
@property
|
|
179
|
+
def message_type(self) -> str:
|
|
180
|
+
"""The message type of the ScheduledNotification event."""
|
|
181
|
+
return self["messageType"]
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
class AWSConfigOversizedConfiguration(DictWrapper):
|
|
185
|
+
@property
|
|
186
|
+
def configuration_item_summary(self) -> AWSConfigOversizedConfigurationItemSummary:
|
|
187
|
+
"""The configuration item summary of the OversizedConfiguration event."""
|
|
188
|
+
return AWSConfigOversizedConfigurationItemSummary(self["configurationItemSummary"])
|
|
189
|
+
|
|
190
|
+
@property
|
|
191
|
+
def raw_configuration_item_summary(self) -> str:
|
|
192
|
+
"""The raw configuration item summary of the OversizedConfiguration event."""
|
|
193
|
+
return self["configurationItemSummary"]
|
|
194
|
+
|
|
195
|
+
@property
|
|
196
|
+
def message_type(self) -> str:
|
|
197
|
+
"""The message type of the OversizedConfiguration event."""
|
|
198
|
+
return self["messageType"]
|
|
199
|
+
|
|
200
|
+
@property
|
|
201
|
+
def notification_creation_time(self) -> str:
|
|
202
|
+
"""The notification creation time of the OversizedConfiguration event."""
|
|
203
|
+
return self["notificationCreationTime"]
|
|
204
|
+
|
|
205
|
+
@property
|
|
206
|
+
def record_version(self) -> str:
|
|
207
|
+
"""The record version of the OversizedConfiguration event."""
|
|
208
|
+
return self["recordVersion"]
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
class AWSConfigOversizedConfigurationItemSummary(DictWrapper):
|
|
212
|
+
@property
|
|
213
|
+
def change_type(self) -> str:
|
|
214
|
+
"""The change type of the OversizedConfiguration event."""
|
|
215
|
+
return self["changeType"]
|
|
216
|
+
|
|
217
|
+
@property
|
|
218
|
+
def configuration_item_version(self) -> str:
|
|
219
|
+
"""The configuration item version of the OversizedConfiguration event."""
|
|
220
|
+
return self["configurationItemVersion"]
|
|
221
|
+
|
|
222
|
+
@property
|
|
223
|
+
def configuration_item_capture_time(self) -> str:
|
|
224
|
+
"""The configuration item capture time of the OversizedConfiguration event."""
|
|
225
|
+
return self["configurationItemCaptureTime"]
|
|
226
|
+
|
|
227
|
+
@property
|
|
228
|
+
def configuration_state_id(self) -> str:
|
|
229
|
+
"""The configuration state id of the OversizedConfiguration event."""
|
|
230
|
+
return self["configurationStateId"]
|
|
231
|
+
|
|
232
|
+
@property
|
|
233
|
+
def accountid(self) -> str:
|
|
234
|
+
"""The accountid of the OversizedConfiguration event."""
|
|
235
|
+
return self["awsAccountId"]
|
|
236
|
+
|
|
237
|
+
@property
|
|
238
|
+
def configuration_item_status(self) -> str:
|
|
239
|
+
"""The configuration item status of the OversizedConfiguration event."""
|
|
240
|
+
return self["configurationItemStatus"]
|
|
241
|
+
|
|
242
|
+
@property
|
|
243
|
+
def resource_type(self) -> str:
|
|
244
|
+
"""The resource type of the OversizedConfiguration event."""
|
|
245
|
+
return self["resourceType"]
|
|
246
|
+
|
|
247
|
+
@property
|
|
248
|
+
def resource_id(self) -> str:
|
|
249
|
+
"""The resource id of the OversizedConfiguration event."""
|
|
250
|
+
return self["resourceId"]
|
|
251
|
+
|
|
252
|
+
@property
|
|
253
|
+
def resource_name(self) -> str:
|
|
254
|
+
"""The resource name of the OversizedConfiguration event."""
|
|
255
|
+
return self["resourceName"]
|
|
256
|
+
|
|
257
|
+
@property
|
|
258
|
+
def resource_arn(self) -> str:
|
|
259
|
+
"""The resource arn of the OversizedConfiguration event."""
|
|
260
|
+
return self["ARN"]
|
|
261
|
+
|
|
262
|
+
@property
|
|
263
|
+
def region(self) -> str:
|
|
264
|
+
"""The region of the OversizedConfiguration event."""
|
|
265
|
+
return self["awsRegion"]
|
|
266
|
+
|
|
267
|
+
@property
|
|
268
|
+
def availability_zone(self) -> str:
|
|
269
|
+
"""The availability zone of the OversizedConfiguration event."""
|
|
270
|
+
return self["availabilityZone"]
|
|
271
|
+
|
|
272
|
+
@property
|
|
273
|
+
def configuration_state_md5_hash(self) -> str:
|
|
274
|
+
"""The state md5 hash of the OversizedConfiguration event."""
|
|
275
|
+
return self["configurationStateMd5Hash"]
|
|
276
|
+
|
|
277
|
+
@property
|
|
278
|
+
def resource_creation_time(self) -> str:
|
|
279
|
+
"""The resource creation time of the OversizedConfiguration event."""
|
|
280
|
+
return self["resourceCreationTime"]
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
class AWSConfigRuleEvent(DictWrapper):
|
|
284
|
+
"""Events for AWS Config Rules
|
|
285
|
+
Documentation:
|
|
286
|
+
--------------
|
|
287
|
+
- https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules_lambda-functions.html
|
|
288
|
+
"""
|
|
289
|
+
|
|
290
|
+
def __init__(self, data: Dict[str, Any]):
|
|
291
|
+
super().__init__(data)
|
|
292
|
+
self._invoking_event: Optional[Any] = None
|
|
293
|
+
self._rule_parameters: Optional[Any] = None
|
|
294
|
+
|
|
295
|
+
@property
|
|
296
|
+
def version(self) -> str:
|
|
297
|
+
"""The version of the event."""
|
|
298
|
+
return self["version"]
|
|
299
|
+
|
|
300
|
+
@property
|
|
301
|
+
def invoking_event(
|
|
302
|
+
self,
|
|
303
|
+
) -> AWSConfigConfigurationChanged | AWSConfigScheduledNotification | AWSConfigOversizedConfiguration:
|
|
304
|
+
"""The invoking payload of the event."""
|
|
305
|
+
if self._invoking_event is None:
|
|
306
|
+
self._invoking_event = self["invokingEvent"]
|
|
307
|
+
|
|
308
|
+
return get_invoke_event(json.loads(self._invoking_event))
|
|
309
|
+
|
|
310
|
+
@property
|
|
311
|
+
def raw_invoking_event(self) -> str:
|
|
312
|
+
"""The raw invoking payload of the event."""
|
|
313
|
+
return self["invokingEvent"]
|
|
314
|
+
|
|
315
|
+
@property
|
|
316
|
+
def rule_parameters(self) -> Dict:
|
|
317
|
+
"""The parameters of the event."""
|
|
318
|
+
if self._rule_parameters is None:
|
|
319
|
+
self._rule_parameters = self["ruleParameters"]
|
|
320
|
+
|
|
321
|
+
return json.loads(self._rule_parameters)
|
|
322
|
+
|
|
323
|
+
@property
|
|
324
|
+
def result_token(self) -> str:
|
|
325
|
+
"""The result token of the event."""
|
|
326
|
+
return self["resultToken"]
|
|
327
|
+
|
|
328
|
+
@property
|
|
329
|
+
def event_left_scope(self) -> bool:
|
|
330
|
+
"""The left scope of the event."""
|
|
331
|
+
return self["eventLeftScope"]
|
|
332
|
+
|
|
333
|
+
@property
|
|
334
|
+
def execution_role_arn(self) -> str:
|
|
335
|
+
"""The execution role arn of the event."""
|
|
336
|
+
return self["executionRoleArn"]
|
|
337
|
+
|
|
338
|
+
@property
|
|
339
|
+
def config_rule_arn(self) -> str:
|
|
340
|
+
"""The arn of the rule of the event."""
|
|
341
|
+
return self["configRuleArn"]
|
|
342
|
+
|
|
343
|
+
@property
|
|
344
|
+
def config_rule_name(self) -> str:
|
|
345
|
+
"""The name of the rule of the event."""
|
|
346
|
+
return self["configRuleName"]
|
|
347
|
+
|
|
348
|
+
@property
|
|
349
|
+
def config_rule_id(self) -> str:
|
|
350
|
+
"""The id of the rule of the event."""
|
|
351
|
+
return self["configRuleId"]
|
|
352
|
+
|
|
353
|
+
@property
|
|
354
|
+
def accountid(self) -> str:
|
|
355
|
+
"""The accountid of the event."""
|
|
356
|
+
return self["accountId"]
|
|
357
|
+
|
|
358
|
+
@property
|
|
359
|
+
def evalution_mode(self) -> Optional[str]:
|
|
360
|
+
"""The evalution mode of the event."""
|
|
361
|
+
return self.get("evaluationMode")
|
|
@@ -16,7 +16,7 @@ class DictWrapper(Mapping):
|
|
|
16
16
|
data : Dict[str, Any]
|
|
17
17
|
Lambda Event Source Event payload
|
|
18
18
|
json_deserializer : Callable, optional
|
|
19
|
-
function to deserialize `str`, `bytes`, bytearray` containing a JSON document to a Python `obj`,
|
|
19
|
+
function to deserialize `str`, `bytes`, `bytearray` containing a JSON document to a Python `obj`,
|
|
20
20
|
by default json.loads
|
|
21
21
|
"""
|
|
22
22
|
self._data = data
|
|
@@ -39,7 +39,7 @@ class TypeDeserializer:
|
|
|
39
39
|
-------- ------
|
|
40
40
|
{'NULL': True} None
|
|
41
41
|
{'BOOL': True/False} True/False
|
|
42
|
-
{'N':
|
|
42
|
+
{'N': Decimal(value)} Decimal(value)
|
|
43
43
|
{'S': string} string
|
|
44
44
|
{'B': bytes} bytes
|
|
45
45
|
{'NS': [str(value)]} set([str(value)])
|