From 9b7acbf7cb0fb72a39c03cad4775308fd5852432 Mon Sep 17 00:00:00 2001
From: Ruben Fonseca <fonseka@gmail.com>
Date: Tue, 18 Apr 2023 13:49:08 +0200
Subject: [PATCH 1/8] feat: add support for python 3.10

---
 .github/workflows/run-e2e-tests.yml           |   2 +-
 package-lock.json                             | 120 ++++++++--------
 package.json                                  |   2 +-
 poetry.lock                                   | 134 +++++++++---------
 pyproject.toml                                |   2 +-
 .../function_thread_safety_handler.py         |   2 +-
 tests/e2e/utils/infrastructure.py             |  21 ++-
 7 files changed, 149 insertions(+), 134 deletions(-)

diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml
index 73e39e28d79..2f7b2f494ea 100644
--- a/.github/workflows/run-e2e-tests.yml
+++ b/.github/workflows/run-e2e-tests.yml
@@ -30,7 +30,7 @@ jobs:
     strategy:
       fail-fast: false # needed so if a version fails, the others will still be able to complete and cleanup
       matrix:
-        version: ["3.7", "3.8", "3.9"]
+        version: ["3.7", "3.8", "3.9", "3.10"]
     if: ${{ github.actor != 'dependabot[bot]' }}
     steps:
       - name: "Checkout"
diff --git a/package-lock.json b/package-lock.json
index 3305a07d40f..ee0c802acc4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,62 +1,62 @@
 {
-	"name": "aws-lambda-powertools-python-e2e",
-	"version": "1.0.0",
-	"lockfileVersion": 2,
-	"requires": true,
-	"packages": {
-		"": {
-			"name": "aws-lambda-powertools-python-e2e",
-			"version": "1.0.0",
-			"devDependencies": {
-				"aws-cdk": "^2.74.0"
-			}
-		},
-		"node_modules/aws-cdk": {
-			"version": "2.74.0",
-			"resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.74.0.tgz",
-			"integrity": "sha512-pc6QO9uR7Ii0qQ74nujskkFqPCGoWTTMyt03CFaGW0CwxMfpduGC0+bvlLBbJISAe5ZGuRuYIIxxDMkNi3AIcw==",
-			"dev": true,
-			"bin": {
-				"cdk": "bin/cdk"
-			},
-			"engines": {
-				"node": ">= 14.15.0"
-			},
-			"optionalDependencies": {
-				"fsevents": "2.3.2"
-			}
-		},
-		"node_modules/fsevents": {
-			"version": "2.3.2",
-			"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
-			"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
-			"dev": true,
-			"hasInstallScript": true,
-			"optional": true,
-			"os": [
-				"darwin"
-			],
-			"engines": {
-				"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
-			}
-		}
-	},
-	"dependencies": {
-		"aws-cdk": {
-			"version": "2.74.0",
-			"resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.74.0.tgz",
-			"integrity": "sha512-pc6QO9uR7Ii0qQ74nujskkFqPCGoWTTMyt03CFaGW0CwxMfpduGC0+bvlLBbJISAe5ZGuRuYIIxxDMkNi3AIcw==",
-			"dev": true,
-			"requires": {
-				"fsevents": "2.3.2"
-			}
-		},
-		"fsevents": {
-			"version": "2.3.2",
-			"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
-			"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
-			"dev": true,
-			"optional": true
-		}
-	}
+  "name": "aws-lambda-powertools-python-e2e",
+  "version": "1.0.0",
+  "lockfileVersion": 2,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "aws-lambda-powertools-python-e2e",
+      "version": "1.0.0",
+      "devDependencies": {
+        "aws-cdk": "^2.75.0"
+      }
+    },
+    "node_modules/aws-cdk": {
+      "version": "2.75.0",
+      "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.75.0.tgz",
+      "integrity": "sha512-BkyWNpYZz66Ewoi7rBPYZnW+0BAKbWYawhQ1v7KQWmGB0cFlQmvIfoOFklF5EOyAKOltUVRQF6KJf1/AIedkmg==",
+      "dev": true,
+      "bin": {
+        "cdk": "bin/cdk"
+      },
+      "engines": {
+        "node": ">= 14.15.0"
+      },
+      "optionalDependencies": {
+        "fsevents": "2.3.2"
+      }
+    },
+    "node_modules/fsevents": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+      "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+      "dev": true,
+      "hasInstallScript": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+      }
+    }
+  },
+  "dependencies": {
+    "aws-cdk": {
+      "version": "2.75.0",
+      "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.75.0.tgz",
+      "integrity": "sha512-BkyWNpYZz66Ewoi7rBPYZnW+0BAKbWYawhQ1v7KQWmGB0cFlQmvIfoOFklF5EOyAKOltUVRQF6KJf1/AIedkmg==",
+      "dev": true,
+      "requires": {
+        "fsevents": "2.3.2"
+      }
+    },
+    "fsevents": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+      "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+      "dev": true,
+      "optional": true
+    }
+  }
 }
diff --git a/package.json b/package.json
index 6eef515eb28..1d08fc890ac 100644
--- a/package.json
+++ b/package.json
@@ -2,6 +2,6 @@
   "name": "aws-lambda-powertools-python-e2e",
   "version": "1.0.0",
   "devDependencies": {
-	"aws-cdk": "^2.74.0"
+    "aws-cdk": "^2.75.0"
   }
 }
diff --git a/poetry.lock b/poetry.lock
index 57023b09068..c27b98cd655 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -43,18 +43,18 @@ tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy
 
 [[package]]
 name = "aws-cdk-asset-awscli-v1"
-version = "2.2.112"
+version = "2.2.144"
 description = "A library that contains the AWS CLI for use in Lambda Layers"
 category = "dev"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "aws-cdk.asset-awscli-v1-2.2.112.tar.gz", hash = "sha256:ffa513beb5dee9475473467301f56b1b28e371932a9dd3de1957ac13696f20c0"},
-    {file = "aws_cdk.asset_awscli_v1-2.2.112-py3-none-any.whl", hash = "sha256:17521d316d400aa80759db7d815f44282413b818e032f75800d707540c939952"},
+    {file = "aws-cdk.asset-awscli-v1-2.2.144.tar.gz", hash = "sha256:2953dbaa0dae2a1893318452a6d681a975cb73f160d61eb197a6b47b293c6371"},
+    {file = "aws_cdk.asset_awscli_v1-2.2.144-py3-none-any.whl", hash = "sha256:cf9fd74fc56b4333ffb3631ce38ca585ec722fd59bd06f5f9b61c7f838ba1dd4"},
 ]
 
 [package.dependencies]
-jsii = ">=1.78.1,<2.0.0"
+jsii = ">=1.80.0,<2.0.0"
 publication = ">=0.0.3"
 typeguard = ">=2.13.3,<2.14.0"
 
@@ -77,90 +77,90 @@ typeguard = ">=2.13.3,<2.14.0"
 
 [[package]]
 name = "aws-cdk-asset-node-proxy-agent-v5"
-version = "2.0.90"
+version = "2.0.119"
 description = "@aws-cdk/asset-node-proxy-agent-v5"
 category = "dev"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "aws-cdk.asset-node-proxy-agent-v5-2.0.90.tar.gz", hash = "sha256:84bfd073116c2b84d24d2a600a4d22ffdca46a2e2d2373eab81616e1e030229b"},
-    {file = "aws_cdk.asset_node_proxy_agent_v5-2.0.90-py3-none-any.whl", hash = "sha256:d9f2ac7e41e1b1eb7b59af36414b441cda393b6735a6c8967159b9a60b36c2a0"},
+    {file = "aws-cdk.asset-node-proxy-agent-v5-2.0.119.tar.gz", hash = "sha256:2a93b5a0870c0914771a0591a82aa44134f25e0236f94d05d4a558465caff385"},
+    {file = "aws_cdk.asset_node_proxy_agent_v5-2.0.119-py3-none-any.whl", hash = "sha256:ea59cc9f924fc9c566819b7106b330e7632e4b5f9c1d3bee3d3d494615bc680d"},
 ]
 
 [package.dependencies]
-jsii = ">=1.78.1,<2.0.0"
+jsii = ">=1.80.0,<2.0.0"
 publication = ">=0.0.3"
 typeguard = ">=2.13.3,<2.14.0"
 
 [[package]]
 name = "aws-cdk-aws-apigatewayv2-alpha"
-version = "2.69.0a0"
+version = "2.75.0a0"
 description = "The CDK Construct Library for AWS::APIGatewayv2"
 category = "dev"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "aws-cdk.aws-apigatewayv2-alpha-2.69.0a0.tar.gz", hash = "sha256:f61aa37d839ce685bd8daa0c5058b664ab374b6e1d67582c2846c2b0230f4903"},
-    {file = "aws_cdk.aws_apigatewayv2_alpha-2.69.0a0-py3-none-any.whl", hash = "sha256:07500b7c0c7919f75ee24a67eef3fc0c3107e8b1dbb4b5fa6888ce284fcbb53b"},
+    {file = "aws-cdk.aws-apigatewayv2-alpha-2.75.0a0.tar.gz", hash = "sha256:1348c29ab83cccfe82ba0e34b97153a81f09391cdfab22b83d7d6390444bc551"},
+    {file = "aws_cdk.aws_apigatewayv2_alpha-2.75.0a0-py3-none-any.whl", hash = "sha256:42e2ecb3b1ec6da1bed0ee3be8dab29b10e92e17fcebfa8cf8a44bb487102332"},
 ]
 
 [package.dependencies]
-aws-cdk-lib = ">=2.69.0,<3.0.0"
+aws-cdk-lib = "2.75.0"
 constructs = ">=10.0.0,<11.0.0"
-jsii = ">=1.77.0,<2.0.0"
+jsii = ">=1.78.1,<2.0.0"
 publication = ">=0.0.3"
 typeguard = ">=2.13.3,<2.14.0"
 
 [[package]]
 name = "aws-cdk-aws-apigatewayv2-authorizers-alpha"
-version = "2.69.0a0"
+version = "2.75.0a0"
 description = "Authorizers for AWS APIGateway V2"
 category = "dev"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "aws-cdk.aws-apigatewayv2-authorizers-alpha-2.69.0a0.tar.gz", hash = "sha256:c27207a38219ccf1b3cac6b9939d9a18aaa7cc195f80e74c553a2a3704034a02"},
-    {file = "aws_cdk.aws_apigatewayv2_authorizers_alpha-2.69.0a0-py3-none-any.whl", hash = "sha256:3c31c4308f0a596f3320ed80d9b9c48f4660b3afc0479690c646ecce4344b653"},
+    {file = "aws-cdk.aws-apigatewayv2-authorizers-alpha-2.75.0a0.tar.gz", hash = "sha256:0b9407cef4d46b41e44433952ed4ca00cae651437f3f532bf942f1d719abe43e"},
+    {file = "aws_cdk.aws_apigatewayv2_authorizers_alpha-2.75.0a0-py3-none-any.whl", hash = "sha256:306e1ff0c919fc528ff1b69a6210870958f6e028266f5aba842ffcf74c3728ac"},
 ]
 
 [package.dependencies]
-"aws-cdk.aws-apigatewayv2-alpha" = "2.69.0.a0"
-aws-cdk-lib = ">=2.69.0,<3.0.0"
+"aws-cdk.aws-apigatewayv2-alpha" = "2.75.0.a0"
+aws-cdk-lib = "2.75.0"
 constructs = ">=10.0.0,<11.0.0"
-jsii = ">=1.77.0,<2.0.0"
+jsii = ">=1.78.1,<2.0.0"
 publication = ">=0.0.3"
 typeguard = ">=2.13.3,<2.14.0"
 
 [[package]]
 name = "aws-cdk-aws-apigatewayv2-integrations-alpha"
-version = "2.69.0a0"
+version = "2.75.0a0"
 description = "Integrations for AWS APIGateway V2"
 category = "dev"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "aws-cdk.aws-apigatewayv2-integrations-alpha-2.69.0a0.tar.gz", hash = "sha256:04d3a24da2bee46e4eac70fd0bfb0e4d8a5e9eca1da459dd21d163d0858c72f6"},
-    {file = "aws_cdk.aws_apigatewayv2_integrations_alpha-2.69.0a0-py3-none-any.whl", hash = "sha256:20d3950c1eb57652173b9b1d4a0641941ae76c5458e06eae0b8ecc97b3d6e81f"},
+    {file = "aws-cdk.aws-apigatewayv2-integrations-alpha-2.75.0a0.tar.gz", hash = "sha256:355e8980d886f50c37395b022647d31c0d071943f181de1d1f0c162055a3af39"},
+    {file = "aws_cdk.aws_apigatewayv2_integrations_alpha-2.75.0a0-py3-none-any.whl", hash = "sha256:75c442ee356e782d81613266efcd2520cee2abed482928ada2d16f457f829692"},
 ]
 
 [package.dependencies]
-"aws-cdk.aws-apigatewayv2-alpha" = "2.69.0.a0"
-aws-cdk-lib = ">=2.69.0,<3.0.0"
+"aws-cdk.aws-apigatewayv2-alpha" = "2.75.0.a0"
+aws-cdk-lib = "2.75.0"
 constructs = ">=10.0.0,<11.0.0"
-jsii = ">=1.77.0,<2.0.0"
+jsii = ">=1.78.1,<2.0.0"
 publication = ">=0.0.3"
 typeguard = ">=2.13.3,<2.14.0"
 
 [[package]]
 name = "aws-cdk-lib"
-version = "2.74.0"
+version = "2.75.0"
 description = "Version 2 of the AWS Cloud Development Kit library"
 category = "dev"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "aws-cdk-lib-2.74.0.tar.gz", hash = "sha256:4cf4fe1c1278ae52d0faec4ef9ba34ea2d936045513fd61e63f58d20391a5805"},
-    {file = "aws_cdk_lib-2.74.0-py3-none-any.whl", hash = "sha256:1ef84ae12a711298bfc0c14189284114466b0f14672f38a934a900120dbb6db7"},
+    {file = "aws-cdk-lib-2.75.0.tar.gz", hash = "sha256:e81e328906577a79d8bb2980403e37a83645f8a883ba5c1309b399b5e0d1baae"},
+    {file = "aws_cdk_lib-2.75.0-py3-none-any.whl", hash = "sha256:eb11341f2dc7134a354087396b2efcd952f54f3cff18c5c55a281cd6c45fc821"},
 ]
 
 [package.dependencies]
@@ -301,18 +301,18 @@ uvloop = ["uvloop (>=0.15.2)"]
 
 [[package]]
 name = "boto3"
-version = "1.26.94"
+version = "1.26.115"
 description = "The AWS SDK for Python"
 category = "main"
 optional = false
 python-versions = ">= 3.7"
 files = [
-    {file = "boto3-1.26.94-py3-none-any.whl", hash = "sha256:619022059e255731f33cd9fe083b8fd62406efcbc07dc15660037bcaa1ba1255"},
-    {file = "boto3-1.26.94.tar.gz", hash = "sha256:9f156f4da4b0a15924196e1a8e3439d1b99cd4a463588e4bb103d1cfaf5618fa"},
+    {file = "boto3-1.26.115-py3-none-any.whl", hash = "sha256:deb53ad15ff0e75ae0be6d7115a2d34e4bafb0541484485f0feb61dabdfb5513"},
+    {file = "boto3-1.26.115.tar.gz", hash = "sha256:2272a060005bf8299f7342cbf1344304eb44b7060cddba6784f676e3bc737bb8"},
 ]
 
 [package.dependencies]
-botocore = ">=1.29.94,<1.30.0"
+botocore = ">=1.29.115,<1.30.0"
 jmespath = ">=0.7.1,<2.0.0"
 s3transfer = ">=0.6.0,<0.7.0"
 
@@ -321,14 +321,14 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
 
 [[package]]
 name = "botocore"
-version = "1.29.94"
+version = "1.29.115"
 description = "Low-level, data-driven core of boto 3."
 category = "main"
 optional = false
 python-versions = ">= 3.7"
 files = [
-    {file = "botocore-1.29.94-py3-none-any.whl", hash = "sha256:01b9e066b9eea719ee852e91841b92c7371f6bd388cf6186b5d55508e0f7fa1b"},
-    {file = "botocore-1.29.94.tar.gz", hash = "sha256:3748b79e6fc95c19d890aa7439a53b9d468a4c4918439b2ba5cc3c13bfaff817"},
+    {file = "botocore-1.29.115-py3-none-any.whl", hash = "sha256:dff327977d7c9f98f2dc54b51b8f70326952dd50ae23b885fdfa8bfeec014b76"},
+    {file = "botocore-1.29.115.tar.gz", hash = "sha256:58eee8cf8f4f3e515df29f6dc535dd86ed3f4cea40999c5bc74640ff40bdc71f"},
 ]
 
 [package.dependencies]
@@ -519,18 +519,18 @@ files = [
 
 [[package]]
 name = "constructs"
-version = "10.1.283"
+version = "10.1.314"
 description = "A programming model for software-defined state"
 category = "dev"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "constructs-10.1.283-py3-none-any.whl", hash = "sha256:cb045cda84777e2288a053463685c8b453039029370e85beb778e94655b288d7"},
-    {file = "constructs-10.1.283.tar.gz", hash = "sha256:fd41f311a94d36671cd731cfdfaeadd8e939c7c2d169e1983f374444e7e7171f"},
+    {file = "constructs-10.1.314-py3-none-any.whl", hash = "sha256:852faf1acbb74355f172f4f4ead8029d085c0ad46e4a131203d216917a588daa"},
+    {file = "constructs-10.1.314.tar.gz", hash = "sha256:389c336c0f91471232dee07e3dbd7a218d85f99b07423c3f93e326d68fb2d857"},
 ]
 
 [package.dependencies]
-jsii = ">=1.78.1,<2.0.0"
+jsii = ">=1.80.0,<2.0.0"
 publication = ">=0.0.3"
 typeguard = ">=2.13.3,<2.14.0"
 
@@ -929,14 +929,14 @@ typing-extensions = {version = "*", markers = "python_version < \"3.8\""}
 
 [[package]]
 name = "httpcore"
-version = "0.16.3"
+version = "0.17.0"
 description = "A minimal low-level HTTP client."
 category = "dev"
 optional = false
 python-versions = ">=3.7"
 files = [
-    {file = "httpcore-0.16.3-py3-none-any.whl", hash = "sha256:da1fb708784a938aa084bde4feb8317056c55037247c787bd7e19eb2c2949dc0"},
-    {file = "httpcore-0.16.3.tar.gz", hash = "sha256:c5d6f04e2fc530f39e0c077e6a30caa53f1451096120f1f38b954afd0b17c0cb"},
+    {file = "httpcore-0.17.0-py3-none-any.whl", hash = "sha256:0fdfea45e94f0c9fd96eab9286077f9ff788dd186635ae61b312693e4d943599"},
+    {file = "httpcore-0.17.0.tar.gz", hash = "sha256:cc045a3241afbf60ce056202301b4d8b6af08845e3294055eb26b09913ef903c"},
 ]
 
 [package.dependencies]
@@ -1208,14 +1208,14 @@ pbr = "*"
 
 [[package]]
 name = "jsii"
-version = "1.78.1"
+version = "1.80.0"
 description = "Python client for jsii runtime"
 category = "dev"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "jsii-1.78.1-py3-none-any.whl", hash = "sha256:63021b4465c56603f17c4c690cf4da55bf4cb26f0e59e085436ccbd72efe8dd0"},
-    {file = "jsii-1.78.1.tar.gz", hash = "sha256:58f5d223e16efb8bc4b7911dbcaf6d6ac43fe2bd51ae7ec7db4bc7d79a333df3"},
+    {file = "jsii-1.80.0-py3-none-any.whl", hash = "sha256:ea3cace063f6a47cdf0a74c929618d779efab426fedb7692a8ac1b9b29797f8c"},
+    {file = "jsii-1.80.0.tar.gz", hash = "sha256:4da63ab99f2696cd063574460c94221f0a7de9d345e71dfb19dfbcecf8ca8355"},
 ]
 
 [package.dependencies]
@@ -1871,14 +1871,14 @@ test = ["codecov (>=2.1)", "pytest (>=6.2)", "pytest-cov (>=2.12)"]
 
 [[package]]
 name = "packaging"
-version = "23.0"
+version = "23.1"
 description = "Core utilities for Python packages"
 category = "dev"
 optional = false
 python-versions = ">=3.7"
 files = [
-    {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"},
-    {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"},
+    {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"},
+    {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"},
 ]
 
 [[package]]
@@ -1935,22 +1935,22 @@ files = [
 
 [[package]]
 name = "platformdirs"
-version = "3.1.1"
+version = "3.2.0"
 description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
 category = "dev"
 optional = false
 python-versions = ">=3.7"
 files = [
-    {file = "platformdirs-3.1.1-py3-none-any.whl", hash = "sha256:e5986afb596e4bb5bde29a79ac9061aa955b94fca2399b7aaac4090860920dd8"},
-    {file = "platformdirs-3.1.1.tar.gz", hash = "sha256:024996549ee88ec1a9aa99ff7f8fc819bb59e2c3477b410d90a16d32d6e707aa"},
+    {file = "platformdirs-3.2.0-py3-none-any.whl", hash = "sha256:ebe11c0d7a805086e99506aa331612429a72ca7cd52a1f0d277dc4adc20cb10e"},
+    {file = "platformdirs-3.2.0.tar.gz", hash = "sha256:d5b638ca397f25f979350ff789db335903d7ea010ab28903f57b27e1b16c2b08"},
 ]
 
 [package.dependencies]
-typing-extensions = {version = ">=4.4", markers = "python_version < \"3.8\""}
+typing-extensions = {version = ">=4.5", markers = "python_version < \"3.8\""}
 
 [package.extras]
 docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"]
-test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"]
+test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.2.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"]
 
 [[package]]
 name = "pluggy"
@@ -2110,14 +2110,14 @@ files = [
 
 [[package]]
 name = "pygments"
-version = "2.14.0"
+version = "2.15.0"
 description = "Pygments is a syntax highlighting package written in Python."
 category = "dev"
 optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
 files = [
-    {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"},
-    {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"},
+    {file = "Pygments-2.15.0-py3-none-any.whl", hash = "sha256:77a3299119af881904cd5ecd1ac6a66214b6e9bed1f2db16993b54adede64094"},
+    {file = "Pygments-2.15.0.tar.gz", hash = "sha256:f7e36cffc4c517fbc252861b9a6e4644ca0e5abadf9a113c72d1358ad09b9500"},
 ]
 
 [package.extras]
@@ -2136,14 +2136,14 @@ files = [
 
 [[package]]
 name = "pymdown-extensions"
-version = "9.10"
+version = "9.11"
 description = "Extension pack for Python Markdown."
 category = "dev"
 optional = false
 python-versions = ">=3.7"
 files = [
-    {file = "pymdown_extensions-9.10-py3-none-any.whl", hash = "sha256:31eaa76ce6f96aabfcea98787c2fff2c5c0611b20a53a94213970cfbf05f02b8"},
-    {file = "pymdown_extensions-9.10.tar.gz", hash = "sha256:562c38eee4ce3f101ce631b804bfc2177a8a76c7e4dc908871fb6741a90257a7"},
+    {file = "pymdown_extensions-9.11-py3-none-any.whl", hash = "sha256:a499191d8d869f30339de86fcf072a787e86c42b6f16f280f5c2cf174182b7f3"},
+    {file = "pymdown_extensions-9.11.tar.gz", hash = "sha256:f7e86c1d3981f23d9dc43294488ecb54abadd05b0be4bf8f0e15efc90f7853ff"},
 ]
 
 [package.dependencies]
@@ -2603,14 +2603,14 @@ py = ">=1.4.26,<2.0.0"
 
 [[package]]
 name = "rich"
-version = "13.3.2"
+version = "13.3.4"
 description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"
 category = "dev"
 optional = false
 python-versions = ">=3.7.0"
 files = [
-    {file = "rich-13.3.2-py3-none-any.whl", hash = "sha256:a104f37270bf677148d8acb07d33be1569eeee87e2d1beb286a4e9113caf6f2f"},
-    {file = "rich-13.3.2.tar.gz", hash = "sha256:91954fe80cfb7985727a467ca98a7618e5dd15178cc2da10f553b36a93859001"},
+    {file = "rich-13.3.4-py3-none-any.whl", hash = "sha256:22b74cae0278fd5086ff44144d3813be1cedc9115bdfabbfefd86400cb88b20a"},
+    {file = "rich-13.3.4.tar.gz", hash = "sha256:b5d573e13605423ec80bdd0cd5f8541f7844a0e71a13f74cf454ccb2f490708b"},
 ]
 
 [package.dependencies]
@@ -2813,14 +2813,14 @@ types-urllib3 = "<1.27"
 
 [[package]]
 name = "types-urllib3"
-version = "1.26.25.8"
+version = "1.26.25.10"
 description = "Typing stubs for urllib3"
 category = "dev"
 optional = false
 python-versions = "*"
 files = [
-    {file = "types-urllib3-1.26.25.8.tar.gz", hash = "sha256:ecf43c42d8ee439d732a1110b4901e9017a79a38daca26f08e42c8460069392c"},
-    {file = "types_urllib3-1.26.25.8-py3-none-any.whl", hash = "sha256:95ea847fbf0bf675f50c8ae19a665baedcf07e6b4641662c4c3c72e7b2edf1a9"},
+    {file = "types-urllib3-1.26.25.10.tar.gz", hash = "sha256:c44881cde9fc8256d05ad6b21f50c4681eb20092552351570ab0a8a0653286d6"},
+    {file = "types_urllib3-1.26.25.10-py3-none-any.whl", hash = "sha256:12c744609d588340a07e45d333bf870069fc8793bcf96bae7a96d4712a42591d"},
 ]
 
 [[package]]
@@ -3035,4 +3035,4 @@ validation = ["fastjsonschema"]
 [metadata]
 lock-version = "2.0"
 python-versions = "^3.7.4"
-content-hash = "7d512bca260ee0a5f8e74c7e71f230973f9c34864f1a501661ead575068098e2"
+content-hash = "ffe8a051efdfcacf7d64eee522f7e9c1a1260aa605e4ba68dec7e3d5330d0979"
diff --git a/pyproject.toml b/pyproject.toml
index 2d824125577..361ef7a6dae 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -63,7 +63,7 @@ mkdocs-git-revision-date-plugin = "^0.3.2"
 mike = "^1.1.2"
 retry = "^0.9.2"
 pytest-xdist = "^3.2.1"
-aws-cdk-lib = "^2.74.0"
+aws-cdk-lib = "^2.75.0"
 "aws-cdk.aws-apigatewayv2-alpha" = "^2.38.1-alpha.0"
 "aws-cdk.aws-apigatewayv2-integrations-alpha" = "^2.38.1-alpha.0"
 "aws-cdk.aws-apigatewayv2-authorizers-alpha" = "^2.38.1-alpha.0"
diff --git a/tests/e2e/idempotency/handlers/function_thread_safety_handler.py b/tests/e2e/idempotency/handlers/function_thread_safety_handler.py
index 6e23759b29e..a4644aa61c3 100644
--- a/tests/e2e/idempotency/handlers/function_thread_safety_handler.py
+++ b/tests/e2e/idempotency/handlers/function_thread_safety_handler.py
@@ -21,7 +21,7 @@ def record_handler(record):
 
 def lambda_handler(event, context):
     with ThreadPoolExecutor(max_workers=threads_count) as executor:
-        futures = [executor.submit(record_handler, **{"record": event}) for _ in range(threads_count)]
+        futures = [executor.submit(record_handler, **{"record": i}) for i in range(threads_count)]
 
     return [
         {"state": future._state, "exception": future.exception(), "output": future.result()}
diff --git a/tests/e2e/utils/infrastructure.py b/tests/e2e/utils/infrastructure.py
index 29e45b83abf..8832b828e8e 100644
--- a/tests/e2e/utils/infrastructure.py
+++ b/tests/e2e/utils/infrastructure.py
@@ -95,12 +95,12 @@ def create_lambda_functions(
         self.create_lambda_functions()
         ```
 
-        Creating Lambda functions and override runtime to Python 3.7
+        Creating Lambda functions and override runtime to Python 3.10
 
         ```python
         from aws_cdk.aws_lambda import Runtime
 
-        self.create_lambda_functions(function_props={"runtime": Runtime.PYTHON_3_7)
+        self.create_lambda_functions(function_props={"runtime": Runtime.PYTHON_3_9)
         ```
         """
         if not self._handlers_dir.exists():
@@ -115,6 +115,7 @@ def create_lambda_functions(
                 Runtime.PYTHON_3_7,
                 Runtime.PYTHON_3_8,
                 Runtime.PYTHON_3_9,
+                Runtime.PYTHON_3_10,
             ],
             compatible_architectures=[architecture],
             code=Code.from_asset(path=layer_build),
@@ -138,7 +139,7 @@ def create_lambda_functions(
                 "code": source,
                 "handler": f"{fn_name}.lambda_handler",
                 "tracing": Tracing.ACTIVE,
-                "runtime": Runtime.PYTHON_3_9,
+                "runtime": self._determine_runtime_version(),
                 "layers": [layer],
                 "architecture": architecture,
                 **function_settings_override,
@@ -243,6 +244,20 @@ def _create_temp_cdk_app(self):
         temp_file.chmod(0o755)
         return temp_file
 
+    def _determine_runtime_version(self) -> Runtime:
+        """Determine Python runtime version based on the current Python interpreter"""
+        version = sys.version_info
+        if version.major == 3 and version.minor == 7:
+            return Runtime.PYTHON_3_7
+        elif version.major == 3 and version.minor == 8:
+            return Runtime.PYTHON_3_8
+        elif version.major == 3 and version.minor == 9:
+            return Runtime.PYTHON_3_9
+        elif version.major == 3 and version.minor == 10:
+            return Runtime.PYTHON_3_10
+        else:
+            raise Exception(f"Unsupported Python version: {version}")
+
     def create_resources(self) -> None:
         """Create any necessary CDK resources. It'll be called before deploy
 

From c06bab5e37b55b47eff5287a0940b4dc660dcf03 Mon Sep 17 00:00:00 2001
From: Ruben Fonseca <fonseka@gmail.com>
Date: Tue, 18 Apr 2023 13:54:21 +0200
Subject: [PATCH 2/8] fix: add 3.10 to all workflows

---
 .github/ISSUE_TEMPLATE/bug_report.yml                | 2 +-
 .github/ISSUE_TEMPLATE/static_typing.yml             | 2 +-
 .github/workflows/publish_v2_layer.yml               | 2 +-
 .github/workflows/python_build.yml                   | 2 +-
 .github/workflows/release.yml                        | 2 +-
 .github/workflows/reusable_deploy_v2_layer_stack.yml | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 6d441bf0c64..e3dd2c17667 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -58,10 +58,10 @@ body:
     attributes:
       label: AWS Lambda function runtime
       options:
-        - 3.6
         - 3.7
         - 3.8
         - 3.9
+        - 3.10
     validations:
       required: true
   - type: dropdown
diff --git a/.github/ISSUE_TEMPLATE/static_typing.yml b/.github/ISSUE_TEMPLATE/static_typing.yml
index 863dde7d33f..3bd302e7e1c 100644
--- a/.github/ISSUE_TEMPLATE/static_typing.yml
+++ b/.github/ISSUE_TEMPLATE/static_typing.yml
@@ -25,10 +25,10 @@ body:
     attributes:
       label: AWS Lambda function runtime
       options:
-        - 3.6
         - 3.7
         - 3.8
         - 3.9
+        - 3.10
     validations:
       required: true
   - type: input
diff --git a/.github/workflows/publish_v2_layer.yml b/.github/workflows/publish_v2_layer.yml
index 9afd02d1465..8d8a8c34aae 100644
--- a/.github/workflows/publish_v2_layer.yml
+++ b/.github/workflows/publish_v2_layer.yml
@@ -50,7 +50,7 @@ jobs:
       - name: Setup python
         uses: actions/setup-python@v4
         with:
-          python-version: "3.9"
+          python-version: "3.10"
           cache: "pip"
       - name: Resolve and install project dependencies
         # CDK spawns system python when compiling stack
diff --git a/.github/workflows/python_build.yml b/.github/workflows/python_build.yml
index 00a152e82d0..25ca21b016a 100644
--- a/.github/workflows/python_build.yml
+++ b/.github/workflows/python_build.yml
@@ -28,7 +28,7 @@ jobs:
     strategy:
       max-parallel: 4
       matrix:
-        python-version: [3.7, 3.8, 3.9]
+        python-version: [3.7, 3.8, 3.9, 3.10]
     env:
       PYTHON: ${{ matrix.python-version }}
     steps:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index bb35c5917f6..a3f05dc15e0 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -65,7 +65,7 @@ jobs:
       - name: Set up Python
         uses: actions/setup-python@v4
         with:
-          python-version: "3.9"
+          python-version: "3.10"
           cache: "poetry"
       - name: Set release notes tag
         id: release_version
diff --git a/.github/workflows/reusable_deploy_v2_layer_stack.yml b/.github/workflows/reusable_deploy_v2_layer_stack.yml
index f4b4fe73f24..5af5d6385d0 100644
--- a/.github/workflows/reusable_deploy_v2_layer_stack.yml
+++ b/.github/workflows/reusable_deploy_v2_layer_stack.yml
@@ -108,7 +108,7 @@ jobs:
       - name: Setup python
         uses: actions/setup-python@v4
         with:
-          python-version: "3.9"
+          python-version: "3.10"
           cache: "pip"
       - name: Resolve and install project dependencies
         # CDK spawns system python when compiling stack

From 1702ed49fcf4b7b860ec297215e78303d49b91f9 Mon Sep 17 00:00:00 2001
From: Ruben Fonseca <fonseka@gmail.com>
Date: Tue, 18 Apr 2023 13:57:55 +0200
Subject: [PATCH 3/8] fix: workflow version

---
 .github/workflows/python_build.yml          | 4 ++--
 .github/workflows/reusable_publish_docs.yml | 2 +-
 .github/workflows/run-e2e-tests.yml         | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/python_build.yml b/.github/workflows/python_build.yml
index 25ca21b016a..82394162780 100644
--- a/.github/workflows/python_build.yml
+++ b/.github/workflows/python_build.yml
@@ -30,7 +30,7 @@ jobs:
       matrix:
         python-version: [3.7, 3.8, 3.9, 3.10]
     env:
-      PYTHON: ${{ matrix.python-version }}
+      PYTHON: "${{ matrix.python-version }}"
     steps:
       - uses: actions/checkout@v3
       - name: Install poetry
@@ -38,7 +38,7 @@ jobs:
       - name: Set up Python ${{ matrix.python-version }}
         uses: actions/setup-python@v4
         with:
-          python-version: ${{ matrix.python-version }}
+          python-version: "${{ matrix.python-version }}"
           cache: "poetry"
       - name: Install dependencies
         run: make dev
diff --git a/.github/workflows/reusable_publish_docs.yml b/.github/workflows/reusable_publish_docs.yml
index aad83c0cddb..9be91b212bf 100644
--- a/.github/workflows/reusable_publish_docs.yml
+++ b/.github/workflows/reusable_publish_docs.yml
@@ -41,7 +41,7 @@ jobs:
       - name: Set up Python
         uses: actions/setup-python@v4
         with:
-          python-version: "3.8"
+          python-version: "3.10"
           cache: "poetry"
       - name: Install dependencies
         run: make dev
diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml
index 2f7b2f494ea..32fcebc8c06 100644
--- a/.github/workflows/run-e2e-tests.yml
+++ b/.github/workflows/run-e2e-tests.yml
@@ -40,7 +40,7 @@ jobs:
       - name: "Use Python"
         uses: actions/setup-python@v4
         with:
-          python-version: ${{ matrix.version }}
+          python-version: "${{ matrix.version }}"
           architecture: "x64"
           cache: "poetry"
       - name: Setup Node.js

From 04ce3f24e0e3c9158beb509e89efa9601ede4740 Mon Sep 17 00:00:00 2001
From: Ruben Fonseca <fonseka@gmail.com>
Date: Tue, 18 Apr 2023 14:00:04 +0200
Subject: [PATCH 4/8] fix: python version

---
 .github/workflows/python_build.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/python_build.yml b/.github/workflows/python_build.yml
index 82394162780..b126c285918 100644
--- a/.github/workflows/python_build.yml
+++ b/.github/workflows/python_build.yml
@@ -28,7 +28,7 @@ jobs:
     strategy:
       max-parallel: 4
       matrix:
-        python-version: [3.7, 3.8, 3.9, 3.10]
+        python-version: ["3.7", "3.8", "3.9", "3.10"]
     env:
       PYTHON: "${{ matrix.python-version }}"
     steps:
@@ -38,7 +38,7 @@ jobs:
       - name: Set up Python ${{ matrix.python-version }}
         uses: actions/setup-python@v4
         with:
-          python-version: "${{ matrix.python-version }}"
+          python-version: ${{ matrix.python-version }}
           cache: "poetry"
       - name: Install dependencies
         run: make dev

From 26ed2a88cc9f7971dddfd09cde02c39159140393 Mon Sep 17 00:00:00 2001
From: Ruben Fonseca <fonseka@gmail.com>
Date: Tue, 18 Apr 2023 14:27:37 +0200
Subject: [PATCH 5/8] fix: bump performance SLA

---
 tests/performance/test_metrics.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/performance/test_metrics.py b/tests/performance/test_metrics.py
index 1bd5f5451cf..7a0bce52eee 100644
--- a/tests/performance/test_metrics.py
+++ b/tests/performance/test_metrics.py
@@ -10,8 +10,8 @@
 from aws_lambda_powertools.metrics import metrics as metrics_global
 
 # adjusted for slower machines in CI too
-METRICS_VALIDATION_SLA: float = 0.002
-METRICS_SERIALIZATION_SLA: float = 0.002
+METRICS_VALIDATION_SLA: float = 0.003
+METRICS_SERIALIZATION_SLA: float = 0.003
 
 
 @contextmanager

From b9c10c68b0c2959c3f2c2d7aa4805c345b0c49ab Mon Sep 17 00:00:00 2001
From: Leandro Damascena <leandro.damascena@gmail.com>
Date: Tue, 18 Apr 2023 14:07:40 +0100
Subject: [PATCH 6/8] revert: reverting metrics sla values

---
 tests/performance/test_metrics.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/performance/test_metrics.py b/tests/performance/test_metrics.py
index 7a0bce52eee..1bd5f5451cf 100644
--- a/tests/performance/test_metrics.py
+++ b/tests/performance/test_metrics.py
@@ -10,8 +10,8 @@
 from aws_lambda_powertools.metrics import metrics as metrics_global
 
 # adjusted for slower machines in CI too
-METRICS_VALIDATION_SLA: float = 0.003
-METRICS_SERIALIZATION_SLA: float = 0.003
+METRICS_VALIDATION_SLA: float = 0.002
+METRICS_SERIALIZATION_SLA: float = 0.002
 
 
 @contextmanager

From d80bc89c53f13c424ee808ad12d2a9971fad64d1 Mon Sep 17 00:00:00 2001
From: Ruben Fonseca <fonseka@gmail.com>
Date: Tue, 18 Apr 2023 19:21:18 +0200
Subject: [PATCH 7/8] fix: bump cdk layer version to support Python 3.10

---
 layer/poetry.lock    | 54 ++++++++++++++++++++++----------------------
 layer/pyproject.toml |  4 ++--
 2 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/layer/poetry.lock b/layer/poetry.lock
index 39faf15d289..e0dab1f3647 100644
--- a/layer/poetry.lock
+++ b/layer/poetry.lock
@@ -21,14 +21,14 @@ tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy
 
 [[package]]
 name = "aws-cdk-asset-awscli-v1"
-version = "2.2.138"
+version = "2.2.144"
 description = "A library that contains the AWS CLI for use in Lambda Layers"
 category = "main"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "aws-cdk.asset-awscli-v1-2.2.138.tar.gz", hash = "sha256:0a6880aa02399f74102e120aee96db75ec122a199b0735494c3dbcd09bd89c9c"},
-    {file = "aws_cdk.asset_awscli_v1-2.2.138-py3-none-any.whl", hash = "sha256:d1f4e1b6a4bf5e9f1a7380a6141a3bf55d6fb6f1abfb0e1450bb258de3702f01"},
+    {file = "aws-cdk.asset-awscli-v1-2.2.144.tar.gz", hash = "sha256:2953dbaa0dae2a1893318452a6d681a975cb73f160d61eb197a6b47b293c6371"},
+    {file = "aws_cdk.asset_awscli_v1-2.2.144-py3-none-any.whl", hash = "sha256:cf9fd74fc56b4333ffb3631ce38ca585ec722fd59bd06f5f9b61c7f838ba1dd4"},
 ]
 
 [package.dependencies]
@@ -55,14 +55,14 @@ typeguard = ">=2.13.3,<2.14.0"
 
 [[package]]
 name = "aws-cdk-asset-node-proxy-agent-v5"
-version = "2.0.114"
+version = "2.0.119"
 description = "@aws-cdk/asset-node-proxy-agent-v5"
 category = "main"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "aws-cdk.asset-node-proxy-agent-v5-2.0.114.tar.gz", hash = "sha256:5f8a0ecb4128617ef8321dd1b3501b52e4a071e7481a7d1498775897299f7349"},
-    {file = "aws_cdk.asset_node_proxy_agent_v5-2.0.114-py3-none-any.whl", hash = "sha256:3b034917bd15f84c710b031dbd29d7fbbb665ce16a609eaabd890fa47949df40"},
+    {file = "aws-cdk.asset-node-proxy-agent-v5-2.0.119.tar.gz", hash = "sha256:2a93b5a0870c0914771a0591a82aa44134f25e0236f94d05d4a558465caff385"},
+    {file = "aws_cdk.asset_node_proxy_agent_v5-2.0.119-py3-none-any.whl", hash = "sha256:ea59cc9f924fc9c566819b7106b330e7632e4b5f9c1d3bee3d3d494615bc680d"},
 ]
 
 [package.dependencies]
@@ -72,14 +72,14 @@ typeguard = ">=2.13.3,<2.14.0"
 
 [[package]]
 name = "aws-cdk-lib"
-version = "2.73.0"
+version = "2.75.0"
 description = "Version 2 of the AWS Cloud Development Kit library"
 category = "main"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "aws-cdk-lib-2.73.0.tar.gz", hash = "sha256:9e93044d19ae26ef4303b39cbd4b083f8b183bb9211bc2f9b76698a8c765d8ad"},
-    {file = "aws_cdk_lib-2.73.0-py3-none-any.whl", hash = "sha256:60271826f4d53267b39c43aaba93eecbcd2b85c1a1ae206ce56f347344903554"},
+    {file = "aws-cdk-lib-2.75.0.tar.gz", hash = "sha256:e81e328906577a79d8bb2980403e37a83645f8a883ba5c1309b399b5e0d1baae"},
+    {file = "aws_cdk_lib-2.75.0-py3-none-any.whl", hash = "sha256:eb11341f2dc7134a354087396b2efcd952f54f3cff18c5c55a281cd6c45fc821"},
 ]
 
 [package.dependencies]
@@ -93,18 +93,18 @@ typeguard = ">=2.13.3,<2.14.0"
 
 [[package]]
 name = "boto3"
-version = "1.26.112"
+version = "1.26.115"
 description = "The AWS SDK for Python"
 category = "dev"
 optional = false
 python-versions = ">= 3.7"
 files = [
-    {file = "boto3-1.26.112-py3-none-any.whl", hash = "sha256:03c2e1ddd29d993a6ab9b8a8fe184027957fc32bd405c496ad0c30311445925f"},
-    {file = "boto3-1.26.112.tar.gz", hash = "sha256:4ea3319bba2e8ff7cd9560259ae64f073c7fb6312158aa375777687231cabe69"},
+    {file = "boto3-1.26.115-py3-none-any.whl", hash = "sha256:deb53ad15ff0e75ae0be6d7115a2d34e4bafb0541484485f0feb61dabdfb5513"},
+    {file = "boto3-1.26.115.tar.gz", hash = "sha256:2272a060005bf8299f7342cbf1344304eb44b7060cddba6784f676e3bc737bb8"},
 ]
 
 [package.dependencies]
-botocore = ">=1.29.112,<1.30.0"
+botocore = ">=1.29.115,<1.30.0"
 jmespath = ">=0.7.1,<2.0.0"
 s3transfer = ">=0.6.0,<0.7.0"
 
@@ -113,14 +113,14 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
 
 [[package]]
 name = "botocore"
-version = "1.29.112"
+version = "1.29.115"
 description = "Low-level, data-driven core of boto 3."
 category = "dev"
 optional = false
 python-versions = ">= 3.7"
 files = [
-    {file = "botocore-1.29.112-py3-none-any.whl", hash = "sha256:2cbaddb09b46dcb0a05490724d51acb224d3a8df433c347f995b4d78bfb02c8a"},
-    {file = "botocore-1.29.112.tar.gz", hash = "sha256:1f52d9371d7b5ee30a53dcef7954c3cf22e04b131cfab5268035f3299ccde9e1"},
+    {file = "botocore-1.29.115-py3-none-any.whl", hash = "sha256:dff327977d7c9f98f2dc54b51b8f70326952dd50ae23b885fdfa8bfeec014b76"},
+    {file = "botocore-1.29.115.tar.gz", hash = "sha256:58eee8cf8f4f3e515df29f6dc535dd86ed3f4cea40999c5bc74640ff40bdc71f"},
 ]
 
 [package.dependencies]
@@ -149,18 +149,18 @@ exceptiongroup = {version = "*", markers = "python_version < \"3.11\""}
 
 [[package]]
 name = "cdk-aws-lambda-powertools-layer"
-version = "3.4.0"
+version = "3.5.0"
 description = "A lambda layer for AWS Powertools for python and typescript"
 category = "main"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "cdk-aws-lambda-powertools-layer-3.4.0.tar.gz", hash = "sha256:3d3e89cb3b0f201f6f96473208e66b18279688049317d9c9849584a03c5d54a0"},
-    {file = "cdk_aws_lambda_powertools_layer-3.4.0-py3-none-any.whl", hash = "sha256:bb3c157de17d3fbdcbdc33e5ee967cc80606bbb7a14f46e4f1f6cc8c28db5c86"},
+    {file = "cdk-aws-lambda-powertools-layer-3.5.0.tar.gz", hash = "sha256:801dd0f3decc918ab1225ff9b6de2d0f979c492004b66511c76b70cee472c4ba"},
+    {file = "cdk_aws_lambda_powertools_layer-3.5.0-py3-none-any.whl", hash = "sha256:71427de2e99f41afde2cfaf2d2cf80d0e13cdc0d9ec392f9f5a60277812471cd"},
 ]
 
 [package.dependencies]
-aws-cdk-lib = ">=2.70.0,<3.0.0"
+aws-cdk-lib = ">=2.75.0,<3.0.0"
 constructs = ">=10.0.5,<11.0.0"
 jsii = ">=1.80.0,<2.0.0"
 publication = ">=0.0.3"
@@ -180,14 +180,14 @@ files = [
 
 [[package]]
 name = "constructs"
-version = "10.1.309"
+version = "10.2.0"
 description = "A programming model for software-defined state"
 category = "main"
 optional = false
 python-versions = "~=3.7"
 files = [
-    {file = "constructs-10.1.309-py3-none-any.whl", hash = "sha256:3127067e99151d1094b05443452bc9f84c685a719c00031c7b5e55e294e0deb7"},
-    {file = "constructs-10.1.309.tar.gz", hash = "sha256:cbc36a68187d4c9dd33b46b87aac2dda469bfda95c37d4c198bd98911064dce8"},
+    {file = "constructs-10.2.0-py3-none-any.whl", hash = "sha256:b915d4447c008b8e259d3565a8507f71014a40fdb8f31dfc3fb008c5190eef8a"},
+    {file = "constructs-10.2.0.tar.gz", hash = "sha256:30c234f7c3be28200a433b47a43d584fb5c5684e67e316b495ec059b1e0dfaef"},
 ]
 
 [package.dependencies]
@@ -316,14 +316,14 @@ files = [
 
 [[package]]
 name = "pytest"
-version = "7.3.0"
+version = "7.3.1"
 description = "pytest: simple powerful testing with Python"
 category = "dev"
 optional = false
 python-versions = ">=3.7"
 files = [
-    {file = "pytest-7.3.0-py3-none-any.whl", hash = "sha256:933051fa1bfbd38a21e73c3960cebdad4cf59483ddba7696c48509727e17f201"},
-    {file = "pytest-7.3.0.tar.gz", hash = "sha256:58ecc27ebf0ea643ebfdf7fb1249335da761a00c9f955bcd922349bcb68ee57d"},
+    {file = "pytest-7.3.1-py3-none-any.whl", hash = "sha256:3799fa815351fea3a5e96ac7e503a96fa51cc9942c3753cda7651b93c1cfa362"},
+    {file = "pytest-7.3.1.tar.gz", hash = "sha256:434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"},
 ]
 
 [package.dependencies]
@@ -458,4 +458,4 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more
 [metadata]
 lock-version = "2.0"
 python-versions = "^3.9"
-content-hash = "ade085b1989174ee03e7f27a781b580e2f7199441da6d8f60b3bf7891f6ca66e"
+content-hash = "dc47627a359b35b4080bcb1243d5fb814dc93086442c7a393560a2ba92633acd"
diff --git a/layer/pyproject.toml b/layer/pyproject.toml
index 5f10af27b94..5be2628e825 100644
--- a/layer/pyproject.toml
+++ b/layer/pyproject.toml
@@ -3,11 +3,11 @@ name = "aws-lambda-powertools-python-layer"
 version = "1.1.0"
 description = "AWS Lambda Powertools for Python Lambda Layers"
 authors = ["DevAx <aws-devax-open-source@amazon.com>"]
-license = "MIT"
 
+license = "MIT"
 [tool.poetry.dependencies]
 python = "^3.9"
-cdk-aws-lambda-powertools-layer = "^3.4.0"
+cdk-aws-lambda-powertools-layer = "^3.5.0"
 
 [tool.poetry.dev-dependencies]
 pytest = "^7.1.2"

From b1bed76e26e04d0b4a4af5fcec28e616ea48bf52 Mon Sep 17 00:00:00 2001
From: Ruben Fonseca <fonseka@gmail.com>
Date: Tue, 18 Apr 2023 19:22:45 +0200
Subject: [PATCH 8/8] fix: addressed comments on PR

---
 .github/workflows/run-e2e-tests.yml | 2 +-
 tests/e2e/utils/infrastructure.py   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml
index 32fcebc8c06..2f7b2f494ea 100644
--- a/.github/workflows/run-e2e-tests.yml
+++ b/.github/workflows/run-e2e-tests.yml
@@ -40,7 +40,7 @@ jobs:
       - name: "Use Python"
         uses: actions/setup-python@v4
         with:
-          python-version: "${{ matrix.version }}"
+          python-version: ${{ matrix.version }}
           architecture: "x64"
           cache: "poetry"
       - name: Setup Node.js
diff --git a/tests/e2e/utils/infrastructure.py b/tests/e2e/utils/infrastructure.py
index 8832b828e8e..e827841c52c 100644
--- a/tests/e2e/utils/infrastructure.py
+++ b/tests/e2e/utils/infrastructure.py
@@ -100,7 +100,7 @@ def create_lambda_functions(
         ```python
         from aws_cdk.aws_lambda import Runtime
 
-        self.create_lambda_functions(function_props={"runtime": Runtime.PYTHON_3_9)
+        self.create_lambda_functions(function_props={"runtime": Runtime.PYTHON_3_10)
         ```
         """
         if not self._handlers_dir.exists():