diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 314ca5414f..1db61f6423 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -148,9 +148,6 @@ jobs: - uses: actions/setup-go@v5 with: go-version: '1.19' - - uses: ruby/setup-ruby@v1 - with: - ruby-version: "2.7" - uses: ruby/setup-ruby@v1 with: ruby-version: "3.2" diff --git a/.gitignore b/.gitignore index 784bc4af7c..9eba302782 100644 --- a/.gitignore +++ b/.gitignore @@ -416,6 +416,8 @@ tests/integration/testdata/buildcmd/Dotnet6/bin tests/integration/testdata/buildcmd/Dotnet6/obj tests/integration/testdata/buildcmd/Dotnet7/bin tests/integration/testdata/buildcmd/Dotnet7/obj +tests/integration/testdata/buildcmd/Dotnet8/bin +tests/integration/testdata/buildcmd/Dotnet8/obj tests/integration/testdata/invoke/credential_tests/inprocess/dotnet/STS/obj tests/integration/testdata/sync/code/after/dotnet_function/src/HelloWorld/obj/ tests/integration/testdata/sync/code/before/dotnet_function/src/HelloWorld/obj/ diff --git a/designs/build_for_provided_runtimes.md b/designs/build_for_provided_runtimes.md index e031af20ca..605cc33209 100644 --- a/designs/build_for_provided_runtimes.md +++ b/designs/build_for_provided_runtimes.md @@ -7,7 +7,7 @@ What will be changed? --------------------- Serverless Function resources can now have a Metadata Resource Attribute which specifies a `BuildMethod`. -`BuildMethod` will either be the official lambda runtime identifiers such as `python3.8`, `nodejs12.x` etc or `makefile`. +`BuildMethod` will either be the official lambda runtime identifiers such as `python3.8`, `nodejs20.x` etc or `makefile`. If `BuildMethod` is specified to be `makefile`, the build targets that are present in the `Makefile` which take the form of `build-{resource_logical_id}` will be executed. diff --git a/designs/per_command_help_text.md b/designs/per_command_help_text.md index b5e8d706fa..5ea9cb0177 100644 --- a/designs/per_command_help_text.md +++ b/designs/per_command_help_text.md @@ -377,7 +377,7 @@ Usage: sam build [OPTIONS] [RESOURCE_LOGICAL_ID] 2. Nodejs 18.x, 16.x, 14.x, 12.x using NPM - 3. Ruby 2.7 using Bundler + 3. Ruby3.2 using Bundler 4. Java 8, Java 11 using Gradle and Maven diff --git a/requirements/base.txt b/requirements/base.txt index 8ff9bdc57d..f35ea86754 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -3,15 +3,15 @@ click~=8.1 Flask<3.1 boto3>=1.29.2,<2 jmespath~=1.0.1 -ruamel_yaml~=0.18.5 +ruamel_yaml~=0.18.6 PyYAML~=6.0,>=6.0.1 cookiecutter~=2.5.0 -aws-sam-translator==1.84.0 +aws-sam-translator==1.85.0 #docker minor version updates can include breaking changes. Auto update micro version only. docker~=7.0.0 dateparser~=1.2 requests~=2.31.0 -aws_lambda_builders==1.45.0 +aws_lambda_builders==1.46.0 tomlkit==0.12.3 watchdog==3.0.0 rich~=13.7.0 @@ -28,7 +28,7 @@ regex!=2021.10.8 tzlocal==5.2 #Adding cfn-lint dependency for SAM validate -cfn-lint~=0.85.0 +cfn-lint~=0.85.1 # Type checking boto3 objects -boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray,sqs,kinesis]==1.34.32 +boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray,sqs,kinesis]==1.34.43 diff --git a/requirements/dev.txt b/requirements/dev.txt index 05585cb879..ce59278149 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -12,7 +12,7 @@ types-pywin32==306.0.0.20240130 types-PyYAML==6.0.12.12 types-chevron==0.14.2.20240106 types-psutil==5.9.5.20240205 -types-setuptools==69.0.0.20240125 +types-setuptools==69.1.0.20240215 types-Pygments==2.17.0.20240106 types-colorama==0.4.15.20240205 types-dateparser==1.1.4.20240106 @@ -24,17 +24,18 @@ types-requests==2.31.0.6 types-urllib3==1.26.25.14 # Test requirements -pytest~=7.4.4 +pytest~=8.0.0 parameterized==0.9.0 pytest-xdist==3.5.0 pytest-forked==1.6.0 pytest-timeout==2.2.0 pytest-rerunfailures==13.0 # NOTE (hawflau): DO NOT upgrade pytest-metadata and pytest-json-report unless pytest-json-report addresses https://github.com/numirias/pytest-json-report/issues/89 -pytest-metadata==2.0.4 -pytest-json-report==1.5.0 +pytest-metadata==3.1.1 +# NOTE (lucashuy): `pytest-json-report` was updated to `pytest-json-report-wip` as the original repository does not seem to be maintained anymore, if `-wip` is updated, validate the changes +pytest-json-report-wip==1.5.1 filelock==3.13.1 # formatter -black==24.1.1 +black==24.2.0 psutil==5.9.8 diff --git a/requirements/pre-dev.txt b/requirements/pre-dev.txt index 2446b4802f..ed9f8a523c 100644 --- a/requirements/pre-dev.txt +++ b/requirements/pre-dev.txt @@ -1 +1 @@ -ruff==0.2.0 +ruff==0.2.1 diff --git a/requirements/pyinstaller-build.txt b/requirements/pyinstaller-build.txt index 02a5aeda3e..8631c9bc8d 100644 --- a/requirements/pyinstaller-build.txt +++ b/requirements/pyinstaller-build.txt @@ -1,3 +1,3 @@ # Executable binary builder requirements -setuptools==69.0.3 -pyinstaller==6.3.0 +setuptools==69.1.0 +pyinstaller==6.4.0 diff --git a/requirements/reproducible-linux.txt b/requirements/reproducible-linux.txt index b9416facb5..e561eaafb6 100644 --- a/requirements/reproducible-linux.txt +++ b/requirements/reproducible-linux.txt @@ -20,13 +20,13 @@ attrs==23.2.0 \ # jsonschema # referencing # sarif-om -aws-lambda-builders==1.45.0 \ - --hash=sha256:5c19a6628eecf21578cd9c521e747f4a2163c62c527cd840b11b62a10b661348 \ - --hash=sha256:a4db7766198c052900905bd7ee3b1a8b486511394cdabffed054204d43b29943 +aws-lambda-builders==1.46.0 \ + --hash=sha256:69305e46af020c6a07d548b812695f0a93eef8e17a9f7200f03f5e63ce498730 \ + --hash=sha256:fe3ffc5b3d3176b3e3f92a57d83615ed63399ba897d1ce4110bcaba83a1878d3 # via aws-sam-cli (setup.py) -aws-sam-translator==1.84.0 \ - --hash=sha256:a24f43e80095c79258a1f1c7a0b8169f55daf0b2bc237d5b9010b02ba86fa3bb \ - --hash=sha256:dbfd5669b5ef4bd7bc7af4775eec2ce4db61a2c2a17d721e67b51cf6a6dd63f9 +aws-sam-translator==1.85.0 \ + --hash=sha256:e41938affa128fb5bde5e1989b260bf539a96369bba3faf316ce66651351df39 \ + --hash=sha256:e8c69a4db7279421ff6c3579cd4d43395fe9b6781f50416528e984be68e25481 # via # aws-sam-cli (setup.py) # cfn-lint @@ -38,27 +38,25 @@ blinker==1.7.0 \ --hash=sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 \ --hash=sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182 # via flask -boto3==1.34.32 \ - --hash=sha256:7bf924c942426839efd7fa5c2c4fe85dba208258393e8017a5ad327c30e5948d \ - --hash=sha256:9e62f42de2873baab96eb822386d6a3b1d77f6715cb9033d7b4e6e9ebb0cdbe7 +boto3==1.34.43 \ + --hash=sha256:179cdcff2dee116ff0bbe10c21a374fff8ae0d9ea3842bd8dd2c9f69e8185d91 \ + --hash=sha256:ed646f600b76939d54fa1ff868415793551a5a08b9de0a09696b46d116da7da5 # via # aws-sam-cli (setup.py) # aws-sam-translator -boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.32 \ - --hash=sha256:077f13b0856862bedafb92b8499b960624d06f684595be701fade51a8e9615ed \ - --hash=sha256:27fc3b5b69379f0557d881d3f27c201c257eabff535d343ed5fd4a162a5fb389 - # via - # aws-sam-cli (setup.py) - # boto3-stubs -botocore==1.34.32 \ - --hash=sha256:466aee158bd0429dbd567c4e2bdf7be9a0a5a74409f8b295c30f34d84c497f9c \ - --hash=sha256:aa26a74df83eed3db9542c1cf9108138794c344918b36a506c0723717f1acaab +boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.43 \ + --hash=sha256:0a0bdf96eb42f3b12b9bf159d97c407cf272e0430e5f7b42581ce7124ce9bb78 \ + --hash=sha256:5698322a22e54dbebc6f0010dc0f08271f0c911d7f4c5880af341d5f0323748a + # via aws-sam-cli (setup.py) +botocore==1.34.43 \ + --hash=sha256:00dea9fd602dc97420318d373079bdfcc8da34501aaa908ab98b477526bdefec \ + --hash=sha256:ab7d8046a8c3326ecf3d9f9884e79aa77fed864416ed8af52b9e22ab055acf4e # via # boto3 # s3transfer -botocore-stubs==1.34.32 \ - --hash=sha256:978c97b8c02b5ffa3726a5052e5715aecc52c640a75a8088b3a58453c2b054b2 \ - --hash=sha256:e5b04b8ab81e736088470b7be244de072ac2f986caf0f51b7e2087400778dc9f +botocore-stubs==1.34.43 \ + --hash=sha256:6da6730071a83a57200d71bab6b5c2d0033adec5bbb59396113e498de9136aed \ + --hash=sha256:c30aded65547eb339ea4438e7662c4111aee09f360132202bd09e3130f7be956 # via boto3-stubs certifi==2024.2.2 \ --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \ @@ -118,9 +116,9 @@ cffi==1.16.0 \ --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 # via cryptography -cfn-lint==0.85.0 \ - --hash=sha256:64d6e8d85cdc573b61add78f9ff95a142a1834edb4793d1291551f6d953f73fe \ - --hash=sha256:e4849e1779bd1a9f4543617372708a20519b6d7cad5f980e20c6deaa227361a2 +cfn-lint==0.85.1 \ + --hash=sha256:5d5b31609ded0bc513f1c57c0dc0017ec1613c2b33ef8e74802149bedb01a3de \ + --hash=sha256:f003603a6f13bcda125c60f5021fc19b96f18a27ebc44498947709cb7627d0d6 # via aws-sam-cli (setup.py) chardet==5.2.0 \ --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ @@ -233,39 +231,39 @@ cookiecutter==2.5.0 \ --hash=sha256:8aa2f12ed11bc05628651e9dc4353a10571dd9908aaaaeec959a2b9ea465a5d2 \ --hash=sha256:e61e9034748e3f41b8bd2c11f00d030784b48711c4d5c42363c50989a65331ec # via aws-sam-cli (setup.py) -cryptography==42.0.2 \ - --hash=sha256:087887e55e0b9c8724cf05361357875adb5c20dec27e5816b653492980d20380 \ - --hash=sha256:09a77e5b2e8ca732a19a90c5bca2d124621a1edb5438c5daa2d2738bfeb02589 \ - --hash=sha256:130c0f77022b2b9c99d8cebcdd834d81705f61c68e91ddd614ce74c657f8b3ea \ - --hash=sha256:141e2aa5ba100d3788c0ad7919b288f89d1fe015878b9659b307c9ef867d3a65 \ - --hash=sha256:28cb2c41f131a5758d6ba6a0504150d644054fd9f3203a1e8e8d7ac3aea7f73a \ - --hash=sha256:2f9f14185962e6a04ab32d1abe34eae8a9001569ee4edb64d2304bf0d65c53f3 \ - --hash=sha256:320948ab49883557a256eab46149df79435a22d2fefd6a66fe6946f1b9d9d008 \ - --hash=sha256:36d4b7c4be6411f58f60d9ce555a73df8406d484ba12a63549c88bd64f7967f1 \ - --hash=sha256:3b15c678f27d66d247132cbf13df2f75255627bcc9b6a570f7d2fd08e8c081d2 \ - --hash=sha256:3dbd37e14ce795b4af61b89b037d4bc157f2cb23e676fa16932185a04dfbf635 \ - --hash=sha256:4383b47f45b14459cab66048d384614019965ba6c1a1a141f11b5a551cace1b2 \ - --hash=sha256:44c95c0e96b3cb628e8452ec060413a49002a247b2b9938989e23a2c8291fc90 \ - --hash=sha256:4b063d3413f853e056161eb0c7724822a9740ad3caa24b8424d776cebf98e7ee \ - --hash=sha256:52ed9ebf8ac602385126c9a2fe951db36f2cb0c2538d22971487f89d0de4065a \ - --hash=sha256:55d1580e2d7e17f45d19d3b12098e352f3a37fe86d380bf45846ef257054b242 \ - --hash=sha256:5ef9bc3d046ce83c4bbf4c25e1e0547b9c441c01d30922d812e887dc5f125c12 \ - --hash=sha256:5fa82a26f92871eca593b53359c12ad7949772462f887c35edaf36f87953c0e2 \ - --hash=sha256:61321672b3ac7aade25c40449ccedbc6db72c7f5f0fdf34def5e2f8b51ca530d \ - --hash=sha256:701171f825dcab90969596ce2af253143b93b08f1a716d4b2a9d2db5084ef7be \ - --hash=sha256:841ec8af7a8491ac76ec5a9522226e287187a3107e12b7d686ad354bb78facee \ - --hash=sha256:8a06641fb07d4e8f6c7dda4fc3f8871d327803ab6542e33831c7ccfdcb4d0ad6 \ - --hash=sha256:8e88bb9eafbf6a4014d55fb222e7360eef53e613215085e65a13290577394529 \ - --hash=sha256:a00aee5d1b6c20620161984f8ab2ab69134466c51f58c052c11b076715e72929 \ - --hash=sha256:a047682d324ba56e61b7ea7c7299d51e61fd3bca7dad2ccc39b72bd0118d60a1 \ - --hash=sha256:a7ef8dd0bf2e1d0a27042b231a3baac6883cdd5557036f5e8df7139255feaac6 \ - --hash=sha256:ad28cff53f60d99a928dfcf1e861e0b2ceb2bc1f08a074fdd601b314e1cc9e0a \ - --hash=sha256:b9097a208875fc7bbeb1286d0125d90bdfed961f61f214d3f5be62cd4ed8a446 \ - --hash=sha256:b97fe7d7991c25e6a31e5d5e795986b18fbbb3107b873d5f3ae6dc9a103278e9 \ - --hash=sha256:e0ec52ba3c7f1b7d813cd52649a5b3ef1fc0d433219dc8c93827c57eab6cf888 \ - --hash=sha256:ea2c3ffb662fec8bbbfce5602e2c159ff097a4631d96235fcf0fb00e59e3ece4 \ - --hash=sha256:fa3dec4ba8fb6e662770b74f62f1a0c7d4e37e25b58b2bf2c1be4c95372b4a33 \ - --hash=sha256:fbeb725c9dc799a574518109336acccaf1303c30d45c075c665c0793c2f79a7f +cryptography==42.0.4 \ + --hash=sha256:01911714117642a3f1792c7f376db572aadadbafcd8d75bb527166009c9f1d1b \ + --hash=sha256:0e89f7b84f421c56e7ff69f11c441ebda73b8a8e6488d322ef71746224c20fce \ + --hash=sha256:12d341bd42cdb7d4937b0cabbdf2a94f949413ac4504904d0cdbdce4a22cbf88 \ + --hash=sha256:15a1fb843c48b4a604663fa30af60818cd28f895572386e5f9b8a665874c26e7 \ + --hash=sha256:1cdcdbd117681c88d717437ada72bdd5be9de117f96e3f4d50dab3f59fd9ab20 \ + --hash=sha256:1df6fcbf60560d2113b5ed90f072dc0b108d64750d4cbd46a21ec882c7aefce9 \ + --hash=sha256:3c6048f217533d89f2f8f4f0fe3044bf0b2090453b7b73d0b77db47b80af8dff \ + --hash=sha256:3e970a2119507d0b104f0a8e281521ad28fc26f2820687b3436b8c9a5fcf20d1 \ + --hash=sha256:44a64043f743485925d3bcac548d05df0f9bb445c5fcca6681889c7c3ab12764 \ + --hash=sha256:4e36685cb634af55e0677d435d425043967ac2f3790ec652b2b88ad03b85c27b \ + --hash=sha256:5f8907fcf57392cd917892ae83708761c6ff3c37a8e835d7246ff0ad251d9298 \ + --hash=sha256:69b22ab6506a3fe483d67d1ed878e1602bdd5912a134e6202c1ec672233241c1 \ + --hash=sha256:6bfadd884e7280df24d26f2186e4e07556a05d37393b0f220a840b083dc6a824 \ + --hash=sha256:6d0fbe73728c44ca3a241eff9aefe6496ab2656d6e7a4ea2459865f2e8613257 \ + --hash=sha256:6ffb03d419edcab93b4b19c22ee80c007fb2d708429cecebf1dd3258956a563a \ + --hash=sha256:810bcf151caefc03e51a3d61e53335cd5c7316c0a105cc695f0959f2c638b129 \ + --hash=sha256:831a4b37accef30cccd34fcb916a5d7b5be3cbbe27268a02832c3e450aea39cb \ + --hash=sha256:887623fe0d70f48ab3f5e4dbf234986b1329a64c066d719432d0698522749929 \ + --hash=sha256:a0298bdc6e98ca21382afe914c642620370ce0470a01e1bef6dd9b5354c36854 \ + --hash=sha256:a1327f280c824ff7885bdeef8578f74690e9079267c1c8bd7dc5cc5aa065ae52 \ + --hash=sha256:c1f25b252d2c87088abc8bbc4f1ecbf7c919e05508a7e8628e6875c40bc70923 \ + --hash=sha256:c3a5cbc620e1e17009f30dd34cb0d85c987afd21c41a74352d1719be33380885 \ + --hash=sha256:ce8613beaffc7c14f091497346ef117c1798c202b01153a8cc7b8e2ebaaf41c0 \ + --hash=sha256:d2a27aca5597c8a71abbe10209184e1a8e91c1fd470b5070a2ea60cafec35bcd \ + --hash=sha256:dad9c385ba8ee025bb0d856714f71d7840020fe176ae0229de618f14dae7a6e2 \ + --hash=sha256:db4b65b02f59035037fde0998974d84244a64c3265bdef32a827ab9b63d61b18 \ + --hash=sha256:e09469a2cec88fb7b078e16d4adec594414397e8879a4341c6ace96013463d5b \ + --hash=sha256:e53dc41cda40b248ebc40b83b31516487f7db95ab8ceac1f042626bc43a2f992 \ + --hash=sha256:f1e85a178384bf19e36779d91ff35c7617c885da487d689b05c1366f9933ad74 \ + --hash=sha256:f47be41843200f7faec0683ad751e5ef11b9a56a220d57f300376cd8aba81660 \ + --hash=sha256:fb0cef872d8193e487fc6bdb08559c3aa41b659a7d9be48b2e10747f47863925 \ + --hash=sha256:ffc73996c4fca3d2b6c1c8c12bfd3ad00def8621da24f547626bf06441400449 # via pyopenssl dateparser==1.2.0 \ --hash=sha256:0b21ad96534e562920a0083e97fd45fa959882d4162acc358705144520a35830 \ @@ -275,9 +273,9 @@ docker==7.0.0 \ --hash=sha256:12ba681f2777a0ad28ffbcc846a69c31b4dfd9752b47eb425a274ee269c5e14b \ --hash=sha256:323736fb92cd9418fc5e7133bc953e11a9da04f4483f828b527db553f1e7e5a3 # via aws-sam-cli (setup.py) -flask==3.0.1 \ - --hash=sha256:6489f51bb3666def6f314e15f19d50a1869a19ae0e8c9a3641ffe66c77d42403 \ - --hash=sha256:ca631a507f6dfe6c278ae20112cea3ff54ff2216390bf8880f6b035a5354af13 +flask==3.0.2 \ + --hash=sha256:3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e \ + --hash=sha256:822c03f4b799204250a7ee84b1eddc40665395333973dfb9deebfe425fefcb7d # via aws-sam-cli (setup.py) idna==3.6 \ --hash=sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca \ @@ -335,67 +333,67 @@ markdown-it-py==3.0.0 \ --hash=sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 \ --hash=sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb # via rich -markupsafe==2.1.4 \ - --hash=sha256:0042d6a9880b38e1dd9ff83146cc3c9c18a059b9360ceae207805567aacccc69 \ - --hash=sha256:0c26f67b3fe27302d3a412b85ef696792c4a2386293c53ba683a89562f9399b0 \ - --hash=sha256:0fbad3d346df8f9d72622ac71b69565e621ada2ce6572f37c2eae8dacd60385d \ - --hash=sha256:15866d7f2dc60cfdde12ebb4e75e41be862348b4728300c36cdf405e258415ec \ - --hash=sha256:1c98c33ffe20e9a489145d97070a435ea0679fddaabcafe19982fe9c971987d5 \ - --hash=sha256:21e7af8091007bf4bebf4521184f4880a6acab8df0df52ef9e513d8e5db23411 \ - --hash=sha256:23984d1bdae01bee794267424af55eef4dfc038dc5d1272860669b2aa025c9e3 \ - --hash=sha256:31f57d64c336b8ccb1966d156932f3daa4fee74176b0fdc48ef580be774aae74 \ - --hash=sha256:3583a3a3ab7958e354dc1d25be74aee6228938312ee875a22330c4dc2e41beb0 \ - --hash=sha256:36d7626a8cca4d34216875aee5a1d3d654bb3dac201c1c003d182283e3205949 \ - --hash=sha256:396549cea79e8ca4ba65525470d534e8a41070e6b3500ce2414921099cb73e8d \ - --hash=sha256:3a66c36a3864df95e4f62f9167c734b3b1192cb0851b43d7cc08040c074c6279 \ - --hash=sha256:3aae9af4cac263007fd6309c64c6ab4506dd2b79382d9d19a1994f9240b8db4f \ - --hash=sha256:3ab3a886a237f6e9c9f4f7d272067e712cdb4efa774bef494dccad08f39d8ae6 \ - --hash=sha256:47bb5f0142b8b64ed1399b6b60f700a580335c8e1c57f2f15587bd072012decc \ - --hash=sha256:49a3b78a5af63ec10d8604180380c13dcd870aba7928c1fe04e881d5c792dc4e \ - --hash=sha256:4df98d4a9cd6a88d6a585852f56f2155c9cdb6aec78361a19f938810aa020954 \ - --hash=sha256:5045e892cfdaecc5b4c01822f353cf2c8feb88a6ec1c0adef2a2e705eef0f656 \ - --hash=sha256:5244324676254697fe5c181fc762284e2c5fceeb1c4e3e7f6aca2b6f107e60dc \ - --hash=sha256:54635102ba3cf5da26eb6f96c4b8c53af8a9c0d97b64bdcb592596a6255d8518 \ - --hash=sha256:54a7e1380dfece8847c71bf7e33da5d084e9b889c75eca19100ef98027bd9f56 \ - --hash=sha256:55d03fea4c4e9fd0ad75dc2e7e2b6757b80c152c032ea1d1de487461d8140efc \ - --hash=sha256:698e84142f3f884114ea8cf83e7a67ca8f4ace8454e78fe960646c6c91c63bfa \ - --hash=sha256:6aa5e2e7fc9bc042ae82d8b79d795b9a62bd8f15ba1e7594e3db243f158b5565 \ - --hash=sha256:7653fa39578957bc42e5ebc15cf4361d9e0ee4b702d7d5ec96cdac860953c5b4 \ - --hash=sha256:765f036a3d00395a326df2835d8f86b637dbaf9832f90f5d196c3b8a7a5080cb \ - --hash=sha256:78bc995e004681246e85e28e068111a4c3f35f34e6c62da1471e844ee1446250 \ - --hash=sha256:7a07f40ef8f0fbc5ef1000d0c78771f4d5ca03b4953fc162749772916b298fc4 \ - --hash=sha256:8b570a1537367b52396e53325769608f2a687ec9a4363647af1cded8928af959 \ - --hash=sha256:987d13fe1d23e12a66ca2073b8d2e2a75cec2ecb8eab43ff5624ba0ad42764bc \ - --hash=sha256:9896fca4a8eb246defc8b2a7ac77ef7553b638e04fbf170bff78a40fa8a91474 \ - --hash=sha256:9e9e3c4020aa2dc62d5dd6743a69e399ce3de58320522948af6140ac959ab863 \ - --hash=sha256:a0b838c37ba596fcbfca71651a104a611543077156cb0a26fe0c475e1f152ee8 \ - --hash=sha256:a4d176cfdfde84f732c4a53109b293d05883e952bbba68b857ae446fa3119b4f \ - --hash=sha256:a76055d5cb1c23485d7ddae533229039b850db711c554a12ea64a0fd8a0129e2 \ - --hash=sha256:a76cd37d229fc385738bd1ce4cba2a121cf26b53864c1772694ad0ad348e509e \ - --hash=sha256:a7cc49ef48a3c7a0005a949f3c04f8baa5409d3f663a1b36f0eba9bfe2a0396e \ - --hash=sha256:abf5ebbec056817057bfafc0445916bb688a255a5146f900445d081db08cbabb \ - --hash=sha256:b0fe73bac2fed83839dbdbe6da84ae2a31c11cfc1c777a40dbd8ac8a6ed1560f \ - --hash=sha256:b6f14a9cd50c3cb100eb94b3273131c80d102e19bb20253ac7bd7336118a673a \ - --hash=sha256:b83041cda633871572f0d3c41dddd5582ad7d22f65a72eacd8d3d6d00291df26 \ - --hash=sha256:b835aba863195269ea358cecc21b400276747cc977492319fd7682b8cd2c253d \ - --hash=sha256:bf1196dcc239e608605b716e7b166eb5faf4bc192f8a44b81e85251e62584bd2 \ - --hash=sha256:c669391319973e49a7c6230c218a1e3044710bc1ce4c8e6eb71f7e6d43a2c131 \ - --hash=sha256:c7556bafeaa0a50e2fe7dc86e0382dea349ebcad8f010d5a7dc6ba568eaaa789 \ - --hash=sha256:c8f253a84dbd2c63c19590fa86a032ef3d8cc18923b8049d91bcdeeb2581fbf6 \ - --hash=sha256:d18b66fe626ac412d96c2ab536306c736c66cf2a31c243a45025156cc190dc8a \ - --hash=sha256:d5291d98cd3ad9a562883468c690a2a238c4a6388ab3bd155b0c75dd55ece858 \ - --hash=sha256:d5c31fe855c77cad679b302aabc42d724ed87c043b1432d457f4976add1c2c3e \ - --hash=sha256:d6e427c7378c7f1b2bef6a344c925b8b63623d3321c09a237b7cc0e77dd98ceb \ - --hash=sha256:dac1ebf6983148b45b5fa48593950f90ed6d1d26300604f321c74a9ca1609f8e \ - --hash=sha256:de8153a7aae3835484ac168a9a9bdaa0c5eee4e0bc595503c95d53b942879c84 \ - --hash=sha256:e1a0d1924a5013d4f294087e00024ad25668234569289650929ab871231668e7 \ - --hash=sha256:e7902211afd0af05fbadcc9a312e4cf10f27b779cf1323e78d52377ae4b72bea \ - --hash=sha256:e888ff76ceb39601c59e219f281466c6d7e66bd375b4ec1ce83bcdc68306796b \ - --hash=sha256:f06e5a9e99b7df44640767842f414ed5d7bedaaa78cd817ce04bbd6fd86e2dd6 \ - --hash=sha256:f6be2d708a9d0e9b0054856f07ac7070fbe1754be40ca8525d5adccdbda8f475 \ - --hash=sha256:f9917691f410a2e0897d1ef99619fd3f7dd503647c8ff2475bf90c3cf222ad74 \ - --hash=sha256:fc1a75aa8f11b87910ffd98de62b29d6520b6d6e8a3de69a70ca34dea85d2a8a \ - --hash=sha256:fe8512ed897d5daf089e5bd010c3dc03bb1bdae00b35588c49b98268d4a01e00 +markupsafe==2.1.5 \ + --hash=sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf \ + --hash=sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff \ + --hash=sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f \ + --hash=sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3 \ + --hash=sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532 \ + --hash=sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f \ + --hash=sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 \ + --hash=sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df \ + --hash=sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4 \ + --hash=sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906 \ + --hash=sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f \ + --hash=sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4 \ + --hash=sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8 \ + --hash=sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371 \ + --hash=sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2 \ + --hash=sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465 \ + --hash=sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52 \ + --hash=sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6 \ + --hash=sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169 \ + --hash=sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad \ + --hash=sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 \ + --hash=sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0 \ + --hash=sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029 \ + --hash=sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f \ + --hash=sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a \ + --hash=sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced \ + --hash=sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5 \ + --hash=sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c \ + --hash=sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf \ + --hash=sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9 \ + --hash=sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb \ + --hash=sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad \ + --hash=sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3 \ + --hash=sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1 \ + --hash=sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46 \ + --hash=sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc \ + --hash=sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a \ + --hash=sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee \ + --hash=sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900 \ + --hash=sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 \ + --hash=sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea \ + --hash=sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f \ + --hash=sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5 \ + --hash=sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e \ + --hash=sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a \ + --hash=sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f \ + --hash=sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50 \ + --hash=sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a \ + --hash=sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b \ + --hash=sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4 \ + --hash=sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff \ + --hash=sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2 \ + --hash=sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46 \ + --hash=sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b \ + --hash=sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf \ + --hash=sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5 \ + --hash=sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5 \ + --hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \ + --hash=sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd \ + --hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68 # via # jinja2 # werkzeug @@ -439,9 +437,9 @@ mypy-boto3-schemas==1.34.0 \ --hash=sha256:28c016609dcffc606bd8425ee92894c46e943ab77033e1ae46481f00c39b7f75 \ --hash=sha256:3b25a71944192b0980c3bb5132deb7c06ee9b88580ed63f257fad97cf3bf2927 # via boto3-stubs -mypy-boto3-secretsmanager==1.34.17 \ - --hash=sha256:0dbd1cdbe7992324c3414cccf0256e3905827bbf1f6a8d58c255635f6a2b4bfb \ - --hash=sha256:a547932d99c3f711b27b9ea1c38fc063050910c0bf6c8eb346abd96ace61668e +mypy-boto3-secretsmanager==1.34.43 \ + --hash=sha256:64e9df58f71072f0a912ecaca626683f4536da078caa204ac07928c4b1481b8b \ + --hash=sha256:abbf560775c2fe0dc383b7f70c16a1bf753d9b3ffc0caa5e35447e685783a68b # via boto3-stubs mypy-boto3-signer==1.34.0 \ --hash=sha256:c11ed943ccd38ee54fc0ca90ed347ef770d695df49535eab96dd97fb3dbdc592 \ @@ -481,90 +479,90 @@ pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 # via cffi -pydantic==2.6.0 \ - --hash=sha256:1440966574e1b5b99cf75a13bec7b20e3512e8a61b894ae252f56275e2c465ae \ - --hash=sha256:ae887bd94eb404b09d86e4d12f93893bdca79d766e738528c6fa1c849f3c6bcf +pydantic==2.6.1 \ + --hash=sha256:0b6a909df3192245cb736509a92ff69e4fef76116feffec68e93a567347bae6f \ + --hash=sha256:4fd5c182a2488dc63e6d32737ff19937888001e2a6d86e94b3f233104a5d1fa9 # via aws-sam-translator -pydantic-core==2.16.1 \ - --hash=sha256:06f0d5a1d9e1b7932477c172cc720b3b23c18762ed7a8efa8398298a59d177c7 \ - --hash=sha256:07982b82d121ed3fc1c51faf6e8f57ff09b1325d2efccaa257dd8c0dd937acca \ - --hash=sha256:0f478ec204772a5c8218e30eb813ca43e34005dff2eafa03931b3d8caef87d51 \ - --hash=sha256:102569d371fadc40d8f8598a59379c37ec60164315884467052830b28cc4e9da \ - --hash=sha256:10dca874e35bb60ce4f9f6665bfbfad050dd7573596608aeb9e098621ac331dc \ - --hash=sha256:150ba5c86f502c040b822777e2e519b5625b47813bd05f9273a8ed169c97d9ae \ - --hash=sha256:1661c668c1bb67b7cec96914329d9ab66755911d093bb9063c4c8914188af6d4 \ - --hash=sha256:1a2fe7b00a49b51047334d84aafd7e39f80b7675cad0083678c58983662da89b \ - --hash=sha256:1ae8048cba95f382dba56766525abca438328455e35c283bb202964f41a780b0 \ - --hash=sha256:20f724a023042588d0f4396bbbcf4cffd0ddd0ad3ed4f0d8e6d4ac4264bae81e \ - --hash=sha256:2133b0e412a47868a358713287ff9f9a328879da547dc88be67481cdac529118 \ - --hash=sha256:21e3298486c4ea4e4d5cc6fb69e06fb02a4e22089304308817035ac006a7f506 \ - --hash=sha256:21ebaa4bf6386a3b22eec518da7d679c8363fb7fb70cf6972161e5542f470798 \ - --hash=sha256:23632132f1fd608034f1a56cc3e484be00854db845b3a4a508834be5a6435a6f \ - --hash=sha256:2d5bea8012df5bb6dda1e67d0563ac50b7f64a5d5858348b5c8cb5043811c19d \ - --hash=sha256:300616102fb71241ff477a2cbbc847321dbec49428434a2f17f37528721c4948 \ - --hash=sha256:30a8259569fbeec49cfac7fda3ec8123486ef1b729225222f0d41d5f840b476f \ - --hash=sha256:399166f24c33a0c5759ecc4801f040dbc87d412c1a6d6292b2349b4c505effc9 \ - --hash=sha256:3fac641bbfa43d5a1bed99d28aa1fded1984d31c670a95aac1bf1d36ac6ce137 \ - --hash=sha256:42c29d54ed4501a30cd71015bf982fa95e4a60117b44e1a200290ce687d3e640 \ - --hash=sha256:462d599299c5971f03c676e2b63aa80fec5ebc572d89ce766cd11ca8bcb56f3f \ - --hash=sha256:4eebbd049008eb800f519578e944b8dc8e0f7d59a5abb5924cc2d4ed3a1834ff \ - --hash=sha256:502c062a18d84452858f8aea1e520e12a4d5228fc3621ea5061409d666ea1706 \ - --hash=sha256:5317c04349472e683803da262c781c42c5628a9be73f4750ac7d13040efb5d2d \ - --hash=sha256:5511f962dd1b9b553e9534c3b9c6a4b0c9ded3d8c2be96e61d56f933feef9e1f \ - --hash=sha256:561be4e3e952c2f9056fba5267b99be4ec2afadc27261505d4992c50b33c513c \ - --hash=sha256:601d3e42452cd4f2891c13fa8c70366d71851c1593ed42f57bf37f40f7dca3c8 \ - --hash=sha256:644904600c15816a1f9a1bafa6aab0d21db2788abcdf4e2a77951280473f33e1 \ - --hash=sha256:653a5dfd00f601a0ed6654a8b877b18d65ac32c9d9997456e0ab240807be6cf7 \ - --hash=sha256:694a5e9f1f2c124a17ff2d0be613fd53ba0c26de588eb4bdab8bca855e550d95 \ - --hash=sha256:71b4a48a7427f14679f0015b13c712863d28bb1ab700bd11776a5368135c7d60 \ - --hash=sha256:72bf9308a82b75039b8c8edd2be2924c352eda5da14a920551a8b65d5ee89253 \ - --hash=sha256:735dceec50fa907a3c314b84ed609dec54b76a814aa14eb90da31d1d36873a5e \ - --hash=sha256:73802194f10c394c2bedce7a135ba1d8ba6cff23adf4217612bfc5cf060de34c \ - --hash=sha256:780daad9e35b18d10d7219d24bfb30148ca2afc309928e1d4d53de86822593dc \ - --hash=sha256:8655f55fe68c4685673265a650ef71beb2d31871c049c8b80262026f23605ee3 \ - --hash=sha256:877045a7969ace04d59516d5d6a7dee13106822f99a5d8df5e6822941f7bedc8 \ - --hash=sha256:87bce04f09f0552b66fca0c4e10da78d17cb0e71c205864bab4e9595122cb9d9 \ - --hash=sha256:8d4dfc66abea3ec6d9f83e837a8f8a7d9d3a76d25c9911735c76d6745950e62c \ - --hash=sha256:8ec364e280db4235389b5e1e6ee924723c693cbc98e9d28dc1767041ff9bc388 \ - --hash=sha256:8fa00fa24ffd8c31fac081bf7be7eb495be6d248db127f8776575a746fa55c95 \ - --hash=sha256:920c4897e55e2881db6a6da151198e5001552c3777cd42b8a4c2f72eedc2ee91 \ - --hash=sha256:920f4633bee43d7a2818e1a1a788906df5a17b7ab6fe411220ed92b42940f818 \ - --hash=sha256:9795f56aa6b2296f05ac79d8a424e94056730c0b860a62b0fdcfe6340b658cc8 \ - --hash=sha256:98f0edee7ee9cc7f9221af2e1b95bd02810e1c7a6d115cfd82698803d385b28f \ - --hash=sha256:99c095457eea8550c9fa9a7a992e842aeae1429dab6b6b378710f62bfb70b394 \ - --hash=sha256:99d3a433ef5dc3021c9534a58a3686c88363c591974c16c54a01af7efd741f13 \ - --hash=sha256:99f9a50b56713a598d33bc23a9912224fc5d7f9f292444e6664236ae471ddf17 \ - --hash=sha256:9c46e556ee266ed3fb7b7a882b53df3c76b45e872fdab8d9cf49ae5e91147fd7 \ - --hash=sha256:9f5d37ff01edcbace53a402e80793640c25798fb7208f105d87a25e6fcc9ea06 \ - --hash=sha256:a0b4cfe408cd84c53bab7d83e4209458de676a6ec5e9c623ae914ce1cb79b96f \ - --hash=sha256:a497be217818c318d93f07e14502ef93d44e6a20c72b04c530611e45e54c2196 \ - --hash=sha256:ac89ccc39cd1d556cc72d6752f252dc869dde41c7c936e86beac5eb555041b66 \ - --hash=sha256:adf28099d061a25fbcc6531febb7a091e027605385de9fe14dd6a97319d614cf \ - --hash=sha256:afa01d25769af33a8dac0d905d5c7bb2d73c7c3d5161b2dd6f8b5b5eea6a3c4c \ - --hash=sha256:b1fc07896fc1851558f532dffc8987e526b682ec73140886c831d773cef44b76 \ - --hash=sha256:b49c604ace7a7aa8af31196abbf8f2193be605db6739ed905ecaf62af31ccae0 \ - --hash=sha256:b9f3e0bffad6e238f7acc20c393c1ed8fab4371e3b3bc311020dfa6020d99212 \ - --hash=sha256:ba07646f35e4e49376c9831130039d1b478fbfa1215ae62ad62d2ee63cf9c18f \ - --hash=sha256:bd88f40f2294440d3f3c6308e50d96a0d3d0973d6f1a5732875d10f569acef49 \ - --hash=sha256:c0be58529d43d38ae849a91932391eb93275a06b93b79a8ab828b012e916a206 \ - --hash=sha256:c45f62e4107ebd05166717ac58f6feb44471ed450d07fecd90e5f69d9bf03c48 \ - --hash=sha256:c56da23034fe66221f2208c813d8aa509eea34d97328ce2add56e219c3a9f41c \ - --hash=sha256:c94b5537bf6ce66e4d7830c6993152940a188600f6ae044435287753044a8fe2 \ - --hash=sha256:cebf8d56fee3b08ad40d332a807ecccd4153d3f1ba8231e111d9759f02edfd05 \ - --hash=sha256:d0bf6f93a55d3fa7a079d811b29100b019784e2ee6bc06b0bb839538272a5610 \ - --hash=sha256:d195add190abccefc70ad0f9a0141ad7da53e16183048380e688b466702195dd \ - --hash=sha256:d25ef0c33f22649b7a088035fd65ac1ce6464fa2876578df1adad9472f918a76 \ - --hash=sha256:d6cbdf12ef967a6aa401cf5cdf47850559e59eedad10e781471c960583f25aa1 \ - --hash=sha256:d8c032ccee90b37b44e05948b449a2d6baed7e614df3d3f47fe432c952c21b60 \ - --hash=sha256:daff04257b49ab7f4b3f73f98283d3dbb1a65bf3500d55c7beac3c66c310fe34 \ - --hash=sha256:e83ebbf020be727d6e0991c1b192a5c2e7113eb66e3def0cd0c62f9f266247e4 \ - --hash=sha256:ed3025a8a7e5a59817b7494686d449ebfbe301f3e757b852c8d0d1961d6be864 \ - --hash=sha256:f1936ef138bed2165dd8573aa65e3095ef7c2b6247faccd0e15186aabdda7f66 \ - --hash=sha256:f5247a3d74355f8b1d780d0f3b32a23dd9f6d3ff43ef2037c6dcd249f35ecf4c \ - --hash=sha256:fa496cd45cda0165d597e9d6f01e36c33c9508f75cf03c0a650018c5048f578e \ - --hash=sha256:fb4363e6c9fc87365c2bc777a1f585a22f2f56642501885ffc7942138499bf54 \ - --hash=sha256:fb4370b15111905bf8b5ba2129b926af9470f014cb0493a67d23e9d7a48348e8 \ - --hash=sha256:fbec2af0ebafa57eb82c18c304b37c86a8abddf7022955d1742b3d5471a6339e +pydantic-core==2.16.2 \ + --hash=sha256:02906e7306cb8c5901a1feb61f9ab5e5c690dbbeaa04d84c1b9ae2a01ebe9379 \ + --hash=sha256:0ba503850d8b8dcc18391f10de896ae51d37fe5fe43dbfb6a35c5c5cad271a06 \ + --hash=sha256:16aa02e7a0f539098e215fc193c8926c897175d64c7926d00a36188917717a05 \ + --hash=sha256:18de31781cdc7e7b28678df7c2d7882f9692ad060bc6ee3c94eb15a5d733f8f7 \ + --hash=sha256:22c5f022799f3cd6741e24f0443ead92ef42be93ffda0d29b2597208c94c3753 \ + --hash=sha256:2924b89b16420712e9bb8192396026a8fbd6d8726224f918353ac19c4c043d2a \ + --hash=sha256:308974fdf98046db28440eb3377abba274808bf66262e042c412eb2adf852731 \ + --hash=sha256:396fdf88b1b503c9c59c84a08b6833ec0c3b5ad1a83230252a9e17b7dfb4cffc \ + --hash=sha256:3ac426704840877a285d03a445e162eb258924f014e2f074e209d9b4ff7bf380 \ + --hash=sha256:3b052c753c4babf2d1edc034c97851f867c87d6f3ea63a12e2700f159f5c41c3 \ + --hash=sha256:3fab4e75b8c525a4776e7630b9ee48aea50107fea6ca9f593c98da3f4d11bf7c \ + --hash=sha256:406fac1d09edc613020ce9cf3f2ccf1a1b2f57ab00552b4c18e3d5276c67eb11 \ + --hash=sha256:40a0bd0bed96dae5712dab2aba7d334a6c67cbcac2ddfca7dbcc4a8176445990 \ + --hash=sha256:41dac3b9fce187a25c6253ec79a3f9e2a7e761eb08690e90415069ea4a68ff7a \ + --hash=sha256:459c0d338cc55d099798618f714b21b7ece17eb1a87879f2da20a3ff4c7628e2 \ + --hash=sha256:459d6be6134ce3b38e0ef76f8a672924460c455d45f1ad8fdade36796df1ddc8 \ + --hash=sha256:46b0d5520dbcafea9a8645a8164658777686c5c524d381d983317d29687cce97 \ + --hash=sha256:47924039e785a04d4a4fa49455e51b4eb3422d6eaacfde9fc9abf8fdef164e8a \ + --hash=sha256:4bfcbde6e06c56b30668a0c872d75a7ef3025dc3c1823a13cf29a0e9b33f67e8 \ + --hash=sha256:4f9ee4febb249c591d07b2d4dd36ebcad0ccd128962aaa1801508320896575ef \ + --hash=sha256:55749f745ebf154c0d63d46c8c58594d8894b161928aa41adbb0709c1fe78b77 \ + --hash=sha256:5864b0242f74b9dd0b78fd39db1768bc3f00d1ffc14e596fd3e3f2ce43436a33 \ + --hash=sha256:5f60f920691a620b03082692c378661947d09415743e437a7478c309eb0e4f82 \ + --hash=sha256:60eb8ceaa40a41540b9acae6ae7c1f0a67d233c40dc4359c256ad2ad85bdf5e5 \ + --hash=sha256:69a7b96b59322a81c2203be537957313b07dd333105b73db0b69212c7d867b4b \ + --hash=sha256:6ad84731a26bcfb299f9eab56c7932d46f9cad51c52768cace09e92a19e4cf55 \ + --hash=sha256:6db58c22ac6c81aeac33912fb1af0e930bc9774166cdd56eade913d5f2fff35e \ + --hash=sha256:70651ff6e663428cea902dac297066d5c6e5423fda345a4ca62430575364d62b \ + --hash=sha256:72f7919af5de5ecfaf1eba47bf9a5d8aa089a3340277276e5636d16ee97614d7 \ + --hash=sha256:732bd062c9e5d9582a30e8751461c1917dd1ccbdd6cafb032f02c86b20d2e7ec \ + --hash=sha256:7924e54f7ce5d253d6160090ddc6df25ed2feea25bfb3339b424a9dd591688bc \ + --hash=sha256:7afb844041e707ac9ad9acad2188a90bffce2c770e6dc2318be0c9916aef1469 \ + --hash=sha256:7b883af50eaa6bb3299780651e5be921e88050ccf00e3e583b1e92020333304b \ + --hash=sha256:7beec26729d496a12fd23cf8da9944ee338c8b8a17035a560b585c36fe81af20 \ + --hash=sha256:7bf26c2e2ea59d32807081ad51968133af3025c4ba5753e6a794683d2c91bf6e \ + --hash=sha256:7c31669e0c8cc68400ef0c730c3a1e11317ba76b892deeefaf52dcb41d56ed5d \ + --hash=sha256:7e6231aa5bdacda78e96ad7b07d0c312f34ba35d717115f4b4bff6cb87224f0f \ + --hash=sha256:870dbfa94de9b8866b37b867a2cb37a60c401d9deb4a9ea392abf11a1f98037b \ + --hash=sha256:88646cae28eb1dd5cd1e09605680c2b043b64d7481cdad7f5003ebef401a3039 \ + --hash=sha256:8aafeedb6597a163a9c9727d8a8bd363a93277701b7bfd2749fbefee2396469e \ + --hash=sha256:8bde5b48c65b8e807409e6f20baee5d2cd880e0fad00b1a811ebc43e39a00ab2 \ + --hash=sha256:8f9142a6ed83d90c94a3efd7af8873bf7cefed2d3d44387bf848888482e2d25f \ + --hash=sha256:936a787f83db1f2115ee829dd615c4f684ee48ac4de5779ab4300994d8af325b \ + --hash=sha256:98dc6f4f2095fc7ad277782a7c2c88296badcad92316b5a6e530930b1d475ebc \ + --hash=sha256:9957433c3a1b67bdd4c63717eaf174ebb749510d5ea612cd4e83f2d9142f3fc8 \ + --hash=sha256:99af961d72ac731aae2a1b55ccbdae0733d816f8bfb97b41909e143de735f522 \ + --hash=sha256:9b5f13857da99325dcabe1cc4e9e6a3d7b2e2c726248ba5dd4be3e8e4a0b6d0e \ + --hash=sha256:9d776d30cde7e541b8180103c3f294ef7c1862fd45d81738d156d00551005784 \ + --hash=sha256:9da90d393a8227d717c19f5397688a38635afec89f2e2d7af0df037f3249c39a \ + --hash=sha256:a3b7352b48fbc8b446b75f3069124e87f599d25afb8baa96a550256c031bb890 \ + --hash=sha256:a477932664d9611d7a0816cc3c0eb1f8856f8a42435488280dfbf4395e141485 \ + --hash=sha256:a7e41e3ada4cca5f22b478c08e973c930e5e6c7ba3588fb8e35f2398cdcc1545 \ + --hash=sha256:a90fec23b4b05a09ad988e7a4f4e081711a90eb2a55b9c984d8b74597599180f \ + --hash=sha256:a9e523474998fb33f7c1a4d55f5504c908d57add624599e095c20fa575b8d943 \ + --hash=sha256:aa057095f621dad24a1e906747179a69780ef45cc8f69e97463692adbcdae878 \ + --hash=sha256:aa6c8c582036275997a733427b88031a32ffa5dfc3124dc25a730658c47a572f \ + --hash=sha256:ae34418b6b389d601b31153b84dce480351a352e0bb763684a1b993d6be30f17 \ + --hash=sha256:b0d7a9165167269758145756db43a133608a531b1e5bb6a626b9ee24bc38a8f7 \ + --hash=sha256:b30b0dd58a4509c3bd7eefddf6338565c4905406aee0c6e4a5293841411a1286 \ + --hash=sha256:b8f9186ca45aee030dc8234118b9c0784ad91a0bb27fc4e7d9d6608a5e3d386c \ + --hash=sha256:b94cbda27267423411c928208e89adddf2ea5dd5f74b9528513f0358bba019cb \ + --hash=sha256:cc6f6c9be0ab6da37bc77c2dda5f14b1d532d5dbef00311ee6e13357a418e646 \ + --hash=sha256:ce232a6170dd6532096cadbf6185271e4e8c70fc9217ebe105923ac105da9978 \ + --hash=sha256:cf903310a34e14651c9de056fcc12ce090560864d5a2bb0174b971685684e1d8 \ + --hash=sha256:d5362d099c244a2d2f9659fb3c9db7c735f0004765bbe06b99be69fbd87c3f15 \ + --hash=sha256:dffaf740fe2e147fedcb6b561353a16243e654f7fe8e701b1b9db148242e1272 \ + --hash=sha256:e0f686549e32ccdb02ae6f25eee40cc33900910085de6aa3790effd391ae10c2 \ + --hash=sha256:e4b52776a2e3230f4854907a1e0946eec04d41b1fc64069ee774876bbe0eab55 \ + --hash=sha256:e4ba0884a91f1aecce75202473ab138724aa4fb26d7707f2e1fa6c3e68c84fbf \ + --hash=sha256:e6294e76b0380bb7a61eb8a39273c40b20beb35e8c87ee101062834ced19c545 \ + --hash=sha256:ebb892ed8599b23fa8f1799e13a12c87a97a6c9d0f497525ce9858564c4575a4 \ + --hash=sha256:eca58e319f4fd6df004762419612122b2c7e7d95ffafc37e890252f869f3fb2a \ + --hash=sha256:ed957db4c33bc99895f3a1672eca7e80e8cda8bd1e29a80536b4ec2153fa9804 \ + --hash=sha256:ef551c053692b1e39e3f7950ce2296536728871110e7d75c4e7753fb30ca87f4 \ + --hash=sha256:ef6113cd31411eaf9b39fc5a8848e71c72656fd418882488598758b2c8c6dfa0 \ + --hash=sha256:f685dbc1fdadb1dcd5b5e51e0a378d4685a891b2ddaf8e2bba89bd3a7144e44a \ + --hash=sha256:f8ed79883b4328b7f0bd142733d99c8e6b22703e908ec63d930b06be3a0e7113 \ + --hash=sha256:fe56851c3f1d6f5384b3051c536cc81b3a93a73faf931f404fef95217cf1e10d \ + --hash=sha256:ff7c97eb7a29aba230389a2661edf2e9e06ce616c7e35aa764879b6894a44b25 # via pydantic pygments==2.17.2 \ --hash=sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c \ @@ -581,9 +579,9 @@ python-dateutil==2.8.2 \ # arrow # botocore # dateparser -python-slugify==8.0.3 \ - --hash=sha256:c71189c161e8c671f1b141034d9a56308a8a5978cd13d40446c879569212fdd1 \ - --hash=sha256:e04cba5f1c562502a1175c84a8bc23890c54cdaf23fccaaf0bf78511508cabed +python-slugify==8.0.4 \ + --hash=sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8 \ + --hash=sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856 # via cookiecutter pytz==2024.1 \ --hash=sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812 \ @@ -751,112 +749,112 @@ rich==13.7.0 \ # via # aws-sam-cli (setup.py) # cookiecutter -rpds-py==0.17.1 \ - --hash=sha256:01f58a7306b64e0a4fe042047dd2b7d411ee82e54240284bab63e325762c1147 \ - --hash=sha256:0210b2668f24c078307260bf88bdac9d6f1093635df5123789bfee4d8d7fc8e7 \ - --hash=sha256:02866e060219514940342a1f84303a1ef7a1dad0ac311792fbbe19b521b489d2 \ - --hash=sha256:0387ce69ba06e43df54e43968090f3626e231e4bc9150e4c3246947567695f68 \ - --hash=sha256:060f412230d5f19fc8c8b75f315931b408d8ebf56aec33ef4168d1b9e54200b1 \ - --hash=sha256:071bc28c589b86bc6351a339114fb7a029f5cddbaca34103aa573eba7b482382 \ - --hash=sha256:0bfb09bf41fe7c51413f563373e5f537eaa653d7adc4830399d4e9bdc199959d \ - --hash=sha256:10162fe3f5f47c37ebf6d8ff5a2368508fe22007e3077bf25b9c7d803454d921 \ - --hash=sha256:149c5cd24f729e3567b56e1795f74577aa3126c14c11e457bec1b1c90d212e38 \ - --hash=sha256:1701fc54460ae2e5efc1dd6350eafd7a760f516df8dbe51d4a1c79d69472fbd4 \ - --hash=sha256:1957a2ab607f9added64478a6982742eb29f109d89d065fa44e01691a20fc20a \ - --hash=sha256:1a746a6d49665058a5896000e8d9d2f1a6acba8a03b389c1e4c06e11e0b7f40d \ - --hash=sha256:1bfcad3109c1e5ba3cbe2f421614e70439f72897515a96c462ea657261b96518 \ - --hash=sha256:1d36b2b59e8cc6e576f8f7b671e32f2ff43153f0ad6d0201250a7c07f25d570e \ - --hash=sha256:1db228102ab9d1ff4c64148c96320d0be7044fa28bd865a9ce628ce98da5973d \ - --hash=sha256:1dc29db3900cb1bb40353772417800f29c3d078dbc8024fd64655a04ee3c4bdf \ - --hash=sha256:1e626b365293a2142a62b9a614e1f8e331b28f3ca57b9f05ebbf4cf2a0f0bdc5 \ - --hash=sha256:1f3c3461ebb4c4f1bbc70b15d20b565759f97a5aaf13af811fcefc892e9197ba \ - --hash=sha256:20de7b7179e2031a04042e85dc463a93a82bc177eeba5ddd13ff746325558aa6 \ - --hash=sha256:24e4900a6643f87058a27320f81336d527ccfe503984528edde4bb660c8c8d59 \ - --hash=sha256:2528ff96d09f12e638695f3a2e0c609c7b84c6df7c5ae9bfeb9252b6fa686253 \ - --hash=sha256:25f071737dae674ca8937a73d0f43f5a52e92c2d178330b4c0bb6ab05586ffa6 \ - --hash=sha256:270987bc22e7e5a962b1094953ae901395e8c1e1e83ad016c5cfcfff75a15a3f \ - --hash=sha256:292f7344a3301802e7c25c53792fae7d1593cb0e50964e7bcdcc5cf533d634e3 \ - --hash=sha256:2953937f83820376b5979318840f3ee47477d94c17b940fe31d9458d79ae7eea \ - --hash=sha256:2a792b2e1d3038daa83fa474d559acfd6dc1e3650ee93b2662ddc17dbff20ad1 \ - --hash=sha256:2a7b2f2f56a16a6d62e55354dd329d929560442bd92e87397b7a9586a32e3e76 \ - --hash=sha256:2f4eb548daf4836e3b2c662033bfbfc551db58d30fd8fe660314f86bf8510b93 \ - --hash=sha256:3664d126d3388a887db44c2e293f87d500c4184ec43d5d14d2d2babdb4c64cad \ - --hash=sha256:3677fcca7fb728c86a78660c7fb1b07b69b281964673f486ae72860e13f512ad \ - --hash=sha256:380e0df2e9d5d5d339803cfc6d183a5442ad7ab3c63c2a0982e8c824566c5ccc \ - --hash=sha256:3ac732390d529d8469b831949c78085b034bff67f584559340008d0f6041a049 \ - --hash=sha256:4128980a14ed805e1b91a7ed551250282a8ddf8201a4e9f8f5b7e6225f54170d \ - --hash=sha256:4341bd7579611cf50e7b20bb8c2e23512a3dc79de987a1f411cb458ab670eb90 \ - --hash=sha256:436474f17733c7dca0fbf096d36ae65277e8645039df12a0fa52445ca494729d \ - --hash=sha256:4dc889a9d8a34758d0fcc9ac86adb97bab3fb7f0c4d29794357eb147536483fd \ - --hash=sha256:4e21b76075c01d65d0f0f34302b5a7457d95721d5e0667aea65e5bb3ab415c25 \ - --hash=sha256:516fb8c77805159e97a689e2f1c80655c7658f5af601c34ffdb916605598cda2 \ - --hash=sha256:5576ee2f3a309d2bb403ec292d5958ce03953b0e57a11d224c1f134feaf8c40f \ - --hash=sha256:5a024fa96d541fd7edaa0e9d904601c6445e95a729a2900c5aec6555fe921ed6 \ - --hash=sha256:5d0e8a6434a3fbf77d11448c9c25b2f25244226cfbec1a5159947cac5b8c5fa4 \ - --hash=sha256:5e7d63ec01fe7c76c2dbb7e972fece45acbb8836e72682bde138e7e039906e2c \ - --hash=sha256:60e820ee1004327609b28db8307acc27f5f2e9a0b185b2064c5f23e815f248f8 \ - --hash=sha256:637b802f3f069a64436d432117a7e58fab414b4e27a7e81049817ae94de45d8d \ - --hash=sha256:65dcf105c1943cba45d19207ef51b8bc46d232a381e94dd38719d52d3980015b \ - --hash=sha256:698ea95a60c8b16b58be9d854c9f993c639f5c214cf9ba782eca53a8789d6b19 \ - --hash=sha256:70fcc6c2906cfa5c6a552ba7ae2ce64b6c32f437d8f3f8eea49925b278a61453 \ - --hash=sha256:720215373a280f78a1814becb1312d4e4d1077b1202a56d2b0815e95ccb99ce9 \ - --hash=sha256:7450dbd659fed6dd41d1a7d47ed767e893ba402af8ae664c157c255ec6067fde \ - --hash=sha256:7b7d9ca34542099b4e185b3c2a2b2eda2e318a7dbde0b0d83357a6d4421b5296 \ - --hash=sha256:7fbd70cb8b54fe745301921b0816c08b6d917593429dfc437fd024b5ba713c58 \ - --hash=sha256:81038ff87a4e04c22e1d81f947c6ac46f122e0c80460b9006e6517c4d842a6ec \ - --hash=sha256:810685321f4a304b2b55577c915bece4c4a06dfe38f6e62d9cc1d6ca8ee86b99 \ - --hash=sha256:82ada4a8ed9e82e443fcef87e22a3eed3654dd3adf6e3b3a0deb70f03e86142a \ - --hash=sha256:841320e1841bb53fada91c9725e766bb25009cfd4144e92298db296fb6c894fb \ - --hash=sha256:8587fd64c2a91c33cdc39d0cebdaf30e79491cc029a37fcd458ba863f8815383 \ - --hash=sha256:8ffe53e1d8ef2520ebcf0c9fec15bb721da59e8ef283b6ff3079613b1e30513d \ - --hash=sha256:9051e3d2af8f55b42061603e29e744724cb5f65b128a491446cc029b3e2ea896 \ - --hash=sha256:91e5a8200e65aaac342a791272c564dffcf1281abd635d304d6c4e6b495f29dc \ - --hash=sha256:93432e747fb07fa567ad9cc7aaadd6e29710e515aabf939dfbed8046041346c6 \ - --hash=sha256:938eab7323a736533f015e6069a7d53ef2dcc841e4e533b782c2bfb9fb12d84b \ - --hash=sha256:9584f8f52010295a4a417221861df9bea4c72d9632562b6e59b3c7b87a1522b7 \ - --hash=sha256:9737bdaa0ad33d34c0efc718741abaafce62fadae72c8b251df9b0c823c63b22 \ - --hash=sha256:99da0a4686ada4ed0f778120a0ea8d066de1a0a92ab0d13ae68492a437db78bf \ - --hash=sha256:99f567dae93e10be2daaa896e07513dd4bf9c2ecf0576e0533ac36ba3b1d5394 \ - --hash=sha256:9bdf1303df671179eaf2cb41e8515a07fc78d9d00f111eadbe3e14262f59c3d0 \ - --hash=sha256:9f0e4dc0f17dcea4ab9d13ac5c666b6b5337042b4d8f27e01b70fae41dd65c57 \ - --hash=sha256:a000133a90eea274a6f28adc3084643263b1e7c1a5a66eb0a0a7a36aa757ed74 \ - --hash=sha256:a3264e3e858de4fc601741498215835ff324ff2482fd4e4af61b46512dd7fc83 \ - --hash=sha256:a71169d505af63bb4d20d23a8fbd4c6ce272e7bce6cc31f617152aa784436f29 \ - --hash=sha256:a967dd6afda7715d911c25a6ba1517975acd8d1092b2f326718725461a3d33f9 \ - --hash=sha256:aa5bfb13f1e89151ade0eb812f7b0d7a4d643406caaad65ce1cbabe0a66d695f \ - --hash=sha256:ae35e8e6801c5ab071b992cb2da958eee76340e6926ec693b5ff7d6381441745 \ - --hash=sha256:b686f25377f9c006acbac63f61614416a6317133ab7fafe5de5f7dc8a06d42eb \ - --hash=sha256:b760a56e080a826c2e5af09002c1a037382ed21d03134eb6294812dda268c811 \ - --hash=sha256:b86b21b348f7e5485fae740d845c65a880f5d1eda1e063bc59bef92d1f7d0c55 \ - --hash=sha256:b9412abdf0ba70faa6e2ee6c0cc62a8defb772e78860cef419865917d86c7342 \ - --hash=sha256:bd345a13ce06e94c753dab52f8e71e5252aec1e4f8022d24d56decd31e1b9b23 \ - --hash=sha256:be22ae34d68544df293152b7e50895ba70d2a833ad9566932d750d3625918b82 \ - --hash=sha256:bf046179d011e6114daf12a534d874958b039342b347348a78b7cdf0dd9d6041 \ - --hash=sha256:c3d2010656999b63e628a3c694f23020322b4178c450dc478558a2b6ef3cb9bb \ - --hash=sha256:c64602e8be701c6cfe42064b71c84ce62ce66ddc6422c15463fd8127db3d8066 \ - --hash=sha256:d65e6b4f1443048eb7e833c2accb4fa7ee67cc7d54f31b4f0555b474758bee55 \ - --hash=sha256:d8bbd8e56f3ba25a7d0cf980fc42b34028848a53a0e36c9918550e0280b9d0b6 \ - --hash=sha256:da1ead63368c04a9bded7904757dfcae01eba0e0f9bc41d3d7f57ebf1c04015a \ - --hash=sha256:dbbb95e6fc91ea3102505d111b327004d1c4ce98d56a4a02e82cd451f9f57140 \ - --hash=sha256:dbc56680ecf585a384fbd93cd42bc82668b77cb525343170a2d86dafaed2a84b \ - --hash=sha256:df3b6f45ba4515632c5064e35ca7f31d51d13d1479673185ba8f9fefbbed58b9 \ - --hash=sha256:dfe07308b311a8293a0d5ef4e61411c5c20f682db6b5e73de6c7c8824272c256 \ - --hash=sha256:e796051f2070f47230c745d0a77a91088fbee2cc0502e9b796b9c6471983718c \ - --hash=sha256:efa767c220d94aa4ac3a6dd3aeb986e9f229eaf5bce92d8b1b3018d06bed3772 \ - --hash=sha256:f0b8bf5b8db49d8fd40f54772a1dcf262e8be0ad2ab0206b5a2ec109c176c0a4 \ - --hash=sha256:f175e95a197f6a4059b50757a3dca33b32b61691bdbd22c29e8a8d21d3914cae \ - --hash=sha256:f2f3b28b40fddcb6c1f1f6c88c6f3769cd933fa493ceb79da45968a21dccc920 \ - --hash=sha256:f6c43b6f97209e370124baf2bf40bb1e8edc25311a158867eb1c3a5d449ebc7a \ - --hash=sha256:f7f4cb1f173385e8a39c29510dd11a78bf44e360fb75610594973f5ea141028b \ - --hash=sha256:fad059a4bd14c45776600d223ec194e77db6c20255578bb5bcdd7c18fd169361 \ - --hash=sha256:ff1dcb8e8bc2261a088821b2595ef031c91d499a0c1b031c152d43fe0a6ecec8 \ - --hash=sha256:ffee088ea9b593cc6160518ba9bd319b5475e5f3e578e4552d63818773c6f56a +rpds-py==0.18.0 \ + --hash=sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f \ + --hash=sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c \ + --hash=sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76 \ + --hash=sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e \ + --hash=sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157 \ + --hash=sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f \ + --hash=sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5 \ + --hash=sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05 \ + --hash=sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24 \ + --hash=sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1 \ + --hash=sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8 \ + --hash=sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b \ + --hash=sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb \ + --hash=sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07 \ + --hash=sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1 \ + --hash=sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6 \ + --hash=sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e \ + --hash=sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e \ + --hash=sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1 \ + --hash=sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab \ + --hash=sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4 \ + --hash=sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17 \ + --hash=sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594 \ + --hash=sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d \ + --hash=sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d \ + --hash=sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3 \ + --hash=sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c \ + --hash=sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66 \ + --hash=sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f \ + --hash=sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80 \ + --hash=sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33 \ + --hash=sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f \ + --hash=sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c \ + --hash=sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022 \ + --hash=sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e \ + --hash=sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f \ + --hash=sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da \ + --hash=sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1 \ + --hash=sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688 \ + --hash=sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795 \ + --hash=sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c \ + --hash=sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98 \ + --hash=sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1 \ + --hash=sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20 \ + --hash=sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307 \ + --hash=sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4 \ + --hash=sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18 \ + --hash=sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294 \ + --hash=sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66 \ + --hash=sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467 \ + --hash=sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948 \ + --hash=sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e \ + --hash=sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1 \ + --hash=sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0 \ + --hash=sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7 \ + --hash=sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd \ + --hash=sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641 \ + --hash=sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d \ + --hash=sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9 \ + --hash=sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1 \ + --hash=sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da \ + --hash=sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3 \ + --hash=sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa \ + --hash=sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7 \ + --hash=sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40 \ + --hash=sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496 \ + --hash=sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124 \ + --hash=sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836 \ + --hash=sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434 \ + --hash=sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984 \ + --hash=sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f \ + --hash=sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6 \ + --hash=sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e \ + --hash=sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461 \ + --hash=sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c \ + --hash=sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432 \ + --hash=sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73 \ + --hash=sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58 \ + --hash=sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88 \ + --hash=sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337 \ + --hash=sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7 \ + --hash=sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863 \ + --hash=sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475 \ + --hash=sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3 \ + --hash=sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51 \ + --hash=sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf \ + --hash=sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024 \ + --hash=sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40 \ + --hash=sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9 \ + --hash=sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec \ + --hash=sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb \ + --hash=sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7 \ + --hash=sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861 \ + --hash=sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880 \ + --hash=sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f \ + --hash=sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd \ + --hash=sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca \ + --hash=sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58 \ + --hash=sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e # via # jsonschema # referencing -ruamel-yaml==0.18.5 \ - --hash=sha256:61917e3a35a569c1133a8f772e1226961bf5a1198bea7e23f06a0841dea1ab0e \ - --hash=sha256:a013ac02f99a69cdd6277d9664689eb1acba07069f912823177c5eced21a6ada +ruamel-yaml==0.18.6 \ + --hash=sha256:57b53ba33def16c4f3d807c0ccbc00f8a6081827e81ba2491691b76882d0c636 \ + --hash=sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b # via aws-sam-cli (setup.py) ruamel-yaml-clib==0.2.8 \ --hash=sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d \ @@ -1023,7 +1021,7 @@ wheel==0.42.0 \ # via aws-lambda-builders # The following packages are considered to be unsafe in a requirements file: -setuptools==69.0.3 \ - --hash=sha256:385eb4edd9c9d5c17540511303e39a147ce2fc04bc55289c322b9e5904fe2c05 \ - --hash=sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78 +setuptools==69.1.0 \ + --hash=sha256:850894c4195f09c4ed30dba56213bf7c3f21d86ed6bdaafb5df5972593bfc401 \ + --hash=sha256:c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 # via aws-lambda-builders diff --git a/requirements/reproducible-mac.txt b/requirements/reproducible-mac.txt index 98078d0f88..a5a94f04f2 100644 --- a/requirements/reproducible-mac.txt +++ b/requirements/reproducible-mac.txt @@ -20,13 +20,13 @@ attrs==23.2.0 \ # jsonschema # referencing # sarif-om -aws-lambda-builders==1.45.0 \ - --hash=sha256:5c19a6628eecf21578cd9c521e747f4a2163c62c527cd840b11b62a10b661348 \ - --hash=sha256:a4db7766198c052900905bd7ee3b1a8b486511394cdabffed054204d43b29943 +aws-lambda-builders==1.46.0 \ + --hash=sha256:69305e46af020c6a07d548b812695f0a93eef8e17a9f7200f03f5e63ce498730 \ + --hash=sha256:fe3ffc5b3d3176b3e3f92a57d83615ed63399ba897d1ce4110bcaba83a1878d3 # via aws-sam-cli (setup.py) -aws-sam-translator==1.84.0 \ - --hash=sha256:a24f43e80095c79258a1f1c7a0b8169f55daf0b2bc237d5b9010b02ba86fa3bb \ - --hash=sha256:dbfd5669b5ef4bd7bc7af4775eec2ce4db61a2c2a17d721e67b51cf6a6dd63f9 +aws-sam-translator==1.85.0 \ + --hash=sha256:e41938affa128fb5bde5e1989b260bf539a96369bba3faf316ce66651351df39 \ + --hash=sha256:e8c69a4db7279421ff6c3579cd4d43395fe9b6781f50416528e984be68e25481 # via # aws-sam-cli (setup.py) # cfn-lint @@ -56,27 +56,25 @@ blinker==1.7.0 \ --hash=sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 \ --hash=sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182 # via flask -boto3==1.34.32 \ - --hash=sha256:7bf924c942426839efd7fa5c2c4fe85dba208258393e8017a5ad327c30e5948d \ - --hash=sha256:9e62f42de2873baab96eb822386d6a3b1d77f6715cb9033d7b4e6e9ebb0cdbe7 +boto3==1.34.43 \ + --hash=sha256:179cdcff2dee116ff0bbe10c21a374fff8ae0d9ea3842bd8dd2c9f69e8185d91 \ + --hash=sha256:ed646f600b76939d54fa1ff868415793551a5a08b9de0a09696b46d116da7da5 # via # aws-sam-cli (setup.py) # aws-sam-translator -boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.32 \ - --hash=sha256:077f13b0856862bedafb92b8499b960624d06f684595be701fade51a8e9615ed \ - --hash=sha256:27fc3b5b69379f0557d881d3f27c201c257eabff535d343ed5fd4a162a5fb389 - # via - # aws-sam-cli (setup.py) - # boto3-stubs -botocore==1.34.32 \ - --hash=sha256:466aee158bd0429dbd567c4e2bdf7be9a0a5a74409f8b295c30f34d84c497f9c \ - --hash=sha256:aa26a74df83eed3db9542c1cf9108138794c344918b36a506c0723717f1acaab +boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.43 \ + --hash=sha256:0a0bdf96eb42f3b12b9bf159d97c407cf272e0430e5f7b42581ce7124ce9bb78 \ + --hash=sha256:5698322a22e54dbebc6f0010dc0f08271f0c911d7f4c5880af341d5f0323748a + # via aws-sam-cli (setup.py) +botocore==1.34.43 \ + --hash=sha256:00dea9fd602dc97420318d373079bdfcc8da34501aaa908ab98b477526bdefec \ + --hash=sha256:ab7d8046a8c3326ecf3d9f9884e79aa77fed864416ed8af52b9e22ab055acf4e # via # boto3 # s3transfer -botocore-stubs==1.34.32 \ - --hash=sha256:978c97b8c02b5ffa3726a5052e5715aecc52c640a75a8088b3a58453c2b054b2 \ - --hash=sha256:e5b04b8ab81e736088470b7be244de072ac2f986caf0f51b7e2087400778dc9f +botocore-stubs==1.34.43 \ + --hash=sha256:6da6730071a83a57200d71bab6b5c2d0033adec5bbb59396113e498de9136aed \ + --hash=sha256:c30aded65547eb339ea4438e7662c4111aee09f360132202bd09e3130f7be956 # via boto3-stubs certifi==2024.2.2 \ --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \ @@ -136,9 +134,9 @@ cffi==1.16.0 \ --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 # via cryptography -cfn-lint==0.85.0 \ - --hash=sha256:64d6e8d85cdc573b61add78f9ff95a142a1834edb4793d1291551f6d953f73fe \ - --hash=sha256:e4849e1779bd1a9f4543617372708a20519b6d7cad5f980e20c6deaa227361a2 +cfn-lint==0.85.1 \ + --hash=sha256:5d5b31609ded0bc513f1c57c0dc0017ec1613c2b33ef8e74802149bedb01a3de \ + --hash=sha256:f003603a6f13bcda125c60f5021fc19b96f18a27ebc44498947709cb7627d0d6 # via aws-sam-cli (setup.py) chardet==5.2.0 \ --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ @@ -251,39 +249,39 @@ cookiecutter==2.5.0 \ --hash=sha256:8aa2f12ed11bc05628651e9dc4353a10571dd9908aaaaeec959a2b9ea465a5d2 \ --hash=sha256:e61e9034748e3f41b8bd2c11f00d030784b48711c4d5c42363c50989a65331ec # via aws-sam-cli (setup.py) -cryptography==42.0.2 \ - --hash=sha256:087887e55e0b9c8724cf05361357875adb5c20dec27e5816b653492980d20380 \ - --hash=sha256:09a77e5b2e8ca732a19a90c5bca2d124621a1edb5438c5daa2d2738bfeb02589 \ - --hash=sha256:130c0f77022b2b9c99d8cebcdd834d81705f61c68e91ddd614ce74c657f8b3ea \ - --hash=sha256:141e2aa5ba100d3788c0ad7919b288f89d1fe015878b9659b307c9ef867d3a65 \ - --hash=sha256:28cb2c41f131a5758d6ba6a0504150d644054fd9f3203a1e8e8d7ac3aea7f73a \ - --hash=sha256:2f9f14185962e6a04ab32d1abe34eae8a9001569ee4edb64d2304bf0d65c53f3 \ - --hash=sha256:320948ab49883557a256eab46149df79435a22d2fefd6a66fe6946f1b9d9d008 \ - --hash=sha256:36d4b7c4be6411f58f60d9ce555a73df8406d484ba12a63549c88bd64f7967f1 \ - --hash=sha256:3b15c678f27d66d247132cbf13df2f75255627bcc9b6a570f7d2fd08e8c081d2 \ - --hash=sha256:3dbd37e14ce795b4af61b89b037d4bc157f2cb23e676fa16932185a04dfbf635 \ - --hash=sha256:4383b47f45b14459cab66048d384614019965ba6c1a1a141f11b5a551cace1b2 \ - --hash=sha256:44c95c0e96b3cb628e8452ec060413a49002a247b2b9938989e23a2c8291fc90 \ - --hash=sha256:4b063d3413f853e056161eb0c7724822a9740ad3caa24b8424d776cebf98e7ee \ - --hash=sha256:52ed9ebf8ac602385126c9a2fe951db36f2cb0c2538d22971487f89d0de4065a \ - --hash=sha256:55d1580e2d7e17f45d19d3b12098e352f3a37fe86d380bf45846ef257054b242 \ - --hash=sha256:5ef9bc3d046ce83c4bbf4c25e1e0547b9c441c01d30922d812e887dc5f125c12 \ - --hash=sha256:5fa82a26f92871eca593b53359c12ad7949772462f887c35edaf36f87953c0e2 \ - --hash=sha256:61321672b3ac7aade25c40449ccedbc6db72c7f5f0fdf34def5e2f8b51ca530d \ - --hash=sha256:701171f825dcab90969596ce2af253143b93b08f1a716d4b2a9d2db5084ef7be \ - --hash=sha256:841ec8af7a8491ac76ec5a9522226e287187a3107e12b7d686ad354bb78facee \ - --hash=sha256:8a06641fb07d4e8f6c7dda4fc3f8871d327803ab6542e33831c7ccfdcb4d0ad6 \ - --hash=sha256:8e88bb9eafbf6a4014d55fb222e7360eef53e613215085e65a13290577394529 \ - --hash=sha256:a00aee5d1b6c20620161984f8ab2ab69134466c51f58c052c11b076715e72929 \ - --hash=sha256:a047682d324ba56e61b7ea7c7299d51e61fd3bca7dad2ccc39b72bd0118d60a1 \ - --hash=sha256:a7ef8dd0bf2e1d0a27042b231a3baac6883cdd5557036f5e8df7139255feaac6 \ - --hash=sha256:ad28cff53f60d99a928dfcf1e861e0b2ceb2bc1f08a074fdd601b314e1cc9e0a \ - --hash=sha256:b9097a208875fc7bbeb1286d0125d90bdfed961f61f214d3f5be62cd4ed8a446 \ - --hash=sha256:b97fe7d7991c25e6a31e5d5e795986b18fbbb3107b873d5f3ae6dc9a103278e9 \ - --hash=sha256:e0ec52ba3c7f1b7d813cd52649a5b3ef1fc0d433219dc8c93827c57eab6cf888 \ - --hash=sha256:ea2c3ffb662fec8bbbfce5602e2c159ff097a4631d96235fcf0fb00e59e3ece4 \ - --hash=sha256:fa3dec4ba8fb6e662770b74f62f1a0c7d4e37e25b58b2bf2c1be4c95372b4a33 \ - --hash=sha256:fbeb725c9dc799a574518109336acccaf1303c30d45c075c665c0793c2f79a7f +cryptography==42.0.4 \ + --hash=sha256:01911714117642a3f1792c7f376db572aadadbafcd8d75bb527166009c9f1d1b \ + --hash=sha256:0e89f7b84f421c56e7ff69f11c441ebda73b8a8e6488d322ef71746224c20fce \ + --hash=sha256:12d341bd42cdb7d4937b0cabbdf2a94f949413ac4504904d0cdbdce4a22cbf88 \ + --hash=sha256:15a1fb843c48b4a604663fa30af60818cd28f895572386e5f9b8a665874c26e7 \ + --hash=sha256:1cdcdbd117681c88d717437ada72bdd5be9de117f96e3f4d50dab3f59fd9ab20 \ + --hash=sha256:1df6fcbf60560d2113b5ed90f072dc0b108d64750d4cbd46a21ec882c7aefce9 \ + --hash=sha256:3c6048f217533d89f2f8f4f0fe3044bf0b2090453b7b73d0b77db47b80af8dff \ + --hash=sha256:3e970a2119507d0b104f0a8e281521ad28fc26f2820687b3436b8c9a5fcf20d1 \ + --hash=sha256:44a64043f743485925d3bcac548d05df0f9bb445c5fcca6681889c7c3ab12764 \ + --hash=sha256:4e36685cb634af55e0677d435d425043967ac2f3790ec652b2b88ad03b85c27b \ + --hash=sha256:5f8907fcf57392cd917892ae83708761c6ff3c37a8e835d7246ff0ad251d9298 \ + --hash=sha256:69b22ab6506a3fe483d67d1ed878e1602bdd5912a134e6202c1ec672233241c1 \ + --hash=sha256:6bfadd884e7280df24d26f2186e4e07556a05d37393b0f220a840b083dc6a824 \ + --hash=sha256:6d0fbe73728c44ca3a241eff9aefe6496ab2656d6e7a4ea2459865f2e8613257 \ + --hash=sha256:6ffb03d419edcab93b4b19c22ee80c007fb2d708429cecebf1dd3258956a563a \ + --hash=sha256:810bcf151caefc03e51a3d61e53335cd5c7316c0a105cc695f0959f2c638b129 \ + --hash=sha256:831a4b37accef30cccd34fcb916a5d7b5be3cbbe27268a02832c3e450aea39cb \ + --hash=sha256:887623fe0d70f48ab3f5e4dbf234986b1329a64c066d719432d0698522749929 \ + --hash=sha256:a0298bdc6e98ca21382afe914c642620370ce0470a01e1bef6dd9b5354c36854 \ + --hash=sha256:a1327f280c824ff7885bdeef8578f74690e9079267c1c8bd7dc5cc5aa065ae52 \ + --hash=sha256:c1f25b252d2c87088abc8bbc4f1ecbf7c919e05508a7e8628e6875c40bc70923 \ + --hash=sha256:c3a5cbc620e1e17009f30dd34cb0d85c987afd21c41a74352d1719be33380885 \ + --hash=sha256:ce8613beaffc7c14f091497346ef117c1798c202b01153a8cc7b8e2ebaaf41c0 \ + --hash=sha256:d2a27aca5597c8a71abbe10209184e1a8e91c1fd470b5070a2ea60cafec35bcd \ + --hash=sha256:dad9c385ba8ee025bb0d856714f71d7840020fe176ae0229de618f14dae7a6e2 \ + --hash=sha256:db4b65b02f59035037fde0998974d84244a64c3265bdef32a827ab9b63d61b18 \ + --hash=sha256:e09469a2cec88fb7b078e16d4adec594414397e8879a4341c6ace96013463d5b \ + --hash=sha256:e53dc41cda40b248ebc40b83b31516487f7db95ab8ceac1f042626bc43a2f992 \ + --hash=sha256:f1e85a178384bf19e36779d91ff35c7617c885da487d689b05c1366f9933ad74 \ + --hash=sha256:f47be41843200f7faec0683ad751e5ef11b9a56a220d57f300376cd8aba81660 \ + --hash=sha256:fb0cef872d8193e487fc6bdb08559c3aa41b659a7d9be48b2e10747f47863925 \ + --hash=sha256:ffc73996c4fca3d2b6c1c8c12bfd3ad00def8621da24f547626bf06441400449 # via pyopenssl dateparser==1.2.0 \ --hash=sha256:0b21ad96534e562920a0083e97fd45fa959882d4162acc358705144520a35830 \ @@ -293,9 +291,9 @@ docker==7.0.0 \ --hash=sha256:12ba681f2777a0ad28ffbcc846a69c31b4dfd9752b47eb425a274ee269c5e14b \ --hash=sha256:323736fb92cd9418fc5e7133bc953e11a9da04f4483f828b527db553f1e7e5a3 # via aws-sam-cli (setup.py) -flask==3.0.1 \ - --hash=sha256:6489f51bb3666def6f314e15f19d50a1869a19ae0e8c9a3641ffe66c77d42403 \ - --hash=sha256:ca631a507f6dfe6c278ae20112cea3ff54ff2216390bf8880f6b035a5354af13 +flask==3.0.2 \ + --hash=sha256:3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e \ + --hash=sha256:822c03f4b799204250a7ee84b1eddc40665395333973dfb9deebfe425fefcb7d # via aws-sam-cli (setup.py) idna==3.6 \ --hash=sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca \ @@ -363,67 +361,67 @@ markdown-it-py==3.0.0 \ --hash=sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 \ --hash=sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb # via rich -markupsafe==2.1.4 \ - --hash=sha256:0042d6a9880b38e1dd9ff83146cc3c9c18a059b9360ceae207805567aacccc69 \ - --hash=sha256:0c26f67b3fe27302d3a412b85ef696792c4a2386293c53ba683a89562f9399b0 \ - --hash=sha256:0fbad3d346df8f9d72622ac71b69565e621ada2ce6572f37c2eae8dacd60385d \ - --hash=sha256:15866d7f2dc60cfdde12ebb4e75e41be862348b4728300c36cdf405e258415ec \ - --hash=sha256:1c98c33ffe20e9a489145d97070a435ea0679fddaabcafe19982fe9c971987d5 \ - --hash=sha256:21e7af8091007bf4bebf4521184f4880a6acab8df0df52ef9e513d8e5db23411 \ - --hash=sha256:23984d1bdae01bee794267424af55eef4dfc038dc5d1272860669b2aa025c9e3 \ - --hash=sha256:31f57d64c336b8ccb1966d156932f3daa4fee74176b0fdc48ef580be774aae74 \ - --hash=sha256:3583a3a3ab7958e354dc1d25be74aee6228938312ee875a22330c4dc2e41beb0 \ - --hash=sha256:36d7626a8cca4d34216875aee5a1d3d654bb3dac201c1c003d182283e3205949 \ - --hash=sha256:396549cea79e8ca4ba65525470d534e8a41070e6b3500ce2414921099cb73e8d \ - --hash=sha256:3a66c36a3864df95e4f62f9167c734b3b1192cb0851b43d7cc08040c074c6279 \ - --hash=sha256:3aae9af4cac263007fd6309c64c6ab4506dd2b79382d9d19a1994f9240b8db4f \ - --hash=sha256:3ab3a886a237f6e9c9f4f7d272067e712cdb4efa774bef494dccad08f39d8ae6 \ - --hash=sha256:47bb5f0142b8b64ed1399b6b60f700a580335c8e1c57f2f15587bd072012decc \ - --hash=sha256:49a3b78a5af63ec10d8604180380c13dcd870aba7928c1fe04e881d5c792dc4e \ - --hash=sha256:4df98d4a9cd6a88d6a585852f56f2155c9cdb6aec78361a19f938810aa020954 \ - --hash=sha256:5045e892cfdaecc5b4c01822f353cf2c8feb88a6ec1c0adef2a2e705eef0f656 \ - --hash=sha256:5244324676254697fe5c181fc762284e2c5fceeb1c4e3e7f6aca2b6f107e60dc \ - --hash=sha256:54635102ba3cf5da26eb6f96c4b8c53af8a9c0d97b64bdcb592596a6255d8518 \ - --hash=sha256:54a7e1380dfece8847c71bf7e33da5d084e9b889c75eca19100ef98027bd9f56 \ - --hash=sha256:55d03fea4c4e9fd0ad75dc2e7e2b6757b80c152c032ea1d1de487461d8140efc \ - --hash=sha256:698e84142f3f884114ea8cf83e7a67ca8f4ace8454e78fe960646c6c91c63bfa \ - --hash=sha256:6aa5e2e7fc9bc042ae82d8b79d795b9a62bd8f15ba1e7594e3db243f158b5565 \ - --hash=sha256:7653fa39578957bc42e5ebc15cf4361d9e0ee4b702d7d5ec96cdac860953c5b4 \ - --hash=sha256:765f036a3d00395a326df2835d8f86b637dbaf9832f90f5d196c3b8a7a5080cb \ - --hash=sha256:78bc995e004681246e85e28e068111a4c3f35f34e6c62da1471e844ee1446250 \ - --hash=sha256:7a07f40ef8f0fbc5ef1000d0c78771f4d5ca03b4953fc162749772916b298fc4 \ - --hash=sha256:8b570a1537367b52396e53325769608f2a687ec9a4363647af1cded8928af959 \ - --hash=sha256:987d13fe1d23e12a66ca2073b8d2e2a75cec2ecb8eab43ff5624ba0ad42764bc \ - --hash=sha256:9896fca4a8eb246defc8b2a7ac77ef7553b638e04fbf170bff78a40fa8a91474 \ - --hash=sha256:9e9e3c4020aa2dc62d5dd6743a69e399ce3de58320522948af6140ac959ab863 \ - --hash=sha256:a0b838c37ba596fcbfca71651a104a611543077156cb0a26fe0c475e1f152ee8 \ - --hash=sha256:a4d176cfdfde84f732c4a53109b293d05883e952bbba68b857ae446fa3119b4f \ - --hash=sha256:a76055d5cb1c23485d7ddae533229039b850db711c554a12ea64a0fd8a0129e2 \ - --hash=sha256:a76cd37d229fc385738bd1ce4cba2a121cf26b53864c1772694ad0ad348e509e \ - --hash=sha256:a7cc49ef48a3c7a0005a949f3c04f8baa5409d3f663a1b36f0eba9bfe2a0396e \ - --hash=sha256:abf5ebbec056817057bfafc0445916bb688a255a5146f900445d081db08cbabb \ - --hash=sha256:b0fe73bac2fed83839dbdbe6da84ae2a31c11cfc1c777a40dbd8ac8a6ed1560f \ - --hash=sha256:b6f14a9cd50c3cb100eb94b3273131c80d102e19bb20253ac7bd7336118a673a \ - --hash=sha256:b83041cda633871572f0d3c41dddd5582ad7d22f65a72eacd8d3d6d00291df26 \ - --hash=sha256:b835aba863195269ea358cecc21b400276747cc977492319fd7682b8cd2c253d \ - --hash=sha256:bf1196dcc239e608605b716e7b166eb5faf4bc192f8a44b81e85251e62584bd2 \ - --hash=sha256:c669391319973e49a7c6230c218a1e3044710bc1ce4c8e6eb71f7e6d43a2c131 \ - --hash=sha256:c7556bafeaa0a50e2fe7dc86e0382dea349ebcad8f010d5a7dc6ba568eaaa789 \ - --hash=sha256:c8f253a84dbd2c63c19590fa86a032ef3d8cc18923b8049d91bcdeeb2581fbf6 \ - --hash=sha256:d18b66fe626ac412d96c2ab536306c736c66cf2a31c243a45025156cc190dc8a \ - --hash=sha256:d5291d98cd3ad9a562883468c690a2a238c4a6388ab3bd155b0c75dd55ece858 \ - --hash=sha256:d5c31fe855c77cad679b302aabc42d724ed87c043b1432d457f4976add1c2c3e \ - --hash=sha256:d6e427c7378c7f1b2bef6a344c925b8b63623d3321c09a237b7cc0e77dd98ceb \ - --hash=sha256:dac1ebf6983148b45b5fa48593950f90ed6d1d26300604f321c74a9ca1609f8e \ - --hash=sha256:de8153a7aae3835484ac168a9a9bdaa0c5eee4e0bc595503c95d53b942879c84 \ - --hash=sha256:e1a0d1924a5013d4f294087e00024ad25668234569289650929ab871231668e7 \ - --hash=sha256:e7902211afd0af05fbadcc9a312e4cf10f27b779cf1323e78d52377ae4b72bea \ - --hash=sha256:e888ff76ceb39601c59e219f281466c6d7e66bd375b4ec1ce83bcdc68306796b \ - --hash=sha256:f06e5a9e99b7df44640767842f414ed5d7bedaaa78cd817ce04bbd6fd86e2dd6 \ - --hash=sha256:f6be2d708a9d0e9b0054856f07ac7070fbe1754be40ca8525d5adccdbda8f475 \ - --hash=sha256:f9917691f410a2e0897d1ef99619fd3f7dd503647c8ff2475bf90c3cf222ad74 \ - --hash=sha256:fc1a75aa8f11b87910ffd98de62b29d6520b6d6e8a3de69a70ca34dea85d2a8a \ - --hash=sha256:fe8512ed897d5daf089e5bd010c3dc03bb1bdae00b35588c49b98268d4a01e00 +markupsafe==2.1.5 \ + --hash=sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf \ + --hash=sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff \ + --hash=sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f \ + --hash=sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3 \ + --hash=sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532 \ + --hash=sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f \ + --hash=sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 \ + --hash=sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df \ + --hash=sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4 \ + --hash=sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906 \ + --hash=sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f \ + --hash=sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4 \ + --hash=sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8 \ + --hash=sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371 \ + --hash=sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2 \ + --hash=sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465 \ + --hash=sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52 \ + --hash=sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6 \ + --hash=sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169 \ + --hash=sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad \ + --hash=sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 \ + --hash=sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0 \ + --hash=sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029 \ + --hash=sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f \ + --hash=sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a \ + --hash=sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced \ + --hash=sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5 \ + --hash=sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c \ + --hash=sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf \ + --hash=sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9 \ + --hash=sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb \ + --hash=sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad \ + --hash=sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3 \ + --hash=sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1 \ + --hash=sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46 \ + --hash=sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc \ + --hash=sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a \ + --hash=sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee \ + --hash=sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900 \ + --hash=sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 \ + --hash=sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea \ + --hash=sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f \ + --hash=sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5 \ + --hash=sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e \ + --hash=sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a \ + --hash=sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f \ + --hash=sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50 \ + --hash=sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a \ + --hash=sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b \ + --hash=sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4 \ + --hash=sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff \ + --hash=sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2 \ + --hash=sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46 \ + --hash=sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b \ + --hash=sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf \ + --hash=sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5 \ + --hash=sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5 \ + --hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \ + --hash=sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd \ + --hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68 # via # jinja2 # werkzeug @@ -467,9 +465,9 @@ mypy-boto3-schemas==1.34.0 \ --hash=sha256:28c016609dcffc606bd8425ee92894c46e943ab77033e1ae46481f00c39b7f75 \ --hash=sha256:3b25a71944192b0980c3bb5132deb7c06ee9b88580ed63f257fad97cf3bf2927 # via boto3-stubs -mypy-boto3-secretsmanager==1.34.17 \ - --hash=sha256:0dbd1cdbe7992324c3414cccf0256e3905827bbf1f6a8d58c255635f6a2b4bfb \ - --hash=sha256:a547932d99c3f711b27b9ea1c38fc063050910c0bf6c8eb346abd96ace61668e +mypy-boto3-secretsmanager==1.34.43 \ + --hash=sha256:64e9df58f71072f0a912ecaca626683f4536da078caa204ac07928c4b1481b8b \ + --hash=sha256:abbf560775c2fe0dc383b7f70c16a1bf753d9b3ffc0caa5e35447e685783a68b # via boto3-stubs mypy-boto3-signer==1.34.0 \ --hash=sha256:c11ed943ccd38ee54fc0ca90ed347ef770d695df49535eab96dd97fb3dbdc592 \ @@ -513,90 +511,90 @@ pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 # via cffi -pydantic==2.6.0 \ - --hash=sha256:1440966574e1b5b99cf75a13bec7b20e3512e8a61b894ae252f56275e2c465ae \ - --hash=sha256:ae887bd94eb404b09d86e4d12f93893bdca79d766e738528c6fa1c849f3c6bcf +pydantic==2.6.1 \ + --hash=sha256:0b6a909df3192245cb736509a92ff69e4fef76116feffec68e93a567347bae6f \ + --hash=sha256:4fd5c182a2488dc63e6d32737ff19937888001e2a6d86e94b3f233104a5d1fa9 # via aws-sam-translator -pydantic-core==2.16.1 \ - --hash=sha256:06f0d5a1d9e1b7932477c172cc720b3b23c18762ed7a8efa8398298a59d177c7 \ - --hash=sha256:07982b82d121ed3fc1c51faf6e8f57ff09b1325d2efccaa257dd8c0dd937acca \ - --hash=sha256:0f478ec204772a5c8218e30eb813ca43e34005dff2eafa03931b3d8caef87d51 \ - --hash=sha256:102569d371fadc40d8f8598a59379c37ec60164315884467052830b28cc4e9da \ - --hash=sha256:10dca874e35bb60ce4f9f6665bfbfad050dd7573596608aeb9e098621ac331dc \ - --hash=sha256:150ba5c86f502c040b822777e2e519b5625b47813bd05f9273a8ed169c97d9ae \ - --hash=sha256:1661c668c1bb67b7cec96914329d9ab66755911d093bb9063c4c8914188af6d4 \ - --hash=sha256:1a2fe7b00a49b51047334d84aafd7e39f80b7675cad0083678c58983662da89b \ - --hash=sha256:1ae8048cba95f382dba56766525abca438328455e35c283bb202964f41a780b0 \ - --hash=sha256:20f724a023042588d0f4396bbbcf4cffd0ddd0ad3ed4f0d8e6d4ac4264bae81e \ - --hash=sha256:2133b0e412a47868a358713287ff9f9a328879da547dc88be67481cdac529118 \ - --hash=sha256:21e3298486c4ea4e4d5cc6fb69e06fb02a4e22089304308817035ac006a7f506 \ - --hash=sha256:21ebaa4bf6386a3b22eec518da7d679c8363fb7fb70cf6972161e5542f470798 \ - --hash=sha256:23632132f1fd608034f1a56cc3e484be00854db845b3a4a508834be5a6435a6f \ - --hash=sha256:2d5bea8012df5bb6dda1e67d0563ac50b7f64a5d5858348b5c8cb5043811c19d \ - --hash=sha256:300616102fb71241ff477a2cbbc847321dbec49428434a2f17f37528721c4948 \ - --hash=sha256:30a8259569fbeec49cfac7fda3ec8123486ef1b729225222f0d41d5f840b476f \ - --hash=sha256:399166f24c33a0c5759ecc4801f040dbc87d412c1a6d6292b2349b4c505effc9 \ - --hash=sha256:3fac641bbfa43d5a1bed99d28aa1fded1984d31c670a95aac1bf1d36ac6ce137 \ - --hash=sha256:42c29d54ed4501a30cd71015bf982fa95e4a60117b44e1a200290ce687d3e640 \ - --hash=sha256:462d599299c5971f03c676e2b63aa80fec5ebc572d89ce766cd11ca8bcb56f3f \ - --hash=sha256:4eebbd049008eb800f519578e944b8dc8e0f7d59a5abb5924cc2d4ed3a1834ff \ - --hash=sha256:502c062a18d84452858f8aea1e520e12a4d5228fc3621ea5061409d666ea1706 \ - --hash=sha256:5317c04349472e683803da262c781c42c5628a9be73f4750ac7d13040efb5d2d \ - --hash=sha256:5511f962dd1b9b553e9534c3b9c6a4b0c9ded3d8c2be96e61d56f933feef9e1f \ - --hash=sha256:561be4e3e952c2f9056fba5267b99be4ec2afadc27261505d4992c50b33c513c \ - --hash=sha256:601d3e42452cd4f2891c13fa8c70366d71851c1593ed42f57bf37f40f7dca3c8 \ - --hash=sha256:644904600c15816a1f9a1bafa6aab0d21db2788abcdf4e2a77951280473f33e1 \ - --hash=sha256:653a5dfd00f601a0ed6654a8b877b18d65ac32c9d9997456e0ab240807be6cf7 \ - --hash=sha256:694a5e9f1f2c124a17ff2d0be613fd53ba0c26de588eb4bdab8bca855e550d95 \ - --hash=sha256:71b4a48a7427f14679f0015b13c712863d28bb1ab700bd11776a5368135c7d60 \ - --hash=sha256:72bf9308a82b75039b8c8edd2be2924c352eda5da14a920551a8b65d5ee89253 \ - --hash=sha256:735dceec50fa907a3c314b84ed609dec54b76a814aa14eb90da31d1d36873a5e \ - --hash=sha256:73802194f10c394c2bedce7a135ba1d8ba6cff23adf4217612bfc5cf060de34c \ - --hash=sha256:780daad9e35b18d10d7219d24bfb30148ca2afc309928e1d4d53de86822593dc \ - --hash=sha256:8655f55fe68c4685673265a650ef71beb2d31871c049c8b80262026f23605ee3 \ - --hash=sha256:877045a7969ace04d59516d5d6a7dee13106822f99a5d8df5e6822941f7bedc8 \ - --hash=sha256:87bce04f09f0552b66fca0c4e10da78d17cb0e71c205864bab4e9595122cb9d9 \ - --hash=sha256:8d4dfc66abea3ec6d9f83e837a8f8a7d9d3a76d25c9911735c76d6745950e62c \ - --hash=sha256:8ec364e280db4235389b5e1e6ee924723c693cbc98e9d28dc1767041ff9bc388 \ - --hash=sha256:8fa00fa24ffd8c31fac081bf7be7eb495be6d248db127f8776575a746fa55c95 \ - --hash=sha256:920c4897e55e2881db6a6da151198e5001552c3777cd42b8a4c2f72eedc2ee91 \ - --hash=sha256:920f4633bee43d7a2818e1a1a788906df5a17b7ab6fe411220ed92b42940f818 \ - --hash=sha256:9795f56aa6b2296f05ac79d8a424e94056730c0b860a62b0fdcfe6340b658cc8 \ - --hash=sha256:98f0edee7ee9cc7f9221af2e1b95bd02810e1c7a6d115cfd82698803d385b28f \ - --hash=sha256:99c095457eea8550c9fa9a7a992e842aeae1429dab6b6b378710f62bfb70b394 \ - --hash=sha256:99d3a433ef5dc3021c9534a58a3686c88363c591974c16c54a01af7efd741f13 \ - --hash=sha256:99f9a50b56713a598d33bc23a9912224fc5d7f9f292444e6664236ae471ddf17 \ - --hash=sha256:9c46e556ee266ed3fb7b7a882b53df3c76b45e872fdab8d9cf49ae5e91147fd7 \ - --hash=sha256:9f5d37ff01edcbace53a402e80793640c25798fb7208f105d87a25e6fcc9ea06 \ - --hash=sha256:a0b4cfe408cd84c53bab7d83e4209458de676a6ec5e9c623ae914ce1cb79b96f \ - --hash=sha256:a497be217818c318d93f07e14502ef93d44e6a20c72b04c530611e45e54c2196 \ - --hash=sha256:ac89ccc39cd1d556cc72d6752f252dc869dde41c7c936e86beac5eb555041b66 \ - --hash=sha256:adf28099d061a25fbcc6531febb7a091e027605385de9fe14dd6a97319d614cf \ - --hash=sha256:afa01d25769af33a8dac0d905d5c7bb2d73c7c3d5161b2dd6f8b5b5eea6a3c4c \ - --hash=sha256:b1fc07896fc1851558f532dffc8987e526b682ec73140886c831d773cef44b76 \ - --hash=sha256:b49c604ace7a7aa8af31196abbf8f2193be605db6739ed905ecaf62af31ccae0 \ - --hash=sha256:b9f3e0bffad6e238f7acc20c393c1ed8fab4371e3b3bc311020dfa6020d99212 \ - --hash=sha256:ba07646f35e4e49376c9831130039d1b478fbfa1215ae62ad62d2ee63cf9c18f \ - --hash=sha256:bd88f40f2294440d3f3c6308e50d96a0d3d0973d6f1a5732875d10f569acef49 \ - --hash=sha256:c0be58529d43d38ae849a91932391eb93275a06b93b79a8ab828b012e916a206 \ - --hash=sha256:c45f62e4107ebd05166717ac58f6feb44471ed450d07fecd90e5f69d9bf03c48 \ - --hash=sha256:c56da23034fe66221f2208c813d8aa509eea34d97328ce2add56e219c3a9f41c \ - --hash=sha256:c94b5537bf6ce66e4d7830c6993152940a188600f6ae044435287753044a8fe2 \ - --hash=sha256:cebf8d56fee3b08ad40d332a807ecccd4153d3f1ba8231e111d9759f02edfd05 \ - --hash=sha256:d0bf6f93a55d3fa7a079d811b29100b019784e2ee6bc06b0bb839538272a5610 \ - --hash=sha256:d195add190abccefc70ad0f9a0141ad7da53e16183048380e688b466702195dd \ - --hash=sha256:d25ef0c33f22649b7a088035fd65ac1ce6464fa2876578df1adad9472f918a76 \ - --hash=sha256:d6cbdf12ef967a6aa401cf5cdf47850559e59eedad10e781471c960583f25aa1 \ - --hash=sha256:d8c032ccee90b37b44e05948b449a2d6baed7e614df3d3f47fe432c952c21b60 \ - --hash=sha256:daff04257b49ab7f4b3f73f98283d3dbb1a65bf3500d55c7beac3c66c310fe34 \ - --hash=sha256:e83ebbf020be727d6e0991c1b192a5c2e7113eb66e3def0cd0c62f9f266247e4 \ - --hash=sha256:ed3025a8a7e5a59817b7494686d449ebfbe301f3e757b852c8d0d1961d6be864 \ - --hash=sha256:f1936ef138bed2165dd8573aa65e3095ef7c2b6247faccd0e15186aabdda7f66 \ - --hash=sha256:f5247a3d74355f8b1d780d0f3b32a23dd9f6d3ff43ef2037c6dcd249f35ecf4c \ - --hash=sha256:fa496cd45cda0165d597e9d6f01e36c33c9508f75cf03c0a650018c5048f578e \ - --hash=sha256:fb4363e6c9fc87365c2bc777a1f585a22f2f56642501885ffc7942138499bf54 \ - --hash=sha256:fb4370b15111905bf8b5ba2129b926af9470f014cb0493a67d23e9d7a48348e8 \ - --hash=sha256:fbec2af0ebafa57eb82c18c304b37c86a8abddf7022955d1742b3d5471a6339e +pydantic-core==2.16.2 \ + --hash=sha256:02906e7306cb8c5901a1feb61f9ab5e5c690dbbeaa04d84c1b9ae2a01ebe9379 \ + --hash=sha256:0ba503850d8b8dcc18391f10de896ae51d37fe5fe43dbfb6a35c5c5cad271a06 \ + --hash=sha256:16aa02e7a0f539098e215fc193c8926c897175d64c7926d00a36188917717a05 \ + --hash=sha256:18de31781cdc7e7b28678df7c2d7882f9692ad060bc6ee3c94eb15a5d733f8f7 \ + --hash=sha256:22c5f022799f3cd6741e24f0443ead92ef42be93ffda0d29b2597208c94c3753 \ + --hash=sha256:2924b89b16420712e9bb8192396026a8fbd6d8726224f918353ac19c4c043d2a \ + --hash=sha256:308974fdf98046db28440eb3377abba274808bf66262e042c412eb2adf852731 \ + --hash=sha256:396fdf88b1b503c9c59c84a08b6833ec0c3b5ad1a83230252a9e17b7dfb4cffc \ + --hash=sha256:3ac426704840877a285d03a445e162eb258924f014e2f074e209d9b4ff7bf380 \ + --hash=sha256:3b052c753c4babf2d1edc034c97851f867c87d6f3ea63a12e2700f159f5c41c3 \ + --hash=sha256:3fab4e75b8c525a4776e7630b9ee48aea50107fea6ca9f593c98da3f4d11bf7c \ + --hash=sha256:406fac1d09edc613020ce9cf3f2ccf1a1b2f57ab00552b4c18e3d5276c67eb11 \ + --hash=sha256:40a0bd0bed96dae5712dab2aba7d334a6c67cbcac2ddfca7dbcc4a8176445990 \ + --hash=sha256:41dac3b9fce187a25c6253ec79a3f9e2a7e761eb08690e90415069ea4a68ff7a \ + --hash=sha256:459c0d338cc55d099798618f714b21b7ece17eb1a87879f2da20a3ff4c7628e2 \ + --hash=sha256:459d6be6134ce3b38e0ef76f8a672924460c455d45f1ad8fdade36796df1ddc8 \ + --hash=sha256:46b0d5520dbcafea9a8645a8164658777686c5c524d381d983317d29687cce97 \ + --hash=sha256:47924039e785a04d4a4fa49455e51b4eb3422d6eaacfde9fc9abf8fdef164e8a \ + --hash=sha256:4bfcbde6e06c56b30668a0c872d75a7ef3025dc3c1823a13cf29a0e9b33f67e8 \ + --hash=sha256:4f9ee4febb249c591d07b2d4dd36ebcad0ccd128962aaa1801508320896575ef \ + --hash=sha256:55749f745ebf154c0d63d46c8c58594d8894b161928aa41adbb0709c1fe78b77 \ + --hash=sha256:5864b0242f74b9dd0b78fd39db1768bc3f00d1ffc14e596fd3e3f2ce43436a33 \ + --hash=sha256:5f60f920691a620b03082692c378661947d09415743e437a7478c309eb0e4f82 \ + --hash=sha256:60eb8ceaa40a41540b9acae6ae7c1f0a67d233c40dc4359c256ad2ad85bdf5e5 \ + --hash=sha256:69a7b96b59322a81c2203be537957313b07dd333105b73db0b69212c7d867b4b \ + --hash=sha256:6ad84731a26bcfb299f9eab56c7932d46f9cad51c52768cace09e92a19e4cf55 \ + --hash=sha256:6db58c22ac6c81aeac33912fb1af0e930bc9774166cdd56eade913d5f2fff35e \ + --hash=sha256:70651ff6e663428cea902dac297066d5c6e5423fda345a4ca62430575364d62b \ + --hash=sha256:72f7919af5de5ecfaf1eba47bf9a5d8aa089a3340277276e5636d16ee97614d7 \ + --hash=sha256:732bd062c9e5d9582a30e8751461c1917dd1ccbdd6cafb032f02c86b20d2e7ec \ + --hash=sha256:7924e54f7ce5d253d6160090ddc6df25ed2feea25bfb3339b424a9dd591688bc \ + --hash=sha256:7afb844041e707ac9ad9acad2188a90bffce2c770e6dc2318be0c9916aef1469 \ + --hash=sha256:7b883af50eaa6bb3299780651e5be921e88050ccf00e3e583b1e92020333304b \ + --hash=sha256:7beec26729d496a12fd23cf8da9944ee338c8b8a17035a560b585c36fe81af20 \ + --hash=sha256:7bf26c2e2ea59d32807081ad51968133af3025c4ba5753e6a794683d2c91bf6e \ + --hash=sha256:7c31669e0c8cc68400ef0c730c3a1e11317ba76b892deeefaf52dcb41d56ed5d \ + --hash=sha256:7e6231aa5bdacda78e96ad7b07d0c312f34ba35d717115f4b4bff6cb87224f0f \ + --hash=sha256:870dbfa94de9b8866b37b867a2cb37a60c401d9deb4a9ea392abf11a1f98037b \ + --hash=sha256:88646cae28eb1dd5cd1e09605680c2b043b64d7481cdad7f5003ebef401a3039 \ + --hash=sha256:8aafeedb6597a163a9c9727d8a8bd363a93277701b7bfd2749fbefee2396469e \ + --hash=sha256:8bde5b48c65b8e807409e6f20baee5d2cd880e0fad00b1a811ebc43e39a00ab2 \ + --hash=sha256:8f9142a6ed83d90c94a3efd7af8873bf7cefed2d3d44387bf848888482e2d25f \ + --hash=sha256:936a787f83db1f2115ee829dd615c4f684ee48ac4de5779ab4300994d8af325b \ + --hash=sha256:98dc6f4f2095fc7ad277782a7c2c88296badcad92316b5a6e530930b1d475ebc \ + --hash=sha256:9957433c3a1b67bdd4c63717eaf174ebb749510d5ea612cd4e83f2d9142f3fc8 \ + --hash=sha256:99af961d72ac731aae2a1b55ccbdae0733d816f8bfb97b41909e143de735f522 \ + --hash=sha256:9b5f13857da99325dcabe1cc4e9e6a3d7b2e2c726248ba5dd4be3e8e4a0b6d0e \ + --hash=sha256:9d776d30cde7e541b8180103c3f294ef7c1862fd45d81738d156d00551005784 \ + --hash=sha256:9da90d393a8227d717c19f5397688a38635afec89f2e2d7af0df037f3249c39a \ + --hash=sha256:a3b7352b48fbc8b446b75f3069124e87f599d25afb8baa96a550256c031bb890 \ + --hash=sha256:a477932664d9611d7a0816cc3c0eb1f8856f8a42435488280dfbf4395e141485 \ + --hash=sha256:a7e41e3ada4cca5f22b478c08e973c930e5e6c7ba3588fb8e35f2398cdcc1545 \ + --hash=sha256:a90fec23b4b05a09ad988e7a4f4e081711a90eb2a55b9c984d8b74597599180f \ + --hash=sha256:a9e523474998fb33f7c1a4d55f5504c908d57add624599e095c20fa575b8d943 \ + --hash=sha256:aa057095f621dad24a1e906747179a69780ef45cc8f69e97463692adbcdae878 \ + --hash=sha256:aa6c8c582036275997a733427b88031a32ffa5dfc3124dc25a730658c47a572f \ + --hash=sha256:ae34418b6b389d601b31153b84dce480351a352e0bb763684a1b993d6be30f17 \ + --hash=sha256:b0d7a9165167269758145756db43a133608a531b1e5bb6a626b9ee24bc38a8f7 \ + --hash=sha256:b30b0dd58a4509c3bd7eefddf6338565c4905406aee0c6e4a5293841411a1286 \ + --hash=sha256:b8f9186ca45aee030dc8234118b9c0784ad91a0bb27fc4e7d9d6608a5e3d386c \ + --hash=sha256:b94cbda27267423411c928208e89adddf2ea5dd5f74b9528513f0358bba019cb \ + --hash=sha256:cc6f6c9be0ab6da37bc77c2dda5f14b1d532d5dbef00311ee6e13357a418e646 \ + --hash=sha256:ce232a6170dd6532096cadbf6185271e4e8c70fc9217ebe105923ac105da9978 \ + --hash=sha256:cf903310a34e14651c9de056fcc12ce090560864d5a2bb0174b971685684e1d8 \ + --hash=sha256:d5362d099c244a2d2f9659fb3c9db7c735f0004765bbe06b99be69fbd87c3f15 \ + --hash=sha256:dffaf740fe2e147fedcb6b561353a16243e654f7fe8e701b1b9db148242e1272 \ + --hash=sha256:e0f686549e32ccdb02ae6f25eee40cc33900910085de6aa3790effd391ae10c2 \ + --hash=sha256:e4b52776a2e3230f4854907a1e0946eec04d41b1fc64069ee774876bbe0eab55 \ + --hash=sha256:e4ba0884a91f1aecce75202473ab138724aa4fb26d7707f2e1fa6c3e68c84fbf \ + --hash=sha256:e6294e76b0380bb7a61eb8a39273c40b20beb35e8c87ee101062834ced19c545 \ + --hash=sha256:ebb892ed8599b23fa8f1799e13a12c87a97a6c9d0f497525ce9858564c4575a4 \ + --hash=sha256:eca58e319f4fd6df004762419612122b2c7e7d95ffafc37e890252f869f3fb2a \ + --hash=sha256:ed957db4c33bc99895f3a1672eca7e80e8cda8bd1e29a80536b4ec2153fa9804 \ + --hash=sha256:ef551c053692b1e39e3f7950ce2296536728871110e7d75c4e7753fb30ca87f4 \ + --hash=sha256:ef6113cd31411eaf9b39fc5a8848e71c72656fd418882488598758b2c8c6dfa0 \ + --hash=sha256:f685dbc1fdadb1dcd5b5e51e0a378d4685a891b2ddaf8e2bba89bd3a7144e44a \ + --hash=sha256:f8ed79883b4328b7f0bd142733d99c8e6b22703e908ec63d930b06be3a0e7113 \ + --hash=sha256:fe56851c3f1d6f5384b3051c536cc81b3a93a73faf931f404fef95217cf1e10d \ + --hash=sha256:ff7c97eb7a29aba230389a2661edf2e9e06ce616c7e35aa764879b6894a44b25 # via pydantic pygments==2.17.2 \ --hash=sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c \ @@ -613,9 +611,9 @@ python-dateutil==2.8.2 \ # arrow # botocore # dateparser -python-slugify==8.0.3 \ - --hash=sha256:c71189c161e8c671f1b141034d9a56308a8a5978cd13d40446c879569212fdd1 \ - --hash=sha256:e04cba5f1c562502a1175c84a8bc23890c54cdaf23fccaaf0bf78511508cabed +python-slugify==8.0.4 \ + --hash=sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8 \ + --hash=sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856 # via cookiecutter pytz==2024.1 \ --hash=sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812 \ @@ -783,112 +781,112 @@ rich==13.7.0 \ # via # aws-sam-cli (setup.py) # cookiecutter -rpds-py==0.17.1 \ - --hash=sha256:01f58a7306b64e0a4fe042047dd2b7d411ee82e54240284bab63e325762c1147 \ - --hash=sha256:0210b2668f24c078307260bf88bdac9d6f1093635df5123789bfee4d8d7fc8e7 \ - --hash=sha256:02866e060219514940342a1f84303a1ef7a1dad0ac311792fbbe19b521b489d2 \ - --hash=sha256:0387ce69ba06e43df54e43968090f3626e231e4bc9150e4c3246947567695f68 \ - --hash=sha256:060f412230d5f19fc8c8b75f315931b408d8ebf56aec33ef4168d1b9e54200b1 \ - --hash=sha256:071bc28c589b86bc6351a339114fb7a029f5cddbaca34103aa573eba7b482382 \ - --hash=sha256:0bfb09bf41fe7c51413f563373e5f537eaa653d7adc4830399d4e9bdc199959d \ - --hash=sha256:10162fe3f5f47c37ebf6d8ff5a2368508fe22007e3077bf25b9c7d803454d921 \ - --hash=sha256:149c5cd24f729e3567b56e1795f74577aa3126c14c11e457bec1b1c90d212e38 \ - --hash=sha256:1701fc54460ae2e5efc1dd6350eafd7a760f516df8dbe51d4a1c79d69472fbd4 \ - --hash=sha256:1957a2ab607f9added64478a6982742eb29f109d89d065fa44e01691a20fc20a \ - --hash=sha256:1a746a6d49665058a5896000e8d9d2f1a6acba8a03b389c1e4c06e11e0b7f40d \ - --hash=sha256:1bfcad3109c1e5ba3cbe2f421614e70439f72897515a96c462ea657261b96518 \ - --hash=sha256:1d36b2b59e8cc6e576f8f7b671e32f2ff43153f0ad6d0201250a7c07f25d570e \ - --hash=sha256:1db228102ab9d1ff4c64148c96320d0be7044fa28bd865a9ce628ce98da5973d \ - --hash=sha256:1dc29db3900cb1bb40353772417800f29c3d078dbc8024fd64655a04ee3c4bdf \ - --hash=sha256:1e626b365293a2142a62b9a614e1f8e331b28f3ca57b9f05ebbf4cf2a0f0bdc5 \ - --hash=sha256:1f3c3461ebb4c4f1bbc70b15d20b565759f97a5aaf13af811fcefc892e9197ba \ - --hash=sha256:20de7b7179e2031a04042e85dc463a93a82bc177eeba5ddd13ff746325558aa6 \ - --hash=sha256:24e4900a6643f87058a27320f81336d527ccfe503984528edde4bb660c8c8d59 \ - --hash=sha256:2528ff96d09f12e638695f3a2e0c609c7b84c6df7c5ae9bfeb9252b6fa686253 \ - --hash=sha256:25f071737dae674ca8937a73d0f43f5a52e92c2d178330b4c0bb6ab05586ffa6 \ - --hash=sha256:270987bc22e7e5a962b1094953ae901395e8c1e1e83ad016c5cfcfff75a15a3f \ - --hash=sha256:292f7344a3301802e7c25c53792fae7d1593cb0e50964e7bcdcc5cf533d634e3 \ - --hash=sha256:2953937f83820376b5979318840f3ee47477d94c17b940fe31d9458d79ae7eea \ - --hash=sha256:2a792b2e1d3038daa83fa474d559acfd6dc1e3650ee93b2662ddc17dbff20ad1 \ - --hash=sha256:2a7b2f2f56a16a6d62e55354dd329d929560442bd92e87397b7a9586a32e3e76 \ - --hash=sha256:2f4eb548daf4836e3b2c662033bfbfc551db58d30fd8fe660314f86bf8510b93 \ - --hash=sha256:3664d126d3388a887db44c2e293f87d500c4184ec43d5d14d2d2babdb4c64cad \ - --hash=sha256:3677fcca7fb728c86a78660c7fb1b07b69b281964673f486ae72860e13f512ad \ - --hash=sha256:380e0df2e9d5d5d339803cfc6d183a5442ad7ab3c63c2a0982e8c824566c5ccc \ - --hash=sha256:3ac732390d529d8469b831949c78085b034bff67f584559340008d0f6041a049 \ - --hash=sha256:4128980a14ed805e1b91a7ed551250282a8ddf8201a4e9f8f5b7e6225f54170d \ - --hash=sha256:4341bd7579611cf50e7b20bb8c2e23512a3dc79de987a1f411cb458ab670eb90 \ - --hash=sha256:436474f17733c7dca0fbf096d36ae65277e8645039df12a0fa52445ca494729d \ - --hash=sha256:4dc889a9d8a34758d0fcc9ac86adb97bab3fb7f0c4d29794357eb147536483fd \ - --hash=sha256:4e21b76075c01d65d0f0f34302b5a7457d95721d5e0667aea65e5bb3ab415c25 \ - --hash=sha256:516fb8c77805159e97a689e2f1c80655c7658f5af601c34ffdb916605598cda2 \ - --hash=sha256:5576ee2f3a309d2bb403ec292d5958ce03953b0e57a11d224c1f134feaf8c40f \ - --hash=sha256:5a024fa96d541fd7edaa0e9d904601c6445e95a729a2900c5aec6555fe921ed6 \ - --hash=sha256:5d0e8a6434a3fbf77d11448c9c25b2f25244226cfbec1a5159947cac5b8c5fa4 \ - --hash=sha256:5e7d63ec01fe7c76c2dbb7e972fece45acbb8836e72682bde138e7e039906e2c \ - --hash=sha256:60e820ee1004327609b28db8307acc27f5f2e9a0b185b2064c5f23e815f248f8 \ - --hash=sha256:637b802f3f069a64436d432117a7e58fab414b4e27a7e81049817ae94de45d8d \ - --hash=sha256:65dcf105c1943cba45d19207ef51b8bc46d232a381e94dd38719d52d3980015b \ - --hash=sha256:698ea95a60c8b16b58be9d854c9f993c639f5c214cf9ba782eca53a8789d6b19 \ - --hash=sha256:70fcc6c2906cfa5c6a552ba7ae2ce64b6c32f437d8f3f8eea49925b278a61453 \ - --hash=sha256:720215373a280f78a1814becb1312d4e4d1077b1202a56d2b0815e95ccb99ce9 \ - --hash=sha256:7450dbd659fed6dd41d1a7d47ed767e893ba402af8ae664c157c255ec6067fde \ - --hash=sha256:7b7d9ca34542099b4e185b3c2a2b2eda2e318a7dbde0b0d83357a6d4421b5296 \ - --hash=sha256:7fbd70cb8b54fe745301921b0816c08b6d917593429dfc437fd024b5ba713c58 \ - --hash=sha256:81038ff87a4e04c22e1d81f947c6ac46f122e0c80460b9006e6517c4d842a6ec \ - --hash=sha256:810685321f4a304b2b55577c915bece4c4a06dfe38f6e62d9cc1d6ca8ee86b99 \ - --hash=sha256:82ada4a8ed9e82e443fcef87e22a3eed3654dd3adf6e3b3a0deb70f03e86142a \ - --hash=sha256:841320e1841bb53fada91c9725e766bb25009cfd4144e92298db296fb6c894fb \ - --hash=sha256:8587fd64c2a91c33cdc39d0cebdaf30e79491cc029a37fcd458ba863f8815383 \ - --hash=sha256:8ffe53e1d8ef2520ebcf0c9fec15bb721da59e8ef283b6ff3079613b1e30513d \ - --hash=sha256:9051e3d2af8f55b42061603e29e744724cb5f65b128a491446cc029b3e2ea896 \ - --hash=sha256:91e5a8200e65aaac342a791272c564dffcf1281abd635d304d6c4e6b495f29dc \ - --hash=sha256:93432e747fb07fa567ad9cc7aaadd6e29710e515aabf939dfbed8046041346c6 \ - --hash=sha256:938eab7323a736533f015e6069a7d53ef2dcc841e4e533b782c2bfb9fb12d84b \ - --hash=sha256:9584f8f52010295a4a417221861df9bea4c72d9632562b6e59b3c7b87a1522b7 \ - --hash=sha256:9737bdaa0ad33d34c0efc718741abaafce62fadae72c8b251df9b0c823c63b22 \ - --hash=sha256:99da0a4686ada4ed0f778120a0ea8d066de1a0a92ab0d13ae68492a437db78bf \ - --hash=sha256:99f567dae93e10be2daaa896e07513dd4bf9c2ecf0576e0533ac36ba3b1d5394 \ - --hash=sha256:9bdf1303df671179eaf2cb41e8515a07fc78d9d00f111eadbe3e14262f59c3d0 \ - --hash=sha256:9f0e4dc0f17dcea4ab9d13ac5c666b6b5337042b4d8f27e01b70fae41dd65c57 \ - --hash=sha256:a000133a90eea274a6f28adc3084643263b1e7c1a5a66eb0a0a7a36aa757ed74 \ - --hash=sha256:a3264e3e858de4fc601741498215835ff324ff2482fd4e4af61b46512dd7fc83 \ - --hash=sha256:a71169d505af63bb4d20d23a8fbd4c6ce272e7bce6cc31f617152aa784436f29 \ - --hash=sha256:a967dd6afda7715d911c25a6ba1517975acd8d1092b2f326718725461a3d33f9 \ - --hash=sha256:aa5bfb13f1e89151ade0eb812f7b0d7a4d643406caaad65ce1cbabe0a66d695f \ - --hash=sha256:ae35e8e6801c5ab071b992cb2da958eee76340e6926ec693b5ff7d6381441745 \ - --hash=sha256:b686f25377f9c006acbac63f61614416a6317133ab7fafe5de5f7dc8a06d42eb \ - --hash=sha256:b760a56e080a826c2e5af09002c1a037382ed21d03134eb6294812dda268c811 \ - --hash=sha256:b86b21b348f7e5485fae740d845c65a880f5d1eda1e063bc59bef92d1f7d0c55 \ - --hash=sha256:b9412abdf0ba70faa6e2ee6c0cc62a8defb772e78860cef419865917d86c7342 \ - --hash=sha256:bd345a13ce06e94c753dab52f8e71e5252aec1e4f8022d24d56decd31e1b9b23 \ - --hash=sha256:be22ae34d68544df293152b7e50895ba70d2a833ad9566932d750d3625918b82 \ - --hash=sha256:bf046179d011e6114daf12a534d874958b039342b347348a78b7cdf0dd9d6041 \ - --hash=sha256:c3d2010656999b63e628a3c694f23020322b4178c450dc478558a2b6ef3cb9bb \ - --hash=sha256:c64602e8be701c6cfe42064b71c84ce62ce66ddc6422c15463fd8127db3d8066 \ - --hash=sha256:d65e6b4f1443048eb7e833c2accb4fa7ee67cc7d54f31b4f0555b474758bee55 \ - --hash=sha256:d8bbd8e56f3ba25a7d0cf980fc42b34028848a53a0e36c9918550e0280b9d0b6 \ - --hash=sha256:da1ead63368c04a9bded7904757dfcae01eba0e0f9bc41d3d7f57ebf1c04015a \ - --hash=sha256:dbbb95e6fc91ea3102505d111b327004d1c4ce98d56a4a02e82cd451f9f57140 \ - --hash=sha256:dbc56680ecf585a384fbd93cd42bc82668b77cb525343170a2d86dafaed2a84b \ - --hash=sha256:df3b6f45ba4515632c5064e35ca7f31d51d13d1479673185ba8f9fefbbed58b9 \ - --hash=sha256:dfe07308b311a8293a0d5ef4e61411c5c20f682db6b5e73de6c7c8824272c256 \ - --hash=sha256:e796051f2070f47230c745d0a77a91088fbee2cc0502e9b796b9c6471983718c \ - --hash=sha256:efa767c220d94aa4ac3a6dd3aeb986e9f229eaf5bce92d8b1b3018d06bed3772 \ - --hash=sha256:f0b8bf5b8db49d8fd40f54772a1dcf262e8be0ad2ab0206b5a2ec109c176c0a4 \ - --hash=sha256:f175e95a197f6a4059b50757a3dca33b32b61691bdbd22c29e8a8d21d3914cae \ - --hash=sha256:f2f3b28b40fddcb6c1f1f6c88c6f3769cd933fa493ceb79da45968a21dccc920 \ - --hash=sha256:f6c43b6f97209e370124baf2bf40bb1e8edc25311a158867eb1c3a5d449ebc7a \ - --hash=sha256:f7f4cb1f173385e8a39c29510dd11a78bf44e360fb75610594973f5ea141028b \ - --hash=sha256:fad059a4bd14c45776600d223ec194e77db6c20255578bb5bcdd7c18fd169361 \ - --hash=sha256:ff1dcb8e8bc2261a088821b2595ef031c91d499a0c1b031c152d43fe0a6ecec8 \ - --hash=sha256:ffee088ea9b593cc6160518ba9bd319b5475e5f3e578e4552d63818773c6f56a +rpds-py==0.18.0 \ + --hash=sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f \ + --hash=sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c \ + --hash=sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76 \ + --hash=sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e \ + --hash=sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157 \ + --hash=sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f \ + --hash=sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5 \ + --hash=sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05 \ + --hash=sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24 \ + --hash=sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1 \ + --hash=sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8 \ + --hash=sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b \ + --hash=sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb \ + --hash=sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07 \ + --hash=sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1 \ + --hash=sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6 \ + --hash=sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e \ + --hash=sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e \ + --hash=sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1 \ + --hash=sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab \ + --hash=sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4 \ + --hash=sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17 \ + --hash=sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594 \ + --hash=sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d \ + --hash=sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d \ + --hash=sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3 \ + --hash=sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c \ + --hash=sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66 \ + --hash=sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f \ + --hash=sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80 \ + --hash=sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33 \ + --hash=sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f \ + --hash=sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c \ + --hash=sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022 \ + --hash=sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e \ + --hash=sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f \ + --hash=sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da \ + --hash=sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1 \ + --hash=sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688 \ + --hash=sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795 \ + --hash=sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c \ + --hash=sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98 \ + --hash=sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1 \ + --hash=sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20 \ + --hash=sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307 \ + --hash=sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4 \ + --hash=sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18 \ + --hash=sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294 \ + --hash=sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66 \ + --hash=sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467 \ + --hash=sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948 \ + --hash=sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e \ + --hash=sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1 \ + --hash=sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0 \ + --hash=sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7 \ + --hash=sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd \ + --hash=sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641 \ + --hash=sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d \ + --hash=sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9 \ + --hash=sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1 \ + --hash=sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da \ + --hash=sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3 \ + --hash=sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa \ + --hash=sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7 \ + --hash=sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40 \ + --hash=sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496 \ + --hash=sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124 \ + --hash=sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836 \ + --hash=sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434 \ + --hash=sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984 \ + --hash=sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f \ + --hash=sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6 \ + --hash=sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e \ + --hash=sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461 \ + --hash=sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c \ + --hash=sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432 \ + --hash=sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73 \ + --hash=sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58 \ + --hash=sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88 \ + --hash=sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337 \ + --hash=sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7 \ + --hash=sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863 \ + --hash=sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475 \ + --hash=sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3 \ + --hash=sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51 \ + --hash=sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf \ + --hash=sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024 \ + --hash=sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40 \ + --hash=sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9 \ + --hash=sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec \ + --hash=sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb \ + --hash=sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7 \ + --hash=sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861 \ + --hash=sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880 \ + --hash=sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f \ + --hash=sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd \ + --hash=sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca \ + --hash=sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58 \ + --hash=sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e # via # jsonschema # referencing -ruamel-yaml==0.18.5 \ - --hash=sha256:61917e3a35a569c1133a8f772e1226961bf5a1198bea7e23f06a0841dea1ab0e \ - --hash=sha256:a013ac02f99a69cdd6277d9664689eb1acba07069f912823177c5eced21a6ada +ruamel-yaml==0.18.6 \ + --hash=sha256:57b53ba33def16c4f3d807c0ccbc00f8a6081827e81ba2491691b76882d0c636 \ + --hash=sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b # via aws-sam-cli (setup.py) ruamel-yaml-clib==0.2.8 \ --hash=sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d \ @@ -1064,7 +1062,7 @@ zipp==3.17.0 \ # importlib-resources # The following packages are considered to be unsafe in a requirements file: -setuptools==69.0.3 \ - --hash=sha256:385eb4edd9c9d5c17540511303e39a147ce2fc04bc55289c322b9e5904fe2c05 \ - --hash=sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78 +setuptools==69.1.0 \ + --hash=sha256:850894c4195f09c4ed30dba56213bf7c3f21d86ed6bdaafb5df5972593bfc401 \ + --hash=sha256:c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 # via aws-lambda-builders diff --git a/requirements/reproducible-win.txt b/requirements/reproducible-win.txt index 919e335d41..d64fcb9dbd 100644 --- a/requirements/reproducible-win.txt +++ b/requirements/reproducible-win.txt @@ -20,13 +20,13 @@ attrs==23.2.0 \ # jsonschema # referencing # sarif-om -aws-lambda-builders==1.45.0 \ - --hash=sha256:5c19a6628eecf21578cd9c521e747f4a2163c62c527cd840b11b62a10b661348 \ - --hash=sha256:a4db7766198c052900905bd7ee3b1a8b486511394cdabffed054204d43b29943 +aws-lambda-builders==1.46.0 \ + --hash=sha256:69305e46af020c6a07d548b812695f0a93eef8e17a9f7200f03f5e63ce498730 \ + --hash=sha256:fe3ffc5b3d3176b3e3f92a57d83615ed63399ba897d1ce4110bcaba83a1878d3 # via aws-sam-cli (setup.py) -aws-sam-translator==1.84.0 \ - --hash=sha256:a24f43e80095c79258a1f1c7a0b8169f55daf0b2bc237d5b9010b02ba86fa3bb \ - --hash=sha256:dbfd5669b5ef4bd7bc7af4775eec2ce4db61a2c2a17d721e67b51cf6a6dd63f9 +aws-sam-translator==1.85.0 \ + --hash=sha256:e41938affa128fb5bde5e1989b260bf539a96369bba3faf316ce66651351df39 \ + --hash=sha256:e8c69a4db7279421ff6c3579cd4d43395fe9b6781f50416528e984be68e25481 # via # aws-sam-cli (setup.py) # cfn-lint @@ -38,27 +38,25 @@ blinker==1.7.0 \ --hash=sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 \ --hash=sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182 # via flask -boto3==1.34.32 \ - --hash=sha256:7bf924c942426839efd7fa5c2c4fe85dba208258393e8017a5ad327c30e5948d \ - --hash=sha256:9e62f42de2873baab96eb822386d6a3b1d77f6715cb9033d7b4e6e9ebb0cdbe7 +boto3==1.34.43 \ + --hash=sha256:179cdcff2dee116ff0bbe10c21a374fff8ae0d9ea3842bd8dd2c9f69e8185d91 \ + --hash=sha256:ed646f600b76939d54fa1ff868415793551a5a08b9de0a09696b46d116da7da5 # via # aws-sam-cli (setup.py) # aws-sam-translator -boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.32 \ - --hash=sha256:077f13b0856862bedafb92b8499b960624d06f684595be701fade51a8e9615ed \ - --hash=sha256:27fc3b5b69379f0557d881d3f27c201c257eabff535d343ed5fd4a162a5fb389 - # via - # aws-sam-cli (setup.py) - # boto3-stubs -botocore==1.34.32 \ - --hash=sha256:466aee158bd0429dbd567c4e2bdf7be9a0a5a74409f8b295c30f34d84c497f9c \ - --hash=sha256:aa26a74df83eed3db9542c1cf9108138794c344918b36a506c0723717f1acaab +boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.43 \ + --hash=sha256:0a0bdf96eb42f3b12b9bf159d97c407cf272e0430e5f7b42581ce7124ce9bb78 \ + --hash=sha256:5698322a22e54dbebc6f0010dc0f08271f0c911d7f4c5880af341d5f0323748a + # via aws-sam-cli (setup.py) +botocore==1.34.43 \ + --hash=sha256:00dea9fd602dc97420318d373079bdfcc8da34501aaa908ab98b477526bdefec \ + --hash=sha256:ab7d8046a8c3326ecf3d9f9884e79aa77fed864416ed8af52b9e22ab055acf4e # via # boto3 # s3transfer -botocore-stubs==1.34.32 \ - --hash=sha256:978c97b8c02b5ffa3726a5052e5715aecc52c640a75a8088b3a58453c2b054b2 \ - --hash=sha256:e5b04b8ab81e736088470b7be244de072ac2f986caf0f51b7e2087400778dc9f +botocore-stubs==1.34.43 \ + --hash=sha256:6da6730071a83a57200d71bab6b5c2d0033adec5bbb59396113e498de9136aed \ + --hash=sha256:c30aded65547eb339ea4438e7662c4111aee09f360132202bd09e3130f7be956 # via boto3-stubs certifi==2024.2.2 \ --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \ @@ -118,9 +116,9 @@ cffi==1.16.0 \ --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 # via cryptography -cfn-lint==0.85.0 \ - --hash=sha256:64d6e8d85cdc573b61add78f9ff95a142a1834edb4793d1291551f6d953f73fe \ - --hash=sha256:e4849e1779bd1a9f4543617372708a20519b6d7cad5f980e20c6deaa227361a2 +cfn-lint==0.85.1 \ + --hash=sha256:5d5b31609ded0bc513f1c57c0dc0017ec1613c2b33ef8e74802149bedb01a3de \ + --hash=sha256:f003603a6f13bcda125c60f5021fc19b96f18a27ebc44498947709cb7627d0d6 # via aws-sam-cli (setup.py) chardet==5.2.0 \ --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ @@ -237,39 +235,39 @@ cookiecutter==2.5.0 \ --hash=sha256:8aa2f12ed11bc05628651e9dc4353a10571dd9908aaaaeec959a2b9ea465a5d2 \ --hash=sha256:e61e9034748e3f41b8bd2c11f00d030784b48711c4d5c42363c50989a65331ec # via aws-sam-cli (setup.py) -cryptography==42.0.2 \ - --hash=sha256:087887e55e0b9c8724cf05361357875adb5c20dec27e5816b653492980d20380 \ - --hash=sha256:09a77e5b2e8ca732a19a90c5bca2d124621a1edb5438c5daa2d2738bfeb02589 \ - --hash=sha256:130c0f77022b2b9c99d8cebcdd834d81705f61c68e91ddd614ce74c657f8b3ea \ - --hash=sha256:141e2aa5ba100d3788c0ad7919b288f89d1fe015878b9659b307c9ef867d3a65 \ - --hash=sha256:28cb2c41f131a5758d6ba6a0504150d644054fd9f3203a1e8e8d7ac3aea7f73a \ - --hash=sha256:2f9f14185962e6a04ab32d1abe34eae8a9001569ee4edb64d2304bf0d65c53f3 \ - --hash=sha256:320948ab49883557a256eab46149df79435a22d2fefd6a66fe6946f1b9d9d008 \ - --hash=sha256:36d4b7c4be6411f58f60d9ce555a73df8406d484ba12a63549c88bd64f7967f1 \ - --hash=sha256:3b15c678f27d66d247132cbf13df2f75255627bcc9b6a570f7d2fd08e8c081d2 \ - --hash=sha256:3dbd37e14ce795b4af61b89b037d4bc157f2cb23e676fa16932185a04dfbf635 \ - --hash=sha256:4383b47f45b14459cab66048d384614019965ba6c1a1a141f11b5a551cace1b2 \ - --hash=sha256:44c95c0e96b3cb628e8452ec060413a49002a247b2b9938989e23a2c8291fc90 \ - --hash=sha256:4b063d3413f853e056161eb0c7724822a9740ad3caa24b8424d776cebf98e7ee \ - --hash=sha256:52ed9ebf8ac602385126c9a2fe951db36f2cb0c2538d22971487f89d0de4065a \ - --hash=sha256:55d1580e2d7e17f45d19d3b12098e352f3a37fe86d380bf45846ef257054b242 \ - --hash=sha256:5ef9bc3d046ce83c4bbf4c25e1e0547b9c441c01d30922d812e887dc5f125c12 \ - --hash=sha256:5fa82a26f92871eca593b53359c12ad7949772462f887c35edaf36f87953c0e2 \ - --hash=sha256:61321672b3ac7aade25c40449ccedbc6db72c7f5f0fdf34def5e2f8b51ca530d \ - --hash=sha256:701171f825dcab90969596ce2af253143b93b08f1a716d4b2a9d2db5084ef7be \ - --hash=sha256:841ec8af7a8491ac76ec5a9522226e287187a3107e12b7d686ad354bb78facee \ - --hash=sha256:8a06641fb07d4e8f6c7dda4fc3f8871d327803ab6542e33831c7ccfdcb4d0ad6 \ - --hash=sha256:8e88bb9eafbf6a4014d55fb222e7360eef53e613215085e65a13290577394529 \ - --hash=sha256:a00aee5d1b6c20620161984f8ab2ab69134466c51f58c052c11b076715e72929 \ - --hash=sha256:a047682d324ba56e61b7ea7c7299d51e61fd3bca7dad2ccc39b72bd0118d60a1 \ - --hash=sha256:a7ef8dd0bf2e1d0a27042b231a3baac6883cdd5557036f5e8df7139255feaac6 \ - --hash=sha256:ad28cff53f60d99a928dfcf1e861e0b2ceb2bc1f08a074fdd601b314e1cc9e0a \ - --hash=sha256:b9097a208875fc7bbeb1286d0125d90bdfed961f61f214d3f5be62cd4ed8a446 \ - --hash=sha256:b97fe7d7991c25e6a31e5d5e795986b18fbbb3107b873d5f3ae6dc9a103278e9 \ - --hash=sha256:e0ec52ba3c7f1b7d813cd52649a5b3ef1fc0d433219dc8c93827c57eab6cf888 \ - --hash=sha256:ea2c3ffb662fec8bbbfce5602e2c159ff097a4631d96235fcf0fb00e59e3ece4 \ - --hash=sha256:fa3dec4ba8fb6e662770b74f62f1a0c7d4e37e25b58b2bf2c1be4c95372b4a33 \ - --hash=sha256:fbeb725c9dc799a574518109336acccaf1303c30d45c075c665c0793c2f79a7f +cryptography==42.0.4 \ + --hash=sha256:01911714117642a3f1792c7f376db572aadadbafcd8d75bb527166009c9f1d1b \ + --hash=sha256:0e89f7b84f421c56e7ff69f11c441ebda73b8a8e6488d322ef71746224c20fce \ + --hash=sha256:12d341bd42cdb7d4937b0cabbdf2a94f949413ac4504904d0cdbdce4a22cbf88 \ + --hash=sha256:15a1fb843c48b4a604663fa30af60818cd28f895572386e5f9b8a665874c26e7 \ + --hash=sha256:1cdcdbd117681c88d717437ada72bdd5be9de117f96e3f4d50dab3f59fd9ab20 \ + --hash=sha256:1df6fcbf60560d2113b5ed90f072dc0b108d64750d4cbd46a21ec882c7aefce9 \ + --hash=sha256:3c6048f217533d89f2f8f4f0fe3044bf0b2090453b7b73d0b77db47b80af8dff \ + --hash=sha256:3e970a2119507d0b104f0a8e281521ad28fc26f2820687b3436b8c9a5fcf20d1 \ + --hash=sha256:44a64043f743485925d3bcac548d05df0f9bb445c5fcca6681889c7c3ab12764 \ + --hash=sha256:4e36685cb634af55e0677d435d425043967ac2f3790ec652b2b88ad03b85c27b \ + --hash=sha256:5f8907fcf57392cd917892ae83708761c6ff3c37a8e835d7246ff0ad251d9298 \ + --hash=sha256:69b22ab6506a3fe483d67d1ed878e1602bdd5912a134e6202c1ec672233241c1 \ + --hash=sha256:6bfadd884e7280df24d26f2186e4e07556a05d37393b0f220a840b083dc6a824 \ + --hash=sha256:6d0fbe73728c44ca3a241eff9aefe6496ab2656d6e7a4ea2459865f2e8613257 \ + --hash=sha256:6ffb03d419edcab93b4b19c22ee80c007fb2d708429cecebf1dd3258956a563a \ + --hash=sha256:810bcf151caefc03e51a3d61e53335cd5c7316c0a105cc695f0959f2c638b129 \ + --hash=sha256:831a4b37accef30cccd34fcb916a5d7b5be3cbbe27268a02832c3e450aea39cb \ + --hash=sha256:887623fe0d70f48ab3f5e4dbf234986b1329a64c066d719432d0698522749929 \ + --hash=sha256:a0298bdc6e98ca21382afe914c642620370ce0470a01e1bef6dd9b5354c36854 \ + --hash=sha256:a1327f280c824ff7885bdeef8578f74690e9079267c1c8bd7dc5cc5aa065ae52 \ + --hash=sha256:c1f25b252d2c87088abc8bbc4f1ecbf7c919e05508a7e8628e6875c40bc70923 \ + --hash=sha256:c3a5cbc620e1e17009f30dd34cb0d85c987afd21c41a74352d1719be33380885 \ + --hash=sha256:ce8613beaffc7c14f091497346ef117c1798c202b01153a8cc7b8e2ebaaf41c0 \ + --hash=sha256:d2a27aca5597c8a71abbe10209184e1a8e91c1fd470b5070a2ea60cafec35bcd \ + --hash=sha256:dad9c385ba8ee025bb0d856714f71d7840020fe176ae0229de618f14dae7a6e2 \ + --hash=sha256:db4b65b02f59035037fde0998974d84244a64c3265bdef32a827ab9b63d61b18 \ + --hash=sha256:e09469a2cec88fb7b078e16d4adec594414397e8879a4341c6ace96013463d5b \ + --hash=sha256:e53dc41cda40b248ebc40b83b31516487f7db95ab8ceac1f042626bc43a2f992 \ + --hash=sha256:f1e85a178384bf19e36779d91ff35c7617c885da487d689b05c1366f9933ad74 \ + --hash=sha256:f47be41843200f7faec0683ad751e5ef11b9a56a220d57f300376cd8aba81660 \ + --hash=sha256:fb0cef872d8193e487fc6bdb08559c3aa41b659a7d9be48b2e10747f47863925 \ + --hash=sha256:ffc73996c4fca3d2b6c1c8c12bfd3ad00def8621da24f547626bf06441400449 # via pyopenssl dateparser==1.2.0 \ --hash=sha256:0b21ad96534e562920a0083e97fd45fa959882d4162acc358705144520a35830 \ @@ -279,9 +277,9 @@ docker==7.0.0 \ --hash=sha256:12ba681f2777a0ad28ffbcc846a69c31b4dfd9752b47eb425a274ee269c5e14b \ --hash=sha256:323736fb92cd9418fc5e7133bc953e11a9da04f4483f828b527db553f1e7e5a3 # via aws-sam-cli (setup.py) -flask==3.0.1 \ - --hash=sha256:6489f51bb3666def6f314e15f19d50a1869a19ae0e8c9a3641ffe66c77d42403 \ - --hash=sha256:ca631a507f6dfe6c278ae20112cea3ff54ff2216390bf8880f6b035a5354af13 +flask==3.0.2 \ + --hash=sha256:3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e \ + --hash=sha256:822c03f4b799204250a7ee84b1eddc40665395333973dfb9deebfe425fefcb7d # via aws-sam-cli (setup.py) idna==3.6 \ --hash=sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca \ @@ -339,67 +337,67 @@ markdown-it-py==3.0.0 \ --hash=sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 \ --hash=sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb # via rich -markupsafe==2.1.4 \ - --hash=sha256:0042d6a9880b38e1dd9ff83146cc3c9c18a059b9360ceae207805567aacccc69 \ - --hash=sha256:0c26f67b3fe27302d3a412b85ef696792c4a2386293c53ba683a89562f9399b0 \ - --hash=sha256:0fbad3d346df8f9d72622ac71b69565e621ada2ce6572f37c2eae8dacd60385d \ - --hash=sha256:15866d7f2dc60cfdde12ebb4e75e41be862348b4728300c36cdf405e258415ec \ - --hash=sha256:1c98c33ffe20e9a489145d97070a435ea0679fddaabcafe19982fe9c971987d5 \ - --hash=sha256:21e7af8091007bf4bebf4521184f4880a6acab8df0df52ef9e513d8e5db23411 \ - --hash=sha256:23984d1bdae01bee794267424af55eef4dfc038dc5d1272860669b2aa025c9e3 \ - --hash=sha256:31f57d64c336b8ccb1966d156932f3daa4fee74176b0fdc48ef580be774aae74 \ - --hash=sha256:3583a3a3ab7958e354dc1d25be74aee6228938312ee875a22330c4dc2e41beb0 \ - --hash=sha256:36d7626a8cca4d34216875aee5a1d3d654bb3dac201c1c003d182283e3205949 \ - --hash=sha256:396549cea79e8ca4ba65525470d534e8a41070e6b3500ce2414921099cb73e8d \ - --hash=sha256:3a66c36a3864df95e4f62f9167c734b3b1192cb0851b43d7cc08040c074c6279 \ - --hash=sha256:3aae9af4cac263007fd6309c64c6ab4506dd2b79382d9d19a1994f9240b8db4f \ - --hash=sha256:3ab3a886a237f6e9c9f4f7d272067e712cdb4efa774bef494dccad08f39d8ae6 \ - --hash=sha256:47bb5f0142b8b64ed1399b6b60f700a580335c8e1c57f2f15587bd072012decc \ - --hash=sha256:49a3b78a5af63ec10d8604180380c13dcd870aba7928c1fe04e881d5c792dc4e \ - --hash=sha256:4df98d4a9cd6a88d6a585852f56f2155c9cdb6aec78361a19f938810aa020954 \ - --hash=sha256:5045e892cfdaecc5b4c01822f353cf2c8feb88a6ec1c0adef2a2e705eef0f656 \ - --hash=sha256:5244324676254697fe5c181fc762284e2c5fceeb1c4e3e7f6aca2b6f107e60dc \ - --hash=sha256:54635102ba3cf5da26eb6f96c4b8c53af8a9c0d97b64bdcb592596a6255d8518 \ - --hash=sha256:54a7e1380dfece8847c71bf7e33da5d084e9b889c75eca19100ef98027bd9f56 \ - --hash=sha256:55d03fea4c4e9fd0ad75dc2e7e2b6757b80c152c032ea1d1de487461d8140efc \ - --hash=sha256:698e84142f3f884114ea8cf83e7a67ca8f4ace8454e78fe960646c6c91c63bfa \ - --hash=sha256:6aa5e2e7fc9bc042ae82d8b79d795b9a62bd8f15ba1e7594e3db243f158b5565 \ - --hash=sha256:7653fa39578957bc42e5ebc15cf4361d9e0ee4b702d7d5ec96cdac860953c5b4 \ - --hash=sha256:765f036a3d00395a326df2835d8f86b637dbaf9832f90f5d196c3b8a7a5080cb \ - --hash=sha256:78bc995e004681246e85e28e068111a4c3f35f34e6c62da1471e844ee1446250 \ - --hash=sha256:7a07f40ef8f0fbc5ef1000d0c78771f4d5ca03b4953fc162749772916b298fc4 \ - --hash=sha256:8b570a1537367b52396e53325769608f2a687ec9a4363647af1cded8928af959 \ - --hash=sha256:987d13fe1d23e12a66ca2073b8d2e2a75cec2ecb8eab43ff5624ba0ad42764bc \ - --hash=sha256:9896fca4a8eb246defc8b2a7ac77ef7553b638e04fbf170bff78a40fa8a91474 \ - --hash=sha256:9e9e3c4020aa2dc62d5dd6743a69e399ce3de58320522948af6140ac959ab863 \ - --hash=sha256:a0b838c37ba596fcbfca71651a104a611543077156cb0a26fe0c475e1f152ee8 \ - --hash=sha256:a4d176cfdfde84f732c4a53109b293d05883e952bbba68b857ae446fa3119b4f \ - --hash=sha256:a76055d5cb1c23485d7ddae533229039b850db711c554a12ea64a0fd8a0129e2 \ - --hash=sha256:a76cd37d229fc385738bd1ce4cba2a121cf26b53864c1772694ad0ad348e509e \ - --hash=sha256:a7cc49ef48a3c7a0005a949f3c04f8baa5409d3f663a1b36f0eba9bfe2a0396e \ - --hash=sha256:abf5ebbec056817057bfafc0445916bb688a255a5146f900445d081db08cbabb \ - --hash=sha256:b0fe73bac2fed83839dbdbe6da84ae2a31c11cfc1c777a40dbd8ac8a6ed1560f \ - --hash=sha256:b6f14a9cd50c3cb100eb94b3273131c80d102e19bb20253ac7bd7336118a673a \ - --hash=sha256:b83041cda633871572f0d3c41dddd5582ad7d22f65a72eacd8d3d6d00291df26 \ - --hash=sha256:b835aba863195269ea358cecc21b400276747cc977492319fd7682b8cd2c253d \ - --hash=sha256:bf1196dcc239e608605b716e7b166eb5faf4bc192f8a44b81e85251e62584bd2 \ - --hash=sha256:c669391319973e49a7c6230c218a1e3044710bc1ce4c8e6eb71f7e6d43a2c131 \ - --hash=sha256:c7556bafeaa0a50e2fe7dc86e0382dea349ebcad8f010d5a7dc6ba568eaaa789 \ - --hash=sha256:c8f253a84dbd2c63c19590fa86a032ef3d8cc18923b8049d91bcdeeb2581fbf6 \ - --hash=sha256:d18b66fe626ac412d96c2ab536306c736c66cf2a31c243a45025156cc190dc8a \ - --hash=sha256:d5291d98cd3ad9a562883468c690a2a238c4a6388ab3bd155b0c75dd55ece858 \ - --hash=sha256:d5c31fe855c77cad679b302aabc42d724ed87c043b1432d457f4976add1c2c3e \ - --hash=sha256:d6e427c7378c7f1b2bef6a344c925b8b63623d3321c09a237b7cc0e77dd98ceb \ - --hash=sha256:dac1ebf6983148b45b5fa48593950f90ed6d1d26300604f321c74a9ca1609f8e \ - --hash=sha256:de8153a7aae3835484ac168a9a9bdaa0c5eee4e0bc595503c95d53b942879c84 \ - --hash=sha256:e1a0d1924a5013d4f294087e00024ad25668234569289650929ab871231668e7 \ - --hash=sha256:e7902211afd0af05fbadcc9a312e4cf10f27b779cf1323e78d52377ae4b72bea \ - --hash=sha256:e888ff76ceb39601c59e219f281466c6d7e66bd375b4ec1ce83bcdc68306796b \ - --hash=sha256:f06e5a9e99b7df44640767842f414ed5d7bedaaa78cd817ce04bbd6fd86e2dd6 \ - --hash=sha256:f6be2d708a9d0e9b0054856f07ac7070fbe1754be40ca8525d5adccdbda8f475 \ - --hash=sha256:f9917691f410a2e0897d1ef99619fd3f7dd503647c8ff2475bf90c3cf222ad74 \ - --hash=sha256:fc1a75aa8f11b87910ffd98de62b29d6520b6d6e8a3de69a70ca34dea85d2a8a \ - --hash=sha256:fe8512ed897d5daf089e5bd010c3dc03bb1bdae00b35588c49b98268d4a01e00 +markupsafe==2.1.5 \ + --hash=sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf \ + --hash=sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff \ + --hash=sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f \ + --hash=sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3 \ + --hash=sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532 \ + --hash=sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f \ + --hash=sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 \ + --hash=sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df \ + --hash=sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4 \ + --hash=sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906 \ + --hash=sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f \ + --hash=sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4 \ + --hash=sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8 \ + --hash=sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371 \ + --hash=sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2 \ + --hash=sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465 \ + --hash=sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52 \ + --hash=sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6 \ + --hash=sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169 \ + --hash=sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad \ + --hash=sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 \ + --hash=sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0 \ + --hash=sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029 \ + --hash=sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f \ + --hash=sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a \ + --hash=sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced \ + --hash=sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5 \ + --hash=sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c \ + --hash=sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf \ + --hash=sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9 \ + --hash=sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb \ + --hash=sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad \ + --hash=sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3 \ + --hash=sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1 \ + --hash=sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46 \ + --hash=sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc \ + --hash=sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a \ + --hash=sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee \ + --hash=sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900 \ + --hash=sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 \ + --hash=sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea \ + --hash=sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f \ + --hash=sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5 \ + --hash=sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e \ + --hash=sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a \ + --hash=sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f \ + --hash=sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50 \ + --hash=sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a \ + --hash=sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b \ + --hash=sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4 \ + --hash=sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff \ + --hash=sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2 \ + --hash=sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46 \ + --hash=sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b \ + --hash=sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf \ + --hash=sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5 \ + --hash=sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5 \ + --hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \ + --hash=sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd \ + --hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68 # via # jinja2 # werkzeug @@ -443,9 +441,9 @@ mypy-boto3-schemas==1.34.0 \ --hash=sha256:28c016609dcffc606bd8425ee92894c46e943ab77033e1ae46481f00c39b7f75 \ --hash=sha256:3b25a71944192b0980c3bb5132deb7c06ee9b88580ed63f257fad97cf3bf2927 # via boto3-stubs -mypy-boto3-secretsmanager==1.34.17 \ - --hash=sha256:0dbd1cdbe7992324c3414cccf0256e3905827bbf1f6a8d58c255635f6a2b4bfb \ - --hash=sha256:a547932d99c3f711b27b9ea1c38fc063050910c0bf6c8eb346abd96ace61668e +mypy-boto3-secretsmanager==1.34.43 \ + --hash=sha256:64e9df58f71072f0a912ecaca626683f4536da078caa204ac07928c4b1481b8b \ + --hash=sha256:abbf560775c2fe0dc383b7f70c16a1bf753d9b3ffc0caa5e35447e685783a68b # via boto3-stubs mypy-boto3-signer==1.34.0 \ --hash=sha256:c11ed943ccd38ee54fc0ca90ed347ef770d695df49535eab96dd97fb3dbdc592 \ @@ -485,90 +483,90 @@ pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 # via cffi -pydantic==2.6.0 \ - --hash=sha256:1440966574e1b5b99cf75a13bec7b20e3512e8a61b894ae252f56275e2c465ae \ - --hash=sha256:ae887bd94eb404b09d86e4d12f93893bdca79d766e738528c6fa1c849f3c6bcf +pydantic==2.6.1 \ + --hash=sha256:0b6a909df3192245cb736509a92ff69e4fef76116feffec68e93a567347bae6f \ + --hash=sha256:4fd5c182a2488dc63e6d32737ff19937888001e2a6d86e94b3f233104a5d1fa9 # via aws-sam-translator -pydantic-core==2.16.1 \ - --hash=sha256:06f0d5a1d9e1b7932477c172cc720b3b23c18762ed7a8efa8398298a59d177c7 \ - --hash=sha256:07982b82d121ed3fc1c51faf6e8f57ff09b1325d2efccaa257dd8c0dd937acca \ - --hash=sha256:0f478ec204772a5c8218e30eb813ca43e34005dff2eafa03931b3d8caef87d51 \ - --hash=sha256:102569d371fadc40d8f8598a59379c37ec60164315884467052830b28cc4e9da \ - --hash=sha256:10dca874e35bb60ce4f9f6665bfbfad050dd7573596608aeb9e098621ac331dc \ - --hash=sha256:150ba5c86f502c040b822777e2e519b5625b47813bd05f9273a8ed169c97d9ae \ - --hash=sha256:1661c668c1bb67b7cec96914329d9ab66755911d093bb9063c4c8914188af6d4 \ - --hash=sha256:1a2fe7b00a49b51047334d84aafd7e39f80b7675cad0083678c58983662da89b \ - --hash=sha256:1ae8048cba95f382dba56766525abca438328455e35c283bb202964f41a780b0 \ - --hash=sha256:20f724a023042588d0f4396bbbcf4cffd0ddd0ad3ed4f0d8e6d4ac4264bae81e \ - --hash=sha256:2133b0e412a47868a358713287ff9f9a328879da547dc88be67481cdac529118 \ - --hash=sha256:21e3298486c4ea4e4d5cc6fb69e06fb02a4e22089304308817035ac006a7f506 \ - --hash=sha256:21ebaa4bf6386a3b22eec518da7d679c8363fb7fb70cf6972161e5542f470798 \ - --hash=sha256:23632132f1fd608034f1a56cc3e484be00854db845b3a4a508834be5a6435a6f \ - --hash=sha256:2d5bea8012df5bb6dda1e67d0563ac50b7f64a5d5858348b5c8cb5043811c19d \ - --hash=sha256:300616102fb71241ff477a2cbbc847321dbec49428434a2f17f37528721c4948 \ - --hash=sha256:30a8259569fbeec49cfac7fda3ec8123486ef1b729225222f0d41d5f840b476f \ - --hash=sha256:399166f24c33a0c5759ecc4801f040dbc87d412c1a6d6292b2349b4c505effc9 \ - --hash=sha256:3fac641bbfa43d5a1bed99d28aa1fded1984d31c670a95aac1bf1d36ac6ce137 \ - --hash=sha256:42c29d54ed4501a30cd71015bf982fa95e4a60117b44e1a200290ce687d3e640 \ - --hash=sha256:462d599299c5971f03c676e2b63aa80fec5ebc572d89ce766cd11ca8bcb56f3f \ - --hash=sha256:4eebbd049008eb800f519578e944b8dc8e0f7d59a5abb5924cc2d4ed3a1834ff \ - --hash=sha256:502c062a18d84452858f8aea1e520e12a4d5228fc3621ea5061409d666ea1706 \ - --hash=sha256:5317c04349472e683803da262c781c42c5628a9be73f4750ac7d13040efb5d2d \ - --hash=sha256:5511f962dd1b9b553e9534c3b9c6a4b0c9ded3d8c2be96e61d56f933feef9e1f \ - --hash=sha256:561be4e3e952c2f9056fba5267b99be4ec2afadc27261505d4992c50b33c513c \ - --hash=sha256:601d3e42452cd4f2891c13fa8c70366d71851c1593ed42f57bf37f40f7dca3c8 \ - --hash=sha256:644904600c15816a1f9a1bafa6aab0d21db2788abcdf4e2a77951280473f33e1 \ - --hash=sha256:653a5dfd00f601a0ed6654a8b877b18d65ac32c9d9997456e0ab240807be6cf7 \ - --hash=sha256:694a5e9f1f2c124a17ff2d0be613fd53ba0c26de588eb4bdab8bca855e550d95 \ - --hash=sha256:71b4a48a7427f14679f0015b13c712863d28bb1ab700bd11776a5368135c7d60 \ - --hash=sha256:72bf9308a82b75039b8c8edd2be2924c352eda5da14a920551a8b65d5ee89253 \ - --hash=sha256:735dceec50fa907a3c314b84ed609dec54b76a814aa14eb90da31d1d36873a5e \ - --hash=sha256:73802194f10c394c2bedce7a135ba1d8ba6cff23adf4217612bfc5cf060de34c \ - --hash=sha256:780daad9e35b18d10d7219d24bfb30148ca2afc309928e1d4d53de86822593dc \ - --hash=sha256:8655f55fe68c4685673265a650ef71beb2d31871c049c8b80262026f23605ee3 \ - --hash=sha256:877045a7969ace04d59516d5d6a7dee13106822f99a5d8df5e6822941f7bedc8 \ - --hash=sha256:87bce04f09f0552b66fca0c4e10da78d17cb0e71c205864bab4e9595122cb9d9 \ - --hash=sha256:8d4dfc66abea3ec6d9f83e837a8f8a7d9d3a76d25c9911735c76d6745950e62c \ - --hash=sha256:8ec364e280db4235389b5e1e6ee924723c693cbc98e9d28dc1767041ff9bc388 \ - --hash=sha256:8fa00fa24ffd8c31fac081bf7be7eb495be6d248db127f8776575a746fa55c95 \ - --hash=sha256:920c4897e55e2881db6a6da151198e5001552c3777cd42b8a4c2f72eedc2ee91 \ - --hash=sha256:920f4633bee43d7a2818e1a1a788906df5a17b7ab6fe411220ed92b42940f818 \ - --hash=sha256:9795f56aa6b2296f05ac79d8a424e94056730c0b860a62b0fdcfe6340b658cc8 \ - --hash=sha256:98f0edee7ee9cc7f9221af2e1b95bd02810e1c7a6d115cfd82698803d385b28f \ - --hash=sha256:99c095457eea8550c9fa9a7a992e842aeae1429dab6b6b378710f62bfb70b394 \ - --hash=sha256:99d3a433ef5dc3021c9534a58a3686c88363c591974c16c54a01af7efd741f13 \ - --hash=sha256:99f9a50b56713a598d33bc23a9912224fc5d7f9f292444e6664236ae471ddf17 \ - --hash=sha256:9c46e556ee266ed3fb7b7a882b53df3c76b45e872fdab8d9cf49ae5e91147fd7 \ - --hash=sha256:9f5d37ff01edcbace53a402e80793640c25798fb7208f105d87a25e6fcc9ea06 \ - --hash=sha256:a0b4cfe408cd84c53bab7d83e4209458de676a6ec5e9c623ae914ce1cb79b96f \ - --hash=sha256:a497be217818c318d93f07e14502ef93d44e6a20c72b04c530611e45e54c2196 \ - --hash=sha256:ac89ccc39cd1d556cc72d6752f252dc869dde41c7c936e86beac5eb555041b66 \ - --hash=sha256:adf28099d061a25fbcc6531febb7a091e027605385de9fe14dd6a97319d614cf \ - --hash=sha256:afa01d25769af33a8dac0d905d5c7bb2d73c7c3d5161b2dd6f8b5b5eea6a3c4c \ - --hash=sha256:b1fc07896fc1851558f532dffc8987e526b682ec73140886c831d773cef44b76 \ - --hash=sha256:b49c604ace7a7aa8af31196abbf8f2193be605db6739ed905ecaf62af31ccae0 \ - --hash=sha256:b9f3e0bffad6e238f7acc20c393c1ed8fab4371e3b3bc311020dfa6020d99212 \ - --hash=sha256:ba07646f35e4e49376c9831130039d1b478fbfa1215ae62ad62d2ee63cf9c18f \ - --hash=sha256:bd88f40f2294440d3f3c6308e50d96a0d3d0973d6f1a5732875d10f569acef49 \ - --hash=sha256:c0be58529d43d38ae849a91932391eb93275a06b93b79a8ab828b012e916a206 \ - --hash=sha256:c45f62e4107ebd05166717ac58f6feb44471ed450d07fecd90e5f69d9bf03c48 \ - --hash=sha256:c56da23034fe66221f2208c813d8aa509eea34d97328ce2add56e219c3a9f41c \ - --hash=sha256:c94b5537bf6ce66e4d7830c6993152940a188600f6ae044435287753044a8fe2 \ - --hash=sha256:cebf8d56fee3b08ad40d332a807ecccd4153d3f1ba8231e111d9759f02edfd05 \ - --hash=sha256:d0bf6f93a55d3fa7a079d811b29100b019784e2ee6bc06b0bb839538272a5610 \ - --hash=sha256:d195add190abccefc70ad0f9a0141ad7da53e16183048380e688b466702195dd \ - --hash=sha256:d25ef0c33f22649b7a088035fd65ac1ce6464fa2876578df1adad9472f918a76 \ - --hash=sha256:d6cbdf12ef967a6aa401cf5cdf47850559e59eedad10e781471c960583f25aa1 \ - --hash=sha256:d8c032ccee90b37b44e05948b449a2d6baed7e614df3d3f47fe432c952c21b60 \ - --hash=sha256:daff04257b49ab7f4b3f73f98283d3dbb1a65bf3500d55c7beac3c66c310fe34 \ - --hash=sha256:e83ebbf020be727d6e0991c1b192a5c2e7113eb66e3def0cd0c62f9f266247e4 \ - --hash=sha256:ed3025a8a7e5a59817b7494686d449ebfbe301f3e757b852c8d0d1961d6be864 \ - --hash=sha256:f1936ef138bed2165dd8573aa65e3095ef7c2b6247faccd0e15186aabdda7f66 \ - --hash=sha256:f5247a3d74355f8b1d780d0f3b32a23dd9f6d3ff43ef2037c6dcd249f35ecf4c \ - --hash=sha256:fa496cd45cda0165d597e9d6f01e36c33c9508f75cf03c0a650018c5048f578e \ - --hash=sha256:fb4363e6c9fc87365c2bc777a1f585a22f2f56642501885ffc7942138499bf54 \ - --hash=sha256:fb4370b15111905bf8b5ba2129b926af9470f014cb0493a67d23e9d7a48348e8 \ - --hash=sha256:fbec2af0ebafa57eb82c18c304b37c86a8abddf7022955d1742b3d5471a6339e +pydantic-core==2.16.2 \ + --hash=sha256:02906e7306cb8c5901a1feb61f9ab5e5c690dbbeaa04d84c1b9ae2a01ebe9379 \ + --hash=sha256:0ba503850d8b8dcc18391f10de896ae51d37fe5fe43dbfb6a35c5c5cad271a06 \ + --hash=sha256:16aa02e7a0f539098e215fc193c8926c897175d64c7926d00a36188917717a05 \ + --hash=sha256:18de31781cdc7e7b28678df7c2d7882f9692ad060bc6ee3c94eb15a5d733f8f7 \ + --hash=sha256:22c5f022799f3cd6741e24f0443ead92ef42be93ffda0d29b2597208c94c3753 \ + --hash=sha256:2924b89b16420712e9bb8192396026a8fbd6d8726224f918353ac19c4c043d2a \ + --hash=sha256:308974fdf98046db28440eb3377abba274808bf66262e042c412eb2adf852731 \ + --hash=sha256:396fdf88b1b503c9c59c84a08b6833ec0c3b5ad1a83230252a9e17b7dfb4cffc \ + --hash=sha256:3ac426704840877a285d03a445e162eb258924f014e2f074e209d9b4ff7bf380 \ + --hash=sha256:3b052c753c4babf2d1edc034c97851f867c87d6f3ea63a12e2700f159f5c41c3 \ + --hash=sha256:3fab4e75b8c525a4776e7630b9ee48aea50107fea6ca9f593c98da3f4d11bf7c \ + --hash=sha256:406fac1d09edc613020ce9cf3f2ccf1a1b2f57ab00552b4c18e3d5276c67eb11 \ + --hash=sha256:40a0bd0bed96dae5712dab2aba7d334a6c67cbcac2ddfca7dbcc4a8176445990 \ + --hash=sha256:41dac3b9fce187a25c6253ec79a3f9e2a7e761eb08690e90415069ea4a68ff7a \ + --hash=sha256:459c0d338cc55d099798618f714b21b7ece17eb1a87879f2da20a3ff4c7628e2 \ + --hash=sha256:459d6be6134ce3b38e0ef76f8a672924460c455d45f1ad8fdade36796df1ddc8 \ + --hash=sha256:46b0d5520dbcafea9a8645a8164658777686c5c524d381d983317d29687cce97 \ + --hash=sha256:47924039e785a04d4a4fa49455e51b4eb3422d6eaacfde9fc9abf8fdef164e8a \ + --hash=sha256:4bfcbde6e06c56b30668a0c872d75a7ef3025dc3c1823a13cf29a0e9b33f67e8 \ + --hash=sha256:4f9ee4febb249c591d07b2d4dd36ebcad0ccd128962aaa1801508320896575ef \ + --hash=sha256:55749f745ebf154c0d63d46c8c58594d8894b161928aa41adbb0709c1fe78b77 \ + --hash=sha256:5864b0242f74b9dd0b78fd39db1768bc3f00d1ffc14e596fd3e3f2ce43436a33 \ + --hash=sha256:5f60f920691a620b03082692c378661947d09415743e437a7478c309eb0e4f82 \ + --hash=sha256:60eb8ceaa40a41540b9acae6ae7c1f0a67d233c40dc4359c256ad2ad85bdf5e5 \ + --hash=sha256:69a7b96b59322a81c2203be537957313b07dd333105b73db0b69212c7d867b4b \ + --hash=sha256:6ad84731a26bcfb299f9eab56c7932d46f9cad51c52768cace09e92a19e4cf55 \ + --hash=sha256:6db58c22ac6c81aeac33912fb1af0e930bc9774166cdd56eade913d5f2fff35e \ + --hash=sha256:70651ff6e663428cea902dac297066d5c6e5423fda345a4ca62430575364d62b \ + --hash=sha256:72f7919af5de5ecfaf1eba47bf9a5d8aa089a3340277276e5636d16ee97614d7 \ + --hash=sha256:732bd062c9e5d9582a30e8751461c1917dd1ccbdd6cafb032f02c86b20d2e7ec \ + --hash=sha256:7924e54f7ce5d253d6160090ddc6df25ed2feea25bfb3339b424a9dd591688bc \ + --hash=sha256:7afb844041e707ac9ad9acad2188a90bffce2c770e6dc2318be0c9916aef1469 \ + --hash=sha256:7b883af50eaa6bb3299780651e5be921e88050ccf00e3e583b1e92020333304b \ + --hash=sha256:7beec26729d496a12fd23cf8da9944ee338c8b8a17035a560b585c36fe81af20 \ + --hash=sha256:7bf26c2e2ea59d32807081ad51968133af3025c4ba5753e6a794683d2c91bf6e \ + --hash=sha256:7c31669e0c8cc68400ef0c730c3a1e11317ba76b892deeefaf52dcb41d56ed5d \ + --hash=sha256:7e6231aa5bdacda78e96ad7b07d0c312f34ba35d717115f4b4bff6cb87224f0f \ + --hash=sha256:870dbfa94de9b8866b37b867a2cb37a60c401d9deb4a9ea392abf11a1f98037b \ + --hash=sha256:88646cae28eb1dd5cd1e09605680c2b043b64d7481cdad7f5003ebef401a3039 \ + --hash=sha256:8aafeedb6597a163a9c9727d8a8bd363a93277701b7bfd2749fbefee2396469e \ + --hash=sha256:8bde5b48c65b8e807409e6f20baee5d2cd880e0fad00b1a811ebc43e39a00ab2 \ + --hash=sha256:8f9142a6ed83d90c94a3efd7af8873bf7cefed2d3d44387bf848888482e2d25f \ + --hash=sha256:936a787f83db1f2115ee829dd615c4f684ee48ac4de5779ab4300994d8af325b \ + --hash=sha256:98dc6f4f2095fc7ad277782a7c2c88296badcad92316b5a6e530930b1d475ebc \ + --hash=sha256:9957433c3a1b67bdd4c63717eaf174ebb749510d5ea612cd4e83f2d9142f3fc8 \ + --hash=sha256:99af961d72ac731aae2a1b55ccbdae0733d816f8bfb97b41909e143de735f522 \ + --hash=sha256:9b5f13857da99325dcabe1cc4e9e6a3d7b2e2c726248ba5dd4be3e8e4a0b6d0e \ + --hash=sha256:9d776d30cde7e541b8180103c3f294ef7c1862fd45d81738d156d00551005784 \ + --hash=sha256:9da90d393a8227d717c19f5397688a38635afec89f2e2d7af0df037f3249c39a \ + --hash=sha256:a3b7352b48fbc8b446b75f3069124e87f599d25afb8baa96a550256c031bb890 \ + --hash=sha256:a477932664d9611d7a0816cc3c0eb1f8856f8a42435488280dfbf4395e141485 \ + --hash=sha256:a7e41e3ada4cca5f22b478c08e973c930e5e6c7ba3588fb8e35f2398cdcc1545 \ + --hash=sha256:a90fec23b4b05a09ad988e7a4f4e081711a90eb2a55b9c984d8b74597599180f \ + --hash=sha256:a9e523474998fb33f7c1a4d55f5504c908d57add624599e095c20fa575b8d943 \ + --hash=sha256:aa057095f621dad24a1e906747179a69780ef45cc8f69e97463692adbcdae878 \ + --hash=sha256:aa6c8c582036275997a733427b88031a32ffa5dfc3124dc25a730658c47a572f \ + --hash=sha256:ae34418b6b389d601b31153b84dce480351a352e0bb763684a1b993d6be30f17 \ + --hash=sha256:b0d7a9165167269758145756db43a133608a531b1e5bb6a626b9ee24bc38a8f7 \ + --hash=sha256:b30b0dd58a4509c3bd7eefddf6338565c4905406aee0c6e4a5293841411a1286 \ + --hash=sha256:b8f9186ca45aee030dc8234118b9c0784ad91a0bb27fc4e7d9d6608a5e3d386c \ + --hash=sha256:b94cbda27267423411c928208e89adddf2ea5dd5f74b9528513f0358bba019cb \ + --hash=sha256:cc6f6c9be0ab6da37bc77c2dda5f14b1d532d5dbef00311ee6e13357a418e646 \ + --hash=sha256:ce232a6170dd6532096cadbf6185271e4e8c70fc9217ebe105923ac105da9978 \ + --hash=sha256:cf903310a34e14651c9de056fcc12ce090560864d5a2bb0174b971685684e1d8 \ + --hash=sha256:d5362d099c244a2d2f9659fb3c9db7c735f0004765bbe06b99be69fbd87c3f15 \ + --hash=sha256:dffaf740fe2e147fedcb6b561353a16243e654f7fe8e701b1b9db148242e1272 \ + --hash=sha256:e0f686549e32ccdb02ae6f25eee40cc33900910085de6aa3790effd391ae10c2 \ + --hash=sha256:e4b52776a2e3230f4854907a1e0946eec04d41b1fc64069ee774876bbe0eab55 \ + --hash=sha256:e4ba0884a91f1aecce75202473ab138724aa4fb26d7707f2e1fa6c3e68c84fbf \ + --hash=sha256:e6294e76b0380bb7a61eb8a39273c40b20beb35e8c87ee101062834ced19c545 \ + --hash=sha256:ebb892ed8599b23fa8f1799e13a12c87a97a6c9d0f497525ce9858564c4575a4 \ + --hash=sha256:eca58e319f4fd6df004762419612122b2c7e7d95ffafc37e890252f869f3fb2a \ + --hash=sha256:ed957db4c33bc99895f3a1672eca7e80e8cda8bd1e29a80536b4ec2153fa9804 \ + --hash=sha256:ef551c053692b1e39e3f7950ce2296536728871110e7d75c4e7753fb30ca87f4 \ + --hash=sha256:ef6113cd31411eaf9b39fc5a8848e71c72656fd418882488598758b2c8c6dfa0 \ + --hash=sha256:f685dbc1fdadb1dcd5b5e51e0a378d4685a891b2ddaf8e2bba89bd3a7144e44a \ + --hash=sha256:f8ed79883b4328b7f0bd142733d99c8e6b22703e908ec63d930b06be3a0e7113 \ + --hash=sha256:fe56851c3f1d6f5384b3051c536cc81b3a93a73faf931f404fef95217cf1e10d \ + --hash=sha256:ff7c97eb7a29aba230389a2661edf2e9e06ce616c7e35aa764879b6894a44b25 # via pydantic pygments==2.17.2 \ --hash=sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c \ @@ -585,9 +583,9 @@ python-dateutil==2.8.2 \ # arrow # botocore # dateparser -python-slugify==8.0.3 \ - --hash=sha256:c71189c161e8c671f1b141034d9a56308a8a5978cd13d40446c879569212fdd1 \ - --hash=sha256:e04cba5f1c562502a1175c84a8bc23890c54cdaf23fccaaf0bf78511508cabed +python-slugify==8.0.4 \ + --hash=sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8 \ + --hash=sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856 # via cookiecutter pytz==2024.1 \ --hash=sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812 \ @@ -771,112 +769,112 @@ rich==13.7.0 \ # via # aws-sam-cli (setup.py) # cookiecutter -rpds-py==0.17.1 \ - --hash=sha256:01f58a7306b64e0a4fe042047dd2b7d411ee82e54240284bab63e325762c1147 \ - --hash=sha256:0210b2668f24c078307260bf88bdac9d6f1093635df5123789bfee4d8d7fc8e7 \ - --hash=sha256:02866e060219514940342a1f84303a1ef7a1dad0ac311792fbbe19b521b489d2 \ - --hash=sha256:0387ce69ba06e43df54e43968090f3626e231e4bc9150e4c3246947567695f68 \ - --hash=sha256:060f412230d5f19fc8c8b75f315931b408d8ebf56aec33ef4168d1b9e54200b1 \ - --hash=sha256:071bc28c589b86bc6351a339114fb7a029f5cddbaca34103aa573eba7b482382 \ - --hash=sha256:0bfb09bf41fe7c51413f563373e5f537eaa653d7adc4830399d4e9bdc199959d \ - --hash=sha256:10162fe3f5f47c37ebf6d8ff5a2368508fe22007e3077bf25b9c7d803454d921 \ - --hash=sha256:149c5cd24f729e3567b56e1795f74577aa3126c14c11e457bec1b1c90d212e38 \ - --hash=sha256:1701fc54460ae2e5efc1dd6350eafd7a760f516df8dbe51d4a1c79d69472fbd4 \ - --hash=sha256:1957a2ab607f9added64478a6982742eb29f109d89d065fa44e01691a20fc20a \ - --hash=sha256:1a746a6d49665058a5896000e8d9d2f1a6acba8a03b389c1e4c06e11e0b7f40d \ - --hash=sha256:1bfcad3109c1e5ba3cbe2f421614e70439f72897515a96c462ea657261b96518 \ - --hash=sha256:1d36b2b59e8cc6e576f8f7b671e32f2ff43153f0ad6d0201250a7c07f25d570e \ - --hash=sha256:1db228102ab9d1ff4c64148c96320d0be7044fa28bd865a9ce628ce98da5973d \ - --hash=sha256:1dc29db3900cb1bb40353772417800f29c3d078dbc8024fd64655a04ee3c4bdf \ - --hash=sha256:1e626b365293a2142a62b9a614e1f8e331b28f3ca57b9f05ebbf4cf2a0f0bdc5 \ - --hash=sha256:1f3c3461ebb4c4f1bbc70b15d20b565759f97a5aaf13af811fcefc892e9197ba \ - --hash=sha256:20de7b7179e2031a04042e85dc463a93a82bc177eeba5ddd13ff746325558aa6 \ - --hash=sha256:24e4900a6643f87058a27320f81336d527ccfe503984528edde4bb660c8c8d59 \ - --hash=sha256:2528ff96d09f12e638695f3a2e0c609c7b84c6df7c5ae9bfeb9252b6fa686253 \ - --hash=sha256:25f071737dae674ca8937a73d0f43f5a52e92c2d178330b4c0bb6ab05586ffa6 \ - --hash=sha256:270987bc22e7e5a962b1094953ae901395e8c1e1e83ad016c5cfcfff75a15a3f \ - --hash=sha256:292f7344a3301802e7c25c53792fae7d1593cb0e50964e7bcdcc5cf533d634e3 \ - --hash=sha256:2953937f83820376b5979318840f3ee47477d94c17b940fe31d9458d79ae7eea \ - --hash=sha256:2a792b2e1d3038daa83fa474d559acfd6dc1e3650ee93b2662ddc17dbff20ad1 \ - --hash=sha256:2a7b2f2f56a16a6d62e55354dd329d929560442bd92e87397b7a9586a32e3e76 \ - --hash=sha256:2f4eb548daf4836e3b2c662033bfbfc551db58d30fd8fe660314f86bf8510b93 \ - --hash=sha256:3664d126d3388a887db44c2e293f87d500c4184ec43d5d14d2d2babdb4c64cad \ - --hash=sha256:3677fcca7fb728c86a78660c7fb1b07b69b281964673f486ae72860e13f512ad \ - --hash=sha256:380e0df2e9d5d5d339803cfc6d183a5442ad7ab3c63c2a0982e8c824566c5ccc \ - --hash=sha256:3ac732390d529d8469b831949c78085b034bff67f584559340008d0f6041a049 \ - --hash=sha256:4128980a14ed805e1b91a7ed551250282a8ddf8201a4e9f8f5b7e6225f54170d \ - --hash=sha256:4341bd7579611cf50e7b20bb8c2e23512a3dc79de987a1f411cb458ab670eb90 \ - --hash=sha256:436474f17733c7dca0fbf096d36ae65277e8645039df12a0fa52445ca494729d \ - --hash=sha256:4dc889a9d8a34758d0fcc9ac86adb97bab3fb7f0c4d29794357eb147536483fd \ - --hash=sha256:4e21b76075c01d65d0f0f34302b5a7457d95721d5e0667aea65e5bb3ab415c25 \ - --hash=sha256:516fb8c77805159e97a689e2f1c80655c7658f5af601c34ffdb916605598cda2 \ - --hash=sha256:5576ee2f3a309d2bb403ec292d5958ce03953b0e57a11d224c1f134feaf8c40f \ - --hash=sha256:5a024fa96d541fd7edaa0e9d904601c6445e95a729a2900c5aec6555fe921ed6 \ - --hash=sha256:5d0e8a6434a3fbf77d11448c9c25b2f25244226cfbec1a5159947cac5b8c5fa4 \ - --hash=sha256:5e7d63ec01fe7c76c2dbb7e972fece45acbb8836e72682bde138e7e039906e2c \ - --hash=sha256:60e820ee1004327609b28db8307acc27f5f2e9a0b185b2064c5f23e815f248f8 \ - --hash=sha256:637b802f3f069a64436d432117a7e58fab414b4e27a7e81049817ae94de45d8d \ - --hash=sha256:65dcf105c1943cba45d19207ef51b8bc46d232a381e94dd38719d52d3980015b \ - --hash=sha256:698ea95a60c8b16b58be9d854c9f993c639f5c214cf9ba782eca53a8789d6b19 \ - --hash=sha256:70fcc6c2906cfa5c6a552ba7ae2ce64b6c32f437d8f3f8eea49925b278a61453 \ - --hash=sha256:720215373a280f78a1814becb1312d4e4d1077b1202a56d2b0815e95ccb99ce9 \ - --hash=sha256:7450dbd659fed6dd41d1a7d47ed767e893ba402af8ae664c157c255ec6067fde \ - --hash=sha256:7b7d9ca34542099b4e185b3c2a2b2eda2e318a7dbde0b0d83357a6d4421b5296 \ - --hash=sha256:7fbd70cb8b54fe745301921b0816c08b6d917593429dfc437fd024b5ba713c58 \ - --hash=sha256:81038ff87a4e04c22e1d81f947c6ac46f122e0c80460b9006e6517c4d842a6ec \ - --hash=sha256:810685321f4a304b2b55577c915bece4c4a06dfe38f6e62d9cc1d6ca8ee86b99 \ - --hash=sha256:82ada4a8ed9e82e443fcef87e22a3eed3654dd3adf6e3b3a0deb70f03e86142a \ - --hash=sha256:841320e1841bb53fada91c9725e766bb25009cfd4144e92298db296fb6c894fb \ - --hash=sha256:8587fd64c2a91c33cdc39d0cebdaf30e79491cc029a37fcd458ba863f8815383 \ - --hash=sha256:8ffe53e1d8ef2520ebcf0c9fec15bb721da59e8ef283b6ff3079613b1e30513d \ - --hash=sha256:9051e3d2af8f55b42061603e29e744724cb5f65b128a491446cc029b3e2ea896 \ - --hash=sha256:91e5a8200e65aaac342a791272c564dffcf1281abd635d304d6c4e6b495f29dc \ - --hash=sha256:93432e747fb07fa567ad9cc7aaadd6e29710e515aabf939dfbed8046041346c6 \ - --hash=sha256:938eab7323a736533f015e6069a7d53ef2dcc841e4e533b782c2bfb9fb12d84b \ - --hash=sha256:9584f8f52010295a4a417221861df9bea4c72d9632562b6e59b3c7b87a1522b7 \ - --hash=sha256:9737bdaa0ad33d34c0efc718741abaafce62fadae72c8b251df9b0c823c63b22 \ - --hash=sha256:99da0a4686ada4ed0f778120a0ea8d066de1a0a92ab0d13ae68492a437db78bf \ - --hash=sha256:99f567dae93e10be2daaa896e07513dd4bf9c2ecf0576e0533ac36ba3b1d5394 \ - --hash=sha256:9bdf1303df671179eaf2cb41e8515a07fc78d9d00f111eadbe3e14262f59c3d0 \ - --hash=sha256:9f0e4dc0f17dcea4ab9d13ac5c666b6b5337042b4d8f27e01b70fae41dd65c57 \ - --hash=sha256:a000133a90eea274a6f28adc3084643263b1e7c1a5a66eb0a0a7a36aa757ed74 \ - --hash=sha256:a3264e3e858de4fc601741498215835ff324ff2482fd4e4af61b46512dd7fc83 \ - --hash=sha256:a71169d505af63bb4d20d23a8fbd4c6ce272e7bce6cc31f617152aa784436f29 \ - --hash=sha256:a967dd6afda7715d911c25a6ba1517975acd8d1092b2f326718725461a3d33f9 \ - --hash=sha256:aa5bfb13f1e89151ade0eb812f7b0d7a4d643406caaad65ce1cbabe0a66d695f \ - --hash=sha256:ae35e8e6801c5ab071b992cb2da958eee76340e6926ec693b5ff7d6381441745 \ - --hash=sha256:b686f25377f9c006acbac63f61614416a6317133ab7fafe5de5f7dc8a06d42eb \ - --hash=sha256:b760a56e080a826c2e5af09002c1a037382ed21d03134eb6294812dda268c811 \ - --hash=sha256:b86b21b348f7e5485fae740d845c65a880f5d1eda1e063bc59bef92d1f7d0c55 \ - --hash=sha256:b9412abdf0ba70faa6e2ee6c0cc62a8defb772e78860cef419865917d86c7342 \ - --hash=sha256:bd345a13ce06e94c753dab52f8e71e5252aec1e4f8022d24d56decd31e1b9b23 \ - --hash=sha256:be22ae34d68544df293152b7e50895ba70d2a833ad9566932d750d3625918b82 \ - --hash=sha256:bf046179d011e6114daf12a534d874958b039342b347348a78b7cdf0dd9d6041 \ - --hash=sha256:c3d2010656999b63e628a3c694f23020322b4178c450dc478558a2b6ef3cb9bb \ - --hash=sha256:c64602e8be701c6cfe42064b71c84ce62ce66ddc6422c15463fd8127db3d8066 \ - --hash=sha256:d65e6b4f1443048eb7e833c2accb4fa7ee67cc7d54f31b4f0555b474758bee55 \ - --hash=sha256:d8bbd8e56f3ba25a7d0cf980fc42b34028848a53a0e36c9918550e0280b9d0b6 \ - --hash=sha256:da1ead63368c04a9bded7904757dfcae01eba0e0f9bc41d3d7f57ebf1c04015a \ - --hash=sha256:dbbb95e6fc91ea3102505d111b327004d1c4ce98d56a4a02e82cd451f9f57140 \ - --hash=sha256:dbc56680ecf585a384fbd93cd42bc82668b77cb525343170a2d86dafaed2a84b \ - --hash=sha256:df3b6f45ba4515632c5064e35ca7f31d51d13d1479673185ba8f9fefbbed58b9 \ - --hash=sha256:dfe07308b311a8293a0d5ef4e61411c5c20f682db6b5e73de6c7c8824272c256 \ - --hash=sha256:e796051f2070f47230c745d0a77a91088fbee2cc0502e9b796b9c6471983718c \ - --hash=sha256:efa767c220d94aa4ac3a6dd3aeb986e9f229eaf5bce92d8b1b3018d06bed3772 \ - --hash=sha256:f0b8bf5b8db49d8fd40f54772a1dcf262e8be0ad2ab0206b5a2ec109c176c0a4 \ - --hash=sha256:f175e95a197f6a4059b50757a3dca33b32b61691bdbd22c29e8a8d21d3914cae \ - --hash=sha256:f2f3b28b40fddcb6c1f1f6c88c6f3769cd933fa493ceb79da45968a21dccc920 \ - --hash=sha256:f6c43b6f97209e370124baf2bf40bb1e8edc25311a158867eb1c3a5d449ebc7a \ - --hash=sha256:f7f4cb1f173385e8a39c29510dd11a78bf44e360fb75610594973f5ea141028b \ - --hash=sha256:fad059a4bd14c45776600d223ec194e77db6c20255578bb5bcdd7c18fd169361 \ - --hash=sha256:ff1dcb8e8bc2261a088821b2595ef031c91d499a0c1b031c152d43fe0a6ecec8 \ - --hash=sha256:ffee088ea9b593cc6160518ba9bd319b5475e5f3e578e4552d63818773c6f56a +rpds-py==0.18.0 \ + --hash=sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f \ + --hash=sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c \ + --hash=sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76 \ + --hash=sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e \ + --hash=sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157 \ + --hash=sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f \ + --hash=sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5 \ + --hash=sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05 \ + --hash=sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24 \ + --hash=sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1 \ + --hash=sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8 \ + --hash=sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b \ + --hash=sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb \ + --hash=sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07 \ + --hash=sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1 \ + --hash=sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6 \ + --hash=sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e \ + --hash=sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e \ + --hash=sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1 \ + --hash=sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab \ + --hash=sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4 \ + --hash=sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17 \ + --hash=sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594 \ + --hash=sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d \ + --hash=sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d \ + --hash=sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3 \ + --hash=sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c \ + --hash=sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66 \ + --hash=sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f \ + --hash=sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80 \ + --hash=sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33 \ + --hash=sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f \ + --hash=sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c \ + --hash=sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022 \ + --hash=sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e \ + --hash=sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f \ + --hash=sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da \ + --hash=sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1 \ + --hash=sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688 \ + --hash=sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795 \ + --hash=sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c \ + --hash=sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98 \ + --hash=sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1 \ + --hash=sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20 \ + --hash=sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307 \ + --hash=sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4 \ + --hash=sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18 \ + --hash=sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294 \ + --hash=sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66 \ + --hash=sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467 \ + --hash=sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948 \ + --hash=sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e \ + --hash=sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1 \ + --hash=sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0 \ + --hash=sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7 \ + --hash=sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd \ + --hash=sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641 \ + --hash=sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d \ + --hash=sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9 \ + --hash=sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1 \ + --hash=sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da \ + --hash=sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3 \ + --hash=sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa \ + --hash=sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7 \ + --hash=sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40 \ + --hash=sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496 \ + --hash=sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124 \ + --hash=sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836 \ + --hash=sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434 \ + --hash=sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984 \ + --hash=sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f \ + --hash=sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6 \ + --hash=sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e \ + --hash=sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461 \ + --hash=sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c \ + --hash=sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432 \ + --hash=sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73 \ + --hash=sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58 \ + --hash=sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88 \ + --hash=sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337 \ + --hash=sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7 \ + --hash=sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863 \ + --hash=sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475 \ + --hash=sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3 \ + --hash=sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51 \ + --hash=sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf \ + --hash=sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024 \ + --hash=sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40 \ + --hash=sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9 \ + --hash=sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec \ + --hash=sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb \ + --hash=sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7 \ + --hash=sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861 \ + --hash=sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880 \ + --hash=sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f \ + --hash=sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd \ + --hash=sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca \ + --hash=sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58 \ + --hash=sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e # via # jsonschema # referencing -ruamel-yaml==0.18.5 \ - --hash=sha256:61917e3a35a569c1133a8f772e1226961bf5a1198bea7e23f06a0841dea1ab0e \ - --hash=sha256:a013ac02f99a69cdd6277d9664689eb1acba07069f912823177c5eced21a6ada +ruamel-yaml==0.18.6 \ + --hash=sha256:57b53ba33def16c4f3d807c0ccbc00f8a6081827e81ba2491691b76882d0c636 \ + --hash=sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b # via aws-sam-cli (setup.py) ruamel-yaml-clib==0.2.8 \ --hash=sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d \ @@ -991,9 +989,9 @@ typing-extensions==4.9.0 \ # mypy-boto3-xray # pydantic # pydantic-core -tzdata==2023.4 \ - --hash=sha256:aa3ace4329eeacda5b7beb7ea08ece826c28d761cda36e747cfbf97996d39bf3 \ - --hash=sha256:dd54c94f294765522c77399649b4fefd95522479a664a0cec87f41bebc6148c9 +tzdata==2024.1 \ + --hash=sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd \ + --hash=sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252 # via tzlocal tzlocal==5.2 \ --hash=sha256:49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8 \ @@ -1047,7 +1045,7 @@ wheel==0.42.0 \ # via aws-lambda-builders # The following packages are considered to be unsafe in a requirements file: -setuptools==69.0.3 \ - --hash=sha256:385eb4edd9c9d5c17540511303e39a147ce2fc04bc55289c322b9e5904fe2c05 \ - --hash=sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78 +setuptools==69.1.0 \ + --hash=sha256:850894c4195f09c4ed30dba56213bf7c3f21d86ed6bdaafb5df5972593bfc401 \ + --hash=sha256:c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 # via aws-lambda-builders diff --git a/samcli/__init__.py b/samcli/__init__.py index 513927b9d1..eb867b7cdf 100644 --- a/samcli/__init__.py +++ b/samcli/__init__.py @@ -2,4 +2,4 @@ SAM CLI version """ -__version__ = "1.109.0" +__version__ = "1.110.0" diff --git a/samcli/commands/_utils/options.py b/samcli/commands/_utils/options.py index e2a599979a..c81db4fefc 100644 --- a/samcli/commands/_utils/options.py +++ b/samcli/commands/_utils/options.py @@ -39,10 +39,9 @@ _TEMPLATE_OPTION_DEFAULT_VALUE = "template.[yaml|yml|json]" SUPPORTED_BUILD_IN_SOURCE_WORKFLOWS = [ - Runtime.nodejs12x.value, - Runtime.nodejs14x.value, Runtime.nodejs16x.value, Runtime.nodejs18x.value, + Runtime.nodejs20x.value, "Makefile", "esbuild", ] diff --git a/samcli/commands/build/command.py b/samcli/commands/build/command.py index 2f7cd00392..e2713e9e54 100644 --- a/samcli/commands/build/command.py +++ b/samcli/commands/build/command.py @@ -53,11 +53,11 @@ \b Supported Runtimes ------------------ - 1. Python 3.7, 3.8, 3.9, 3.10, 3.11, 3.12 using PIP\n + 1. Python 3.8, 3.9, 3.10, 3.11, 3.12 using PIP\n 2. Nodejs 20.x, 18.x, 16.x, 14.x, 12.x using NPM\n - 3. Ruby 2.7, 3.2 using Bundler\n + 3. Ruby 3.2 using Bundler\n 4. Java 8, Java 11, Java 17, Java 21 using Gradle and Maven\n - 5. Dotnet6 using Dotnet CLI (without --use-container)\n + 5. Dotnet8, Dotnet6 using Dotnet CLI\n 6. Go 1.x using Go Modules (without --use-container)\n """ diff --git a/samcli/commands/local/cli_common/options.py b/samcli/commands/local/cli_common/options.py index 8550a8ba95..939eafd3a3 100644 --- a/samcli/commands/local/cli_common/options.py +++ b/samcli/commands/local/cli_common/options.py @@ -92,9 +92,9 @@ def local_common_options(f): multiple=True, help="Container image URIs for invoking functions or starting api and function. " "One can specify the image URI used for the local function invocation " - "(--invoke-image public.ecr.aws/sam/build-nodejs14.x:latest). " + "(--invoke-image public.ecr.aws/sam/build-nodejs20.x:latest). " "One can also specify for each individual function with " - "(--invoke-image Function1=public.ecr.aws/sam/build-nodejs14.x:latest). " + "(--invoke-image Function1=public.ecr.aws/sam/build-nodejs20.x:latest). " "If a function does not have invoke image specified, the default AWS SAM CLI " "emulation image will be used.", ), diff --git a/samcli/commands/local/start_api/cli.py b/samcli/commands/local/start_api/cli.py index cba1ebe7ea..fc42468d9d 100644 --- a/samcli/commands/local/start_api/cli.py +++ b/samcli/commands/local/start_api/cli.py @@ -28,7 +28,7 @@ from samcli.commands.local.start_api.core.command import InvokeAPICommand from samcli.lib.telemetry.metric import track_command from samcli.lib.utils.version_checker import check_newer_version -from samcli.local.docker.exceptions import ContainerNotStartableException, PortAlreadyInUse +from samcli.local.docker.exceptions import ContainerNotStartableException, PortAlreadyInUse, ProcessSigTermException LOG = logging.getLogger(__name__) @@ -290,3 +290,5 @@ def do_cli( # pylint: disable=R0914 raise UserException(str(ex), wrapped_from=ex.__class__.__name__) from ex except ContainerNotStartableException as ex: raise UserException(str(ex), wrapped_from=ex.__class__.__name__) from ex + except ProcessSigTermException: + LOG.debug("Successfully exited SIGTERM terminated process") diff --git a/samcli/commands/local/start_lambda/cli.py b/samcli/commands/local/start_lambda/cli.py index 88a5078d7e..275afa7f1c 100644 --- a/samcli/commands/local/start_lambda/cli.py +++ b/samcli/commands/local/start_lambda/cli.py @@ -26,7 +26,7 @@ from samcli.commands.local.start_lambda.core.command import InvokeLambdaCommand from samcli.lib.telemetry.metric import track_command from samcli.lib.utils.version_checker import check_newer_version -from samcli.local.docker.exceptions import ContainerNotStartableException, PortAlreadyInUse +from samcli.local.docker.exceptions import ContainerNotStartableException, PortAlreadyInUse, ProcessSigTermException LOG = logging.getLogger(__name__) @@ -228,3 +228,5 @@ def do_cli( # pylint: disable=R0914 raise UserException(str(ex), wrapped_from=ex.__class__.__name__) from ex except ContainerNotStartableException as ex: raise UserException(str(ex), wrapped_from=ex.__class__.__name__) from ex + except ProcessSigTermException: + LOG.debug("Successfully exited SIGTERM terminated process") diff --git a/samcli/lib/build/constants.py b/samcli/lib/build/constants.py index 3f15a06dc7..5c8b4ebb11 100644 --- a/samcli/lib/build/constants.py +++ b/samcli/lib/build/constants.py @@ -9,11 +9,15 @@ "nodejs6.10", "nodejs8.10", "nodejs10.x", + "nodejs12.x", + "nodejs14.x", "dotnetcore2.0", "dotnetcore2.1", "dotnetcore3.1", "python2.7", "python3.6", + "python3.7", "ruby2.5", + "ruby2.7", } BUILD_PROPERTIES = "BuildProperties" diff --git a/samcli/lib/build/workflow_config.py b/samcli/lib/build/workflow_config.py index f13d02a3e6..d28c7fea97 100644 --- a/samcli/lib/build/workflow_config.py +++ b/samcli/lib/build/workflow_config.py @@ -85,7 +85,6 @@ def get_selector( def get_layer_subfolder(build_workflow: str) -> str: subfolders_by_runtime = { - "python3.7": "python", "python3.8": "python", "python3.9": "python", "python3.10": "python", @@ -94,12 +93,9 @@ def get_layer_subfolder(build_workflow: str) -> str: "nodejs4.3": "nodejs", "nodejs6.10": "nodejs", "nodejs8.10": "nodejs", - "nodejs12.x": "nodejs", - "nodejs14.x": "nodejs", "nodejs16.x": "nodejs", "nodejs18.x": "nodejs", "nodejs20.x": "nodejs", - "ruby2.7": "ruby/lib", "ruby3.2": "ruby/lib", "java8": "java", "java11": "java", @@ -107,6 +103,7 @@ def get_layer_subfolder(build_workflow: str) -> str: "java17": "java", "java21": "java", "dotnet6": "dotnet", + "dotnet8": "dotnet", # User is responsible for creating subfolder in these workflows "makefile": "", } @@ -139,7 +136,7 @@ def get_workflow_config( specified_workflow str Workflow to be used, if directly specified. They are currently scoped to "makefile" and the official runtime - identifier names themselves, eg: nodejs14.x. If a workflow is not directly specified, + identifier names themselves, eg: nodejs20.x. If a workflow is not directly specified, it is calculated by the current method based on the runtime. Returns @@ -155,20 +152,17 @@ def get_workflow_config( } selectors_by_runtime = { - "python3.7": BasicWorkflowSelector(PYTHON_PIP_CONFIG), "python3.8": BasicWorkflowSelector(PYTHON_PIP_CONFIG), "python3.9": BasicWorkflowSelector(PYTHON_PIP_CONFIG), "python3.10": BasicWorkflowSelector(PYTHON_PIP_CONFIG), "python3.11": BasicWorkflowSelector(PYTHON_PIP_CONFIG), "python3.12": BasicWorkflowSelector(PYTHON_PIP_CONFIG), - "nodejs12.x": BasicWorkflowSelector(NODEJS_NPM_CONFIG), - "nodejs14.x": BasicWorkflowSelector(NODEJS_NPM_CONFIG), "nodejs16.x": BasicWorkflowSelector(NODEJS_NPM_CONFIG), "nodejs18.x": BasicWorkflowSelector(NODEJS_NPM_CONFIG), "nodejs20.x": BasicWorkflowSelector(NODEJS_NPM_CONFIG), - "ruby2.7": BasicWorkflowSelector(RUBY_BUNDLER_CONFIG), "ruby3.2": BasicWorkflowSelector(RUBY_BUNDLER_CONFIG), "dotnet6": BasicWorkflowSelector(DOTNET_CLIPACKAGE_CONFIG), + "dotnet8": BasicWorkflowSelector(DOTNET_CLIPACKAGE_CONFIG), "go1.x": BasicWorkflowSelector(GO_MOD_CONFIG), # When Maven builder exists, add to this list so we can automatically choose a builder based on the supported # manifest diff --git a/samcli/lib/init/local_manifest.json b/samcli/lib/init/local_manifest.json index 462d8d4a8f..2f706700a2 100644 --- a/samcli/lib/init/local_manifest.json +++ b/samcli/lib/init/local_manifest.json @@ -73,7 +73,7 @@ "useCaseName": "Hello World Example" } ], - "nodejs14.x": [ + "nodejs20.x": [ { "directory": "template/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", @@ -83,7 +83,7 @@ "useCaseName": "Hello World Example" } ], - "nodejs12.x": [ + "nodejs18.x": [ { "directory": "template/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", @@ -93,17 +93,17 @@ "useCaseName": "Hello World Example" } ], - "python3.9": [ + "nodejs16.x": [ { - "directory": "template/cookiecutter-aws-sam-hello-python", + "directory": "template/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", - "dependencyManager": "pip", + "dependencyManager": "npm", "appTemplate": "hello-world", "packageType": "Zip", "useCaseName": "Hello World Example" } ], - "python3.8": [ + "python3.9": [ { "directory": "template/cookiecutter-aws-sam-hello-python", "displayName": "Hello World Example", @@ -113,7 +113,7 @@ "useCaseName": "Hello World Example" } ], - "python3.7": [ + "python3.8": [ { "directory": "template/cookiecutter-aws-sam-hello-python", "displayName": "Hello World Example", @@ -122,15 +122,5 @@ "packageType": "Zip", "useCaseName": "Hello World Example" } - ], - "ruby2.7": [ - { - "directory": "template/cookiecutter-aws-sam-hello-ruby", - "displayName": "Hello World Example", - "dependencyManager": "bundler", - "appTemplate": "hello-world", - "packageType": "Zip", - "useCaseName": "Hello World Example" - } ] } \ No newline at end of file diff --git a/samcli/lib/init/templates/cookiecutter-aws-sam-hello-nodejs/cookiecutter.json b/samcli/lib/init/templates/cookiecutter-aws-sam-hello-nodejs/cookiecutter.json index 2ece06eb4b..9f290d416e 100644 --- a/samcli/lib/init/templates/cookiecutter-aws-sam-hello-nodejs/cookiecutter.json +++ b/samcli/lib/init/templates/cookiecutter-aws-sam-hello-nodejs/cookiecutter.json @@ -1,6 +1,6 @@ { "project_name": "Name of the project", - "runtime": "nodejs12.x", + "runtime": "nodejs20.x", "architectures": { "value": [ "x86_64" diff --git a/samcli/lib/init/templates/cookiecutter-aws-sam-hello-python/README.md b/samcli/lib/init/templates/cookiecutter-aws-sam-hello-python/README.md index 25099da191..ed6ed6af1f 100644 --- a/samcli/lib/init/templates/cookiecutter-aws-sam-hello-python/README.md +++ b/samcli/lib/init/templates/cookiecutter-aws-sam-hello-python/README.md @@ -10,7 +10,6 @@ A cookiecutter template to create a Python Hello world boilerplate using [Server Generate a boilerplate template in your current project directory using the following syntax: -* **Python 3.7**: `sam init --runtime python3.7` * **Python 3.8**: `sam init --runtime python3.8` * **Python 3.9**: `sam init --runtime python3.9` diff --git a/samcli/lib/init/templates/cookiecutter-aws-sam-hello-ruby/README.md b/samcli/lib/init/templates/cookiecutter-aws-sam-hello-ruby/README.md index 797eaf66e9..5363664200 100644 --- a/samcli/lib/init/templates/cookiecutter-aws-sam-hello-ruby/README.md +++ b/samcli/lib/init/templates/cookiecutter-aws-sam-hello-ruby/README.md @@ -10,7 +10,7 @@ A cookiecutter template to create a Ruby Hello world boilerplate using [Serverle Generate a boilerplate template in your current project directory using the following syntax: -* **Ruby 2.5**: `sam init --runtime ruby2.5` +* **Ruby 3.2**: `sam init --runtime ruby3.2` > **NOTE**: ``--name`` allows you to specify a different project folder name (`sam-app` is the default) diff --git a/samcli/lib/init/templates/cookiecutter-aws-sam-hello-ruby/cookiecutter.json b/samcli/lib/init/templates/cookiecutter-aws-sam-hello-ruby/cookiecutter.json index 01db12539b..d4e65b301d 100644 --- a/samcli/lib/init/templates/cookiecutter-aws-sam-hello-ruby/cookiecutter.json +++ b/samcli/lib/init/templates/cookiecutter-aws-sam-hello-ruby/cookiecutter.json @@ -1,6 +1,6 @@ { "project_name": "Name of the project", - "runtime": "ruby2.5", + "runtime": "ruby3.2", "architectures": { "value": [ "x86_64" diff --git a/samcli/lib/providers/sam_stack_provider.py b/samcli/lib/providers/sam_stack_provider.py index 0f9b174f95..d27ad19a8f 100644 --- a/samcli/lib/providers/sam_stack_provider.py +++ b/samcli/lib/providers/sam_stack_provider.py @@ -349,9 +349,9 @@ def normalize_resource_path(stack_file_path: str, path: str) -> str: * symlinks on Windows might not work properly. https://stackoverflow.com/questions/43333640/python-os-path-realpath-for-symlink-in-windows - For example, using Python 3.7, realpath() is a no-op (same as abspath): + For example, using Python 3.8, realpath() is a no-op (same as abspath): ``` - Python 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 08:53:46) [MSC v.1916 64 bit (AMD64)] on win32 + Python 3.8.8 (tags/v3.8.8:4b47a5b6ba, Jun 28 2020, 08:53:46) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> os.symlink('some\\path', 'link1') diff --git a/samcli/lib/sync/sync_flow_executor.py b/samcli/lib/sync/sync_flow_executor.py index 3d43d74189..db73abc528 100644 --- a/samcli/lib/sync/sync_flow_executor.py +++ b/samcli/lib/sync/sync_flow_executor.py @@ -4,6 +4,7 @@ import time from concurrent.futures import Future, ThreadPoolExecutor from dataclasses import dataclass +from datetime import datetime from queue import Queue from threading import RLock from typing import Callable, List, Optional, Set @@ -311,8 +312,12 @@ def _handle_result( sync_flow_result: SyncFlowResult = future.result() for dependent_sync_flow in sync_flow_result.dependent_sync_flows: self.add_sync_flow(dependent_sync_flow) + message = ( + f"{datetime.now().strftime('%d/%b/%Y:%H:%M:%S')}: " + f"Finished syncing {sync_flow_result.sync_flow.log_name}." + ) LOG.info( - self._color.color_log(msg=f"Finished syncing {sync_flow_result.sync_flow.log_name}.", color="green"), + self._color.color_log(msg=message, color="green"), extra=dict(markup=True), ) return True diff --git a/samcli/lib/utils/architecture.py b/samcli/lib/utils/architecture.py index 25cff8888a..b420a3eaee 100644 --- a/samcli/lib/utils/architecture.py +++ b/samcli/lib/utils/architecture.py @@ -15,18 +15,14 @@ ARM64 = "arm64" SUPPORTED_RUNTIMES: Dict[str, List[str]] = { - "nodejs12.x": [ARM64, X86_64], - "nodejs14.x": [ARM64, X86_64], "nodejs16.x": [ARM64, X86_64], "nodejs18.x": [ARM64, X86_64], "nodejs20.x": [ARM64, X86_64], - "python3.7": [X86_64], "python3.8": [ARM64, X86_64], "python3.9": [ARM64, X86_64], "python3.10": [ARM64, X86_64], "python3.11": [ARM64, X86_64], "python3.12": [ARM64, X86_64], - "ruby2.7": [ARM64, X86_64], "ruby3.2": [ARM64, X86_64], "java8": [X86_64], "java8.al2": [ARM64, X86_64], @@ -35,6 +31,7 @@ "java21": [ARM64, X86_64], "go1.x": [X86_64], "dotnet6": [ARM64, X86_64], + "dotnet8": [ARM64, X86_64], "provided": [X86_64], "provided.al2": [ARM64, X86_64], "provided.al2023": [ARM64, X86_64], diff --git a/samcli/local/common/runtime_template.py b/samcli/local/common/runtime_template.py index 94fe22d754..d223dfe771 100644 --- a/samcli/local/common/runtime_template.py +++ b/samcli/local/common/runtime_template.py @@ -16,7 +16,7 @@ RUNTIME_DEP_TEMPLATE_MAPPING = { "python": [ { - "runtimes": ["python3.12", "python3.11", "python3.10", "python3.9", "python3.8", "python3.7"], + "runtimes": ["python3.12", "python3.11", "python3.10", "python3.9", "python3.8"], "dependency_manager": "pip", "init_location": os.path.join(_templates, "cookiecutter-aws-sam-hello-python"), "build": True, @@ -24,7 +24,7 @@ ], "ruby": [ { - "runtimes": ["ruby3.2", "ruby2.7"], + "runtimes": ["ruby3.2"], "dependency_manager": "bundler", "init_location": os.path.join(_templates, "cookiecutter-aws-sam-hello-ruby"), "build": True, @@ -32,7 +32,7 @@ ], "nodejs": [ { - "runtimes": ["nodejs20.x", "nodejs18.x", "nodejs16.x", "nodejs14.x", "nodejs12.x"], + "runtimes": ["nodejs20.x", "nodejs18.x", "nodejs16.x"], "dependency_manager": "npm", "init_location": os.path.join(_templates, "cookiecutter-aws-sam-hello-nodejs"), "build": True, @@ -40,7 +40,7 @@ ], "dotnet": [ { - "runtimes": ["dotnet6"], + "runtimes": ["dotnet8", "dotnet6"], "dependency_manager": "cli-package", "init_location": os.path.join(_templates, "cookiecutter-aws-sam-hello-dotnet"), "build": True, @@ -99,7 +99,9 @@ def get_local_lambda_images_location(mapping, runtime): # Runtimes are ordered in alphabetical fashion with reverse version order (latest versions first) INIT_RUNTIMES = [ # dotnet runtimes in descending order + "dotnet8", "dotnet6", + # go runtimes in descending order "go1.x", # java runtimes in descending order "java21", @@ -111,8 +113,6 @@ def get_local_lambda_images_location(mapping, runtime): "nodejs20.x", "nodejs18.x", "nodejs16.x", - "nodejs14.x", - "nodejs12.x", # custom runtime in descending order "provided.al2023", "provided.al2", @@ -123,14 +123,13 @@ def get_local_lambda_images_location(mapping, runtime): "python3.10", "python3.9", "python3.8", - "python3.7", # ruby runtimes in descending order "ruby3.2", - "ruby2.7", ] LAMBDA_IMAGES_RUNTIMES_MAP = { + "dotnet8": "amazon/dotnet8-base", "dotnet6": "amazon/dotnet6-base", "go1.x": "amazon/go1.x-base", "go (provided.al2)": "amazon/go-provided.al2-base", @@ -143,16 +142,12 @@ def get_local_lambda_images_location(mapping, runtime): "nodejs20.x": "amazon/nodejs20.x-base", "nodejs18.x": "amazon/nodejs18.x-base", "nodejs16.x": "amazon/nodejs16.x-base", - "nodejs14.x": "amazon/nodejs14.x-base", - "nodejs12.x": "amazon/nodejs12.x-base", "python3.12": "amazon/python3.12-base", "python3.11": "amazon/python3.11-base", "python3.10": "amazon/python3.10-base", "python3.9": "amazon/python3.9-base", "python3.8": "amazon/python3.8-base", - "python3.7": "amazon/python3.7-base", "ruby3.2": "amazon/ruby3.2-base", - "ruby2.7": "amazon/ruby2.7-base", } LAMBDA_IMAGES_RUNTIMES: List = sorted(list(set(LAMBDA_IMAGES_RUNTIMES_MAP.values()))) @@ -166,13 +161,13 @@ def get_local_lambda_images_location(mapping, runtime): "java11": "Java8", "java17": "Java8", "java21": "Java8", - "python3.7": "Python36", "python3.8": "Python36", "python3.9": "Python36", "python3.10": "Python36", "python3.11": "Python36", "python3.12": "Python36", "dotnet6": "dotnet6", + "dotnet8": "dotnet6", "go1.x": "Go1", } diff --git a/samcli/local/docker/exceptions.py b/samcli/local/docker/exceptions.py index cc00698083..6ff7ad3850 100644 --- a/samcli/local/docker/exceptions.py +++ b/samcli/local/docker/exceptions.py @@ -25,3 +25,15 @@ class ContainerFailureError(UserException): """ Raised when the invoke container fails execution """ + + +class ProcessSigTermException(Exception): + """ + Raises by a SIGTERM interrupt handler. Will unblock the thread and exit the program gracefully + """ + + +class InvalidRuntimeException(UserException): + """ + Raised when an invalid runtime is specified for a Lambda Function + """ diff --git a/samcli/local/docker/lambda_container.py b/samcli/local/docker/lambda_container.py index 3eea56c72d..609d5bfbb3 100644 --- a/samcli/local/docker/lambda_container.py +++ b/samcli/local/docker/lambda_container.py @@ -7,6 +7,7 @@ from typing import List from samcli.lib.utils.packagetype import IMAGE +from samcli.local.docker.exceptions import InvalidRuntimeException from samcli.local.docker.lambda_debug_settings import LambdaDebugSettings from .container import DEFAULT_CONTAINER_HOST_INTERFACE, Container @@ -15,6 +16,7 @@ LOG = logging.getLogger(__name__) RIE_LOG_LEVEL_ENV_VAR = "SAM_CLI_RIE_DEV" +INVALID_RUNTIME_MESSAGE = "Unsupported Lambda runtime: {runtime}. For a list of supported runtimes, please visit https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html" class LambdaContainer(Container): @@ -95,7 +97,7 @@ def __init__( Optional. The function full path, unique in all stacks """ if not Runtime.has_value(runtime) and not packagetype == IMAGE: - raise ValueError("Unsupported Lambda runtime {}".format(runtime)) + raise InvalidRuntimeException(INVALID_RUNTIME_MESSAGE.format(runtime=runtime)) image = LambdaContainer._get_image( lambda_image, runtime, packagetype, imageuri, layers, architecture, function_full_path diff --git a/samcli/local/docker/lambda_debug_settings.py b/samcli/local/docker/lambda_debug_settings.py index 05956e0eac..13bb82ccc5 100644 --- a/samcli/local/docker/lambda_debug_settings.py +++ b/samcli/local/docker/lambda_debug_settings.py @@ -107,6 +107,10 @@ def get_debug_settings(debug_port, debug_args_list, _container_env_vars, runtime entry + ["/var/runtime/bootstrap"] + debug_args_list, container_env_vars={"_AWS_LAMBDA_DOTNET_DEBUGGING": "1", **_container_env_vars}, ), + Runtime.dotnet8.value: lambda: DebugSettings( + entry + ["/var/runtime/bootstrap"] + debug_args_list, + container_env_vars={"_AWS_LAMBDA_DOTNET_DEBUGGING": "1", **_container_env_vars}, + ), Runtime.go1x.value: lambda: DebugSettings( entry, container_env_vars={ @@ -117,34 +121,6 @@ def get_debug_settings(debug_port, debug_args_list, _container_env_vars, runtime **_container_env_vars, }, ), - Runtime.nodejs12x.value: lambda: DebugSettings( - entry - + ["/var/lang/bin/node"] - + debug_args_list - + ["--no-lazy", "--expose-gc"] - + ["/var/runtime/index.js"], - container_env_vars={ - "NODE_PATH": "/opt/nodejs/node_modules:/opt/nodejs/node12/node_modules:/var/runtime/node_modules:" - "/var/runtime:/var/task", - "NODE_OPTIONS": f"--inspect-brk=0.0.0.0:{str(debug_port)} --max-http-header-size 81920", - "AWS_EXECUTION_ENV": "AWS_Lambda_nodejs12.x", - **_container_env_vars, - }, - ), - Runtime.nodejs14x.value: lambda: DebugSettings( - entry - + ["/var/lang/bin/node"] - + debug_args_list - + ["--no-lazy", "--expose-gc"] - + ["/var/runtime/index.js"], - container_env_vars={ - "NODE_PATH": "/opt/nodejs/node_modules:/opt/nodejs/node14/node_modules:/var/runtime/node_modules:" - "/var/runtime:/var/task", - "NODE_OPTIONS": f"--inspect-brk=0.0.0.0:{str(debug_port)} --max-http-header-size 81920", - "AWS_EXECUTION_ENV": "AWS_Lambda_nodejs14.x", - **_container_env_vars, - }, - ), Runtime.nodejs16x.value: lambda: DebugSettings( entry + ["/var/lang/bin/node"] @@ -187,10 +163,6 @@ def get_debug_settings(debug_port, debug_args_list, _container_env_vars, runtime **_container_env_vars, }, ), - Runtime.python37.value: lambda: DebugSettings( - entry + ["/var/lang/bin/python3.7"] + debug_args_list + ["/var/runtime/bootstrap"], - container_env_vars=_container_env_vars, - ), Runtime.python38.value: lambda: DebugSettings( entry + ["/var/lang/bin/python3.8"] + debug_args_list + ["/var/runtime/bootstrap.py"], container_env_vars=_container_env_vars, diff --git a/samcli/local/docker/lambda_image.py b/samcli/local/docker/lambda_image.py index b2546de7a3..8ed1bfd6e4 100644 --- a/samcli/local/docker/lambda_image.py +++ b/samcli/local/docker/lambda_image.py @@ -33,18 +33,14 @@ class Runtime(Enum): - nodejs12x = "nodejs12.x" - nodejs14x = "nodejs14.x" nodejs16x = "nodejs16.x" nodejs18x = "nodejs18.x" nodejs20x = "nodejs20.x" - python37 = "python3.7" python38 = "python3.8" python39 = "python3.9" python310 = "python3.10" python311 = "python3.11" python312 = "python3.12" - ruby27 = "ruby2.7" ruby32 = "ruby3.2" java8 = "java8" java8al2 = "java8.al2" @@ -53,6 +49,7 @@ class Runtime(Enum): java21 = "java21" go1x = "go1.x" dotnet6 = "dotnet6" + dotnet8 = "dotnet8" provided = "provided" providedal2 = "provided.al2" providedal2023 = "provided.al2023" @@ -82,7 +79,7 @@ def get_image_name_tag(cls, runtime: str, architecture: str) -> str: Returns ------- str - Image name and tag for the runtime's base image, like `python:3.7` or `provided:al2` + Image name and tag for the runtime's base image, like `python:3.12` or `provided:al2` """ runtime_image_tag = "" if runtime == cls.provided.value: @@ -97,7 +94,7 @@ def get_image_name_tag(cls, runtime: str, architecture: str) -> str: else: # This fits most runtimes format: `nameN.M` becomes `name:N.M` (python3.9 -> python:3.9) runtime_image_tag = re.sub(r"^([a-z]+)([0-9][a-z0-9\.]*)$", r"\1:\2", runtime) - # nodejs14.x, go1.x, etc don't have the `.x` part. + # nodejs20.x, go1.x, etc don't have the `.x` part. runtime_image_tag = runtime_image_tag.replace(".x", "") # Runtime image tags contain the architecture only if more than one is supported for that runtime @@ -169,7 +166,7 @@ def build(self, runtime, packagetype, image, layers, architecture, stream=None, if self.invoke_images: base_image = self.invoke_images.get(function_name, self.invoke_images.get(None)) if not base_image: - # Gets the ECR image format like `python:3.7` or `nodejs:16-x86_64` + # Gets the ECR image format like `python:3.12` or `nodejs:16-x86_64` runtime_only_number = re.split("[:-]", runtime_image_tag)[1] tag_prefix = f"{runtime_only_number}-" base_image = f"{self._INVOKE_REPO_PREFIX}/{runtime_image_tag}" @@ -265,7 +262,7 @@ def _generate_docker_image_version(layers, runtime_image_tag): List of the layers runtime_image_tag str - Runtime version format to generate image name and tag (including architecture, e.g. "python:3.7-x86_64") + Runtime version format to generate image name and tag (including architecture, e.g. "python:3.12-x86_64") Returns ------- diff --git a/samcli/local/lambdafn/runtime.py b/samcli/local/lambdafn/runtime.py index 5cc276becf..83af384dcf 100644 --- a/samcli/local/lambdafn/runtime.py +++ b/samcli/local/lambdafn/runtime.py @@ -49,6 +49,7 @@ def __init__(self, container_manager, image_builder): self._container_manager = container_manager self._image_builder = image_builder self._temp_uncompressed_paths_to_be_cleaned = [] + self._lock = threading.Lock() def create( self, function_config, debug_context=None, container_host=None, container_host_interface=None, extra_hosts=None @@ -353,9 +354,10 @@ def _clean_decompressed_paths(self): Clean the temporary decompressed code dirs """ LOG.debug("Cleaning all decompressed code dirs") - for decompressed_dir in self._temp_uncompressed_paths_to_be_cleaned: - shutil.rmtree(decompressed_dir) - self._temp_uncompressed_paths_to_be_cleaned = [] + with self._lock: + for decompressed_dir in self._temp_uncompressed_paths_to_be_cleaned: + shutil.rmtree(decompressed_dir) + self._temp_uncompressed_paths_to_be_cleaned = [] class WarmLambdaRuntime(LambdaRuntime): diff --git a/samcli/local/services/base_local_service.py b/samcli/local/services/base_local_service.py index 638d55c17b..b2033c91f4 100644 --- a/samcli/local/services/base_local_service.py +++ b/samcli/local/services/base_local_service.py @@ -3,10 +3,13 @@ import io import json import logging +import signal from typing import Optional, Tuple, Union from flask import Response +from samcli.local.docker.exceptions import ProcessSigTermException + LOG = logging.getLogger(__name__) @@ -66,6 +69,13 @@ def run(self): flask.cli.show_server_banner = lambda *args: None + def interrupt_handler(sig, frame): + LOG.debug("Caught SIGTERM interrupt") + raise ProcessSigTermException() + + LOG.debug("Setting SIGTERM interrupt handler") + signal.signal(signal.SIGTERM, interrupt_handler) + self._app.run(threaded=multi_threaded, host=self.host, port=self.port, ssl_context=self.ssl_context) @staticmethod diff --git a/samcli/runtime_config.json b/samcli/runtime_config.json index e80b128a36..aebd1cedd0 100644 --- a/samcli/runtime_config.json +++ b/samcli/runtime_config.json @@ -1,3 +1,3 @@ { - "app_template_repo_commit": "8aa3d54040f6c970cf57bdc6292078e067c83a4e" + "app_template_repo_commit": "54427ad6bd6773f9b0d434a416414aa9d2982178" } diff --git a/schema/samcli.json b/schema/samcli.json index 3dca17f259..d006978ef1 100644 --- a/schema/samcli.json +++ b/schema/samcli.json @@ -23,7 +23,7 @@ "properties": { "parameters": { "title": "Parameters for the init command", - "description": "Available parameters for the init command:\n* no_interactive:\nDisable interactive prompting for init parameters. (fail if any required values are missing)\n* architecture:\nArchitectures for Lambda functions.\n\nArchitectures: ['arm64', 'x86_64']\n* location:\nTemplate location (git, mercurial, http(s), zip, path).\n* runtime:\nLambda runtime for application.\n\nRuntimes: dotnet6, go1.x, java21, java17, java11, java8.al2, java8, nodejs20.x, nodejs18.x, nodejs16.x, nodejs14.x, nodejs12.x, provided, provided.al2, provided.al2023, python3.9, python3.8, python3.7, python3.12, python3.11, python3.10, ruby3.2, ruby2.7\n* package_type:\nLambda deployment package type.\n\nPackage Types: Zip, Image\n* base_image:\nLambda base image for deploying IMAGE based package type.\n\nBase images: amazon/dotnet6-base, amazon/go-provided.al2-base, amazon/go-provided.al2023-base, amazon/go1.x-base, amazon/java11-base, amazon/java17-base, amazon/java21-base, amazon/java8-base, amazon/java8.al2-base, amazon/nodejs12.x-base, amazon/nodejs14.x-base, amazon/nodejs16.x-base, amazon/nodejs18.x-base, amazon/nodejs20.x-base, amazon/python3.10-base, amazon/python3.11-base, amazon/python3.12-base, amazon/python3.7-base, amazon/python3.8-base, amazon/python3.9-base, amazon/ruby2.7-base, amazon/ruby3.2-base\n* dependency_manager:\nDependency manager for Lambda runtime.\n\nDependency managers: bundler, cli-package, gradle, maven, mod, npm, pip\n* output_dir:\nDirectory to initialize AWS SAM application.\n* name:\nName of AWS SAM Application.\n* app_template:\nIdentifier of the managed application template to be used. Alternatively, run '$sam init' without options for an interactive workflow.\n* no_input:\nDisable Cookiecutter prompting and accept default values defined in the cookiecutter config.\n* extra_context:\nOverride custom parameters in the template's cookiecutter.json configuration e.g. {\"customParam1\": \"customValue1\", \"customParam2\":\"customValue2\"}\n* tracing:\nEnable AWS X-Ray tracing for application.\n* application_insights:\nEnable CloudWatch Application Insights monitoring for application.\n* structured_logging:\nEnable Structured Logging for application.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* save_params:\nSave the parameters provided via the command line to the configuration file.", + "description": "Available parameters for the init command:\n* no_interactive:\nDisable interactive prompting for init parameters. (fail if any required values are missing)\n* architecture:\nArchitectures for Lambda functions.\n\nArchitectures: ['arm64', 'x86_64']\n* location:\nTemplate location (git, mercurial, http(s), zip, path).\n* runtime:\nLambda runtime for application.\n\nRuntimes: dotnet8, dotnet6, go1.x, java21, java17, java11, java8.al2, java8, nodejs20.x, nodejs18.x, nodejs16.x, provided, provided.al2, provided.al2023, python3.9, python3.8, python3.12, python3.11, python3.10, ruby3.2\n* package_type:\nLambda deployment package type.\n\nPackage Types: Zip, Image\n* base_image:\nLambda base image for deploying IMAGE based package type.\n\nBase images: amazon/dotnet6-base, amazon/dotnet8-base, amazon/go-provided.al2-base, amazon/go-provided.al2023-base, amazon/go1.x-base, amazon/java11-base, amazon/java17-base, amazon/java21-base, amazon/java8-base, amazon/java8.al2-base, amazon/nodejs16.x-base, amazon/nodejs18.x-base, amazon/nodejs20.x-base, amazon/python3.10-base, amazon/python3.11-base, amazon/python3.12-base, amazon/python3.8-base, amazon/python3.9-base, amazon/ruby3.2-base\n* dependency_manager:\nDependency manager for Lambda runtime.\n\nDependency managers: bundler, cli-package, gradle, maven, mod, npm, pip\n* output_dir:\nDirectory to initialize AWS SAM application.\n* name:\nName of AWS SAM Application.\n* app_template:\nIdentifier of the managed application template to be used. Alternatively, run '$sam init' without options for an interactive workflow.\n* no_input:\nDisable Cookiecutter prompting and accept default values defined in the cookiecutter config.\n* extra_context:\nOverride custom parameters in the template's cookiecutter.json configuration e.g. {\"customParam1\": \"customValue1\", \"customParam2\":\"customValue2\"}\n* tracing:\nEnable AWS X-Ray tracing for application.\n* application_insights:\nEnable CloudWatch Application Insights monitoring for application.\n* structured_logging:\nEnable Structured Logging for application.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* save_params:\nSave the parameters provided via the command line to the configuration file.", "type": "object", "properties": { "no_interactive": { @@ -48,17 +48,16 @@ "runtime": { "title": "runtime", "type": "string", - "description": "Lambda runtime for application.\n\nRuntimes: dotnet6, go1.x, java21, java17, java11, java8.al2, java8, nodejs20.x, nodejs18.x, nodejs16.x, nodejs14.x, nodejs12.x, provided, provided.al2, provided.al2023, python3.9, python3.8, python3.7, python3.12, python3.11, python3.10, ruby3.2, ruby2.7", + "description": "Lambda runtime for application.\n\nRuntimes: dotnet8, dotnet6, go1.x, java21, java17, java11, java8.al2, java8, nodejs20.x, nodejs18.x, nodejs16.x, provided, provided.al2, provided.al2023, python3.9, python3.8, python3.12, python3.11, python3.10, ruby3.2", "enum": [ "dotnet6", + "dotnet8", "go1.x", "java11", "java17", "java21", "java8", "java8.al2", - "nodejs12.x", - "nodejs14.x", "nodejs16.x", "nodejs18.x", "nodejs20.x", @@ -68,10 +67,8 @@ "python3.10", "python3.11", "python3.12", - "python3.7", "python3.8", "python3.9", - "ruby2.7", "ruby3.2" ] }, @@ -87,9 +84,10 @@ "base_image": { "title": "base_image", "type": "string", - "description": "Lambda base image for deploying IMAGE based package type.\n\nBase images: amazon/dotnet6-base, amazon/go-provided.al2-base, amazon/go-provided.al2023-base, amazon/go1.x-base, amazon/java11-base, amazon/java17-base, amazon/java21-base, amazon/java8-base, amazon/java8.al2-base, amazon/nodejs12.x-base, amazon/nodejs14.x-base, amazon/nodejs16.x-base, amazon/nodejs18.x-base, amazon/nodejs20.x-base, amazon/python3.10-base, amazon/python3.11-base, amazon/python3.12-base, amazon/python3.7-base, amazon/python3.8-base, amazon/python3.9-base, amazon/ruby2.7-base, amazon/ruby3.2-base", + "description": "Lambda base image for deploying IMAGE based package type.\n\nBase images: amazon/dotnet6-base, amazon/dotnet8-base, amazon/go-provided.al2-base, amazon/go-provided.al2023-base, amazon/go1.x-base, amazon/java11-base, amazon/java17-base, amazon/java21-base, amazon/java8-base, amazon/java8.al2-base, amazon/nodejs16.x-base, amazon/nodejs18.x-base, amazon/nodejs20.x-base, amazon/python3.10-base, amazon/python3.11-base, amazon/python3.12-base, amazon/python3.8-base, amazon/python3.9-base, amazon/ruby3.2-base", "enum": [ "amazon/dotnet6-base", + "amazon/dotnet8-base", "amazon/go-provided.al2-base", "amazon/go-provided.al2023-base", "amazon/go1.x-base", @@ -98,18 +96,14 @@ "amazon/java21-base", "amazon/java8-base", "amazon/java8.al2-base", - "amazon/nodejs12.x-base", - "amazon/nodejs14.x-base", "amazon/nodejs16.x-base", "amazon/nodejs18.x-base", "amazon/nodejs20.x-base", "amazon/python3.10-base", "amazon/python3.11-base", "amazon/python3.12-base", - "amazon/python3.7-base", "amazon/python3.8-base", "amazon/python3.9-base", - "amazon/ruby2.7-base", "amazon/ruby3.2-base" ] }, @@ -248,7 +242,7 @@ "properties": { "parameters": { "title": "Parameters for the build command", - "description": "Available parameters for the build command:\n* terraform_project_root_path:\nUsed for passing the Terraform project root directory path. Current directory will be used as a default value, if this parameter is not provided.\n* hook_name:\nHook package id to extend AWS SAM CLI commands functionality. \n\nExample: `terraform` to extend AWS SAM CLI commands functionality to support terraform applications. \n\nAvailable Hook Names: ['terraform']\n* skip_prepare_infra:\nSkip preparation stage when there are no infrastructure changes. Only used in conjunction with --hook-name.\n* use_container:\nBuild functions within an AWS Lambda-like container.\n* build_in_source:\nOpts in to build project in the source folder. The following workflows support building in source: ['nodejs12.x', 'nodejs14.x', 'nodejs16.x', 'nodejs18.x', 'Makefile', 'esbuild']\n* container_env_var:\nEnvironment variables to be passed into build containers\nResource format (FuncName.VarName=Value) or Global format (VarName=Value).\n\n Example: --container-env-var Func1.VAR1=value1 --container-env-var VAR2=value2\n* container_env_var_file:\nEnvironment variables json file (e.g., env_vars.json) to be passed to build containers.\n* build_image:\nContainer image URIs for building functions/layers. You can specify for all functions/layers with just the image URI (--build-image public.ecr.aws/sam/build-nodejs18.x:latest). You can specify for each individual function with (--build-image FunctionLogicalID=public.ecr.aws/sam/build-nodejs18.x:latest). A combination of the two can be used. If a function does not have build image specified or an image URI for all functions, the default SAM CLI build images will be used.\n* exclude:\nName of the resource(s) to exclude from AWS SAM CLI build.\n* parallel:\nEnable parallel builds for AWS SAM template's functions and layers.\n* mount_with:\nSpecify mount mode for building functions/layers inside container. If it is mounted with write permissions, some files in source code directory may be changed/added by the build process. By default the source code directory is read only.\n* build_dir:\nDirectory to store build artifacts.Note: This directory will be first removed before starting a build.\n* cache_dir:\nDirectory to store cached artifacts. The default cache directory is .aws-sam/cache\n* base_dir:\nResolve relative paths to function's source code with respect to this directory. Use this if SAM template and source code are not in same enclosing folder. By default, relative paths are resolved with respect to the SAM template's location.\n* manifest:\nPath to a custom dependency manifest. Example: custom-package.json\n* cached:\nEnable cached builds.Reuse build artifacts that have not changed from previous builds. \n\nAWS SAM CLI evaluates if files in your project directory have changed. \n\nNote: AWS SAM CLI does not evaluate changes made to third party modules that the project depends on.Example: Python function includes a requirements.txt file with the following entry requests=1.x and the latest request module version changes from 1.1 to 1.2, AWS SAM CLI will not pull the latest version until a non-cached build is run.\n* template_file:\nAWS SAM template file.\n* parameter_overrides:\nString that contains AWS CloudFormation parameter overrides encoded as key=value pairs.\n* skip_pull_image:\nSkip pulling down the latest Docker image for Lambda runtime.\n* docker_network:\nName or ID of an existing docker network for AWS Lambda docker containers to connect to, along with the default bridge network. If not specified, the Lambda containers will only connect to the default bridge docker network.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* profile:\nSelect a specific profile from your credential file to get AWS credentials.\n* region:\nSet the AWS Region of the service. (e.g. us-east-1)\n* save_params:\nSave the parameters provided via the command line to the configuration file.", + "description": "Available parameters for the build command:\n* terraform_project_root_path:\nUsed for passing the Terraform project root directory path. Current directory will be used as a default value, if this parameter is not provided.\n* hook_name:\nHook package id to extend AWS SAM CLI commands functionality. \n\nExample: `terraform` to extend AWS SAM CLI commands functionality to support terraform applications. \n\nAvailable Hook Names: ['terraform']\n* skip_prepare_infra:\nSkip preparation stage when there are no infrastructure changes. Only used in conjunction with --hook-name.\n* use_container:\nBuild functions within an AWS Lambda-like container.\n* build_in_source:\nOpts in to build project in the source folder. The following workflows support building in source: ['nodejs16.x', 'nodejs18.x', 'nodejs20.x', 'Makefile', 'esbuild']\n* container_env_var:\nEnvironment variables to be passed into build containers\nResource format (FuncName.VarName=Value) or Global format (VarName=Value).\n\n Example: --container-env-var Func1.VAR1=value1 --container-env-var VAR2=value2\n* container_env_var_file:\nEnvironment variables json file (e.g., env_vars.json) to be passed to build containers.\n* build_image:\nContainer image URIs for building functions/layers. You can specify for all functions/layers with just the image URI (--build-image public.ecr.aws/sam/build-nodejs18.x:latest). You can specify for each individual function with (--build-image FunctionLogicalID=public.ecr.aws/sam/build-nodejs18.x:latest). A combination of the two can be used. If a function does not have build image specified or an image URI for all functions, the default SAM CLI build images will be used.\n* exclude:\nName of the resource(s) to exclude from AWS SAM CLI build.\n* parallel:\nEnable parallel builds for AWS SAM template's functions and layers.\n* mount_with:\nSpecify mount mode for building functions/layers inside container. If it is mounted with write permissions, some files in source code directory may be changed/added by the build process. By default the source code directory is read only.\n* build_dir:\nDirectory to store build artifacts.Note: This directory will be first removed before starting a build.\n* cache_dir:\nDirectory to store cached artifacts. The default cache directory is .aws-sam/cache\n* base_dir:\nResolve relative paths to function's source code with respect to this directory. Use this if SAM template and source code are not in same enclosing folder. By default, relative paths are resolved with respect to the SAM template's location.\n* manifest:\nPath to a custom dependency manifest. Example: custom-package.json\n* cached:\nEnable cached builds.Reuse build artifacts that have not changed from previous builds. \n\nAWS SAM CLI evaluates if files in your project directory have changed. \n\nNote: AWS SAM CLI does not evaluate changes made to third party modules that the project depends on.Example: Python function includes a requirements.txt file with the following entry requests=1.x and the latest request module version changes from 1.1 to 1.2, AWS SAM CLI will not pull the latest version until a non-cached build is run.\n* template_file:\nAWS SAM template file.\n* parameter_overrides:\nString that contains AWS CloudFormation parameter overrides encoded as key=value pairs.\n* skip_pull_image:\nSkip pulling down the latest Docker image for Lambda runtime.\n* docker_network:\nName or ID of an existing docker network for AWS Lambda docker containers to connect to, along with the default bridge network. If not specified, the Lambda containers will only connect to the default bridge docker network.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* profile:\nSelect a specific profile from your credential file to get AWS credentials.\n* region:\nSet the AWS Region of the service. (e.g. us-east-1)\n* save_params:\nSave the parameters provided via the command line to the configuration file.", "type": "object", "properties": { "terraform_project_root_path": { @@ -274,7 +268,7 @@ "build_in_source": { "title": "build_in_source", "type": "boolean", - "description": "Opts in to build project in the source folder. The following workflows support building in source: ['nodejs12.x', 'nodejs14.x', 'nodejs16.x', 'nodejs18.x', 'Makefile', 'esbuild']" + "description": "Opts in to build project in the source folder. The following workflows support building in source: ['nodejs16.x', 'nodejs18.x', 'nodejs20.x', 'Makefile', 'esbuild']" }, "container_env_var": { "title": "container_env_var", @@ -403,7 +397,7 @@ "properties": { "parameters": { "title": "Parameters for the local invoke command", - "description": "Available parameters for the local invoke command:\n* terraform_plan_file:\nUsed for passing a custom plan file when executing the Terraform hook.\n* hook_name:\nHook package id to extend AWS SAM CLI commands functionality. \n\nExample: `terraform` to extend AWS SAM CLI commands functionality to support terraform applications. \n\nAvailable Hook Names: ['terraform']\n* skip_prepare_infra:\nSkip preparation stage when there are no infrastructure changes. Only used in conjunction with --hook-name.\n* event:\nJSON file containing event data passed to the Lambda function during invoke. If this option is not specified, no event is assumed. Pass in the value '-' to input JSON via stdin\n* no_event:\nDEPRECATED: By default no event is assumed.\n* template_file:\nAWS SAM template which references built artifacts for resources in the template. (if applicable)\n* env_vars:\nJSON file containing values for Lambda function's environment variables.\n* parameter_overrides:\nString that contains AWS CloudFormation parameter overrides encoded as key=value pairs.\n* debug_port:\nWhen specified, Lambda function container will start in debug mode and will expose this port on localhost.\n* debugger_path:\nHost path to a debugger that will be mounted into the Lambda container.\n* debug_args:\nAdditional arguments to be passed to the debugger.\n* container_env_vars:\nJSON file containing additional environment variables to be set within the container when used in a debugging session locally.\n* docker_volume_basedir:\nSpecify the location basedir where the SAM template exists. If Docker is running on a remote machine, Path of the SAM template must be mounted on the Docker machine and modified to match the remote machine.\n* log_file:\nFile to capture output logs.\n* layer_cache_basedir:\nSpecify the location basedir where the lambda layers used by the template will be downloaded to.\n* skip_pull_image:\nSkip pulling down the latest Docker image for Lambda runtime.\n* docker_network:\nName or ID of an existing docker network for AWS Lambda docker containers to connect to, along with the default bridge network. If not specified, the Lambda containers will only connect to the default bridge docker network.\n* force_image_build:\nForce rebuilding the image used for invoking functions with layers.\n* shutdown:\nEmulate a shutdown event after invoke completes, to test extension handling of shutdown behavior.\n* container_host:\nHost of locally emulated Lambda container. This option is useful when the container runs on a different host than AWS SAM CLI. For example, if one wants to run AWS SAM CLI in a Docker container on macOS, this option could specify `host.docker.internal`\n* container_host_interface:\nIP address of the host network interface that container ports should bind to. Use 0.0.0.0 to bind to all interfaces.\n* add_host:\nPasses a hostname to IP address mapping to the Docker container's host file. This parameter can be passed multiple times.Example:--add-host example.com:127.0.0.1\n* invoke_image:\nContainer image URIs for invoking functions or starting api and function. One can specify the image URI used for the local function invocation (--invoke-image public.ecr.aws/sam/build-nodejs14.x:latest). One can also specify for each individual function with (--invoke-image Function1=public.ecr.aws/sam/build-nodejs14.x:latest). If a function does not have invoke image specified, the default AWS SAM CLI emulation image will be used.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* profile:\nSelect a specific profile from your credential file to get AWS credentials.\n* region:\nSet the AWS Region of the service. (e.g. us-east-1)\n* save_params:\nSave the parameters provided via the command line to the configuration file.", + "description": "Available parameters for the local invoke command:\n* terraform_plan_file:\nUsed for passing a custom plan file when executing the Terraform hook.\n* hook_name:\nHook package id to extend AWS SAM CLI commands functionality. \n\nExample: `terraform` to extend AWS SAM CLI commands functionality to support terraform applications. \n\nAvailable Hook Names: ['terraform']\n* skip_prepare_infra:\nSkip preparation stage when there are no infrastructure changes. Only used in conjunction with --hook-name.\n* event:\nJSON file containing event data passed to the Lambda function during invoke. If this option is not specified, no event is assumed. Pass in the value '-' to input JSON via stdin\n* no_event:\nDEPRECATED: By default no event is assumed.\n* template_file:\nAWS SAM template which references built artifacts for resources in the template. (if applicable)\n* env_vars:\nJSON file containing values for Lambda function's environment variables.\n* parameter_overrides:\nString that contains AWS CloudFormation parameter overrides encoded as key=value pairs.\n* debug_port:\nWhen specified, Lambda function container will start in debug mode and will expose this port on localhost.\n* debugger_path:\nHost path to a debugger that will be mounted into the Lambda container.\n* debug_args:\nAdditional arguments to be passed to the debugger.\n* container_env_vars:\nJSON file containing additional environment variables to be set within the container when used in a debugging session locally.\n* docker_volume_basedir:\nSpecify the location basedir where the SAM template exists. If Docker is running on a remote machine, Path of the SAM template must be mounted on the Docker machine and modified to match the remote machine.\n* log_file:\nFile to capture output logs.\n* layer_cache_basedir:\nSpecify the location basedir where the lambda layers used by the template will be downloaded to.\n* skip_pull_image:\nSkip pulling down the latest Docker image for Lambda runtime.\n* docker_network:\nName or ID of an existing docker network for AWS Lambda docker containers to connect to, along with the default bridge network. If not specified, the Lambda containers will only connect to the default bridge docker network.\n* force_image_build:\nForce rebuilding the image used for invoking functions with layers.\n* shutdown:\nEmulate a shutdown event after invoke completes, to test extension handling of shutdown behavior.\n* container_host:\nHost of locally emulated Lambda container. This option is useful when the container runs on a different host than AWS SAM CLI. For example, if one wants to run AWS SAM CLI in a Docker container on macOS, this option could specify `host.docker.internal`\n* container_host_interface:\nIP address of the host network interface that container ports should bind to. Use 0.0.0.0 to bind to all interfaces.\n* add_host:\nPasses a hostname to IP address mapping to the Docker container's host file. This parameter can be passed multiple times.Example:--add-host example.com:127.0.0.1\n* invoke_image:\nContainer image URIs for invoking functions or starting api and function. One can specify the image URI used for the local function invocation (--invoke-image public.ecr.aws/sam/build-nodejs20.x:latest). One can also specify for each individual function with (--invoke-image Function1=public.ecr.aws/sam/build-nodejs20.x:latest). If a function does not have invoke image specified, the default AWS SAM CLI emulation image will be used.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* profile:\nSelect a specific profile from your credential file to get AWS credentials.\n* region:\nSet the AWS Region of the service. (e.g. us-east-1)\n* save_params:\nSave the parameters provided via the command line to the configuration file.", "type": "object", "properties": { "terraform_plan_file": { @@ -532,7 +526,7 @@ "invoke_image": { "title": "invoke_image", "type": "string", - "description": "Container image URIs for invoking functions or starting api and function. One can specify the image URI used for the local function invocation (--invoke-image public.ecr.aws/sam/build-nodejs14.x:latest). One can also specify for each individual function with (--invoke-image Function1=public.ecr.aws/sam/build-nodejs14.x:latest). If a function does not have invoke image specified, the default AWS SAM CLI emulation image will be used." + "description": "Container image URIs for invoking functions or starting api and function. One can specify the image URI used for the local function invocation (--invoke-image public.ecr.aws/sam/build-nodejs20.x:latest). One can also specify for each individual function with (--invoke-image Function1=public.ecr.aws/sam/build-nodejs20.x:latest). If a function does not have invoke image specified, the default AWS SAM CLI emulation image will be used." }, "beta_features": { "title": "beta_features", @@ -572,7 +566,7 @@ "properties": { "parameters": { "title": "Parameters for the local start api command", - "description": "Available parameters for the local start api command:\n* terraform_plan_file:\nUsed for passing a custom plan file when executing the Terraform hook.\n* hook_name:\nHook package id to extend AWS SAM CLI commands functionality. \n\nExample: `terraform` to extend AWS SAM CLI commands functionality to support terraform applications. \n\nAvailable Hook Names: ['terraform']\n* skip_prepare_infra:\nSkip preparation stage when there are no infrastructure changes. Only used in conjunction with --hook-name.\n* host:\nLocal hostname or IP address to bind to (default: '127.0.0.1')\n* port:\nLocal port number to listen on (default: '3000')\n* static_dir:\nAny static assets (e.g. CSS/Javascript/HTML) files located in this directory will be presented at /\n* disable_authorizer:\nDisable custom Lambda Authorizers from being parsed and invoked.\n* ssl_cert_file:\nPath to SSL certificate file (default: None)\n* ssl_key_file:\nPath to SSL key file (default: None)\n* template_file:\nAWS SAM template which references built artifacts for resources in the template. (if applicable)\n* env_vars:\nJSON file containing values for Lambda function's environment variables.\n* parameter_overrides:\nString that contains AWS CloudFormation parameter overrides encoded as key=value pairs.\n* debug_port:\nWhen specified, Lambda function container will start in debug mode and will expose this port on localhost.\n* debugger_path:\nHost path to a debugger that will be mounted into the Lambda container.\n* debug_args:\nAdditional arguments to be passed to the debugger.\n* container_env_vars:\nJSON file containing additional environment variables to be set within the container when used in a debugging session locally.\n* docker_volume_basedir:\nSpecify the location basedir where the SAM template exists. If Docker is running on a remote machine, Path of the SAM template must be mounted on the Docker machine and modified to match the remote machine.\n* log_file:\nFile to capture output logs.\n* layer_cache_basedir:\nSpecify the location basedir where the lambda layers used by the template will be downloaded to.\n* skip_pull_image:\nSkip pulling down the latest Docker image for Lambda runtime.\n* docker_network:\nName or ID of an existing docker network for AWS Lambda docker containers to connect to, along with the default bridge network. If not specified, the Lambda containers will only connect to the default bridge docker network.\n* force_image_build:\nForce rebuilding the image used for invoking functions with layers.\n* warm_containers:\nOptional. Specifies how AWS SAM CLI manages \ncontainers for each function.\nTwo modes are available:\nEAGER: Containers for all functions are \nloaded at startup and persist between \ninvocations.\nLAZY: Containers are only loaded when each \nfunction is first invoked. Those containers \npersist for additional invocations.\n* debug_function:\nOptional. Specifies the Lambda Function logicalId to apply debug options to when --warm-containers is specified. This parameter applies to --debug-port, --debugger-path, and --debug-args.\n* shutdown:\nEmulate a shutdown event after invoke completes, to test extension handling of shutdown behavior.\n* container_host:\nHost of locally emulated Lambda container. This option is useful when the container runs on a different host than AWS SAM CLI. For example, if one wants to run AWS SAM CLI in a Docker container on macOS, this option could specify `host.docker.internal`\n* container_host_interface:\nIP address of the host network interface that container ports should bind to. Use 0.0.0.0 to bind to all interfaces.\n* add_host:\nPasses a hostname to IP address mapping to the Docker container's host file. This parameter can be passed multiple times.Example:--add-host example.com:127.0.0.1\n* invoke_image:\nContainer image URIs for invoking functions or starting api and function. One can specify the image URI used for the local function invocation (--invoke-image public.ecr.aws/sam/build-nodejs14.x:latest). One can also specify for each individual function with (--invoke-image Function1=public.ecr.aws/sam/build-nodejs14.x:latest). If a function does not have invoke image specified, the default AWS SAM CLI emulation image will be used.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* profile:\nSelect a specific profile from your credential file to get AWS credentials.\n* region:\nSet the AWS Region of the service. (e.g. us-east-1)\n* save_params:\nSave the parameters provided via the command line to the configuration file.", + "description": "Available parameters for the local start api command:\n* terraform_plan_file:\nUsed for passing a custom plan file when executing the Terraform hook.\n* hook_name:\nHook package id to extend AWS SAM CLI commands functionality. \n\nExample: `terraform` to extend AWS SAM CLI commands functionality to support terraform applications. \n\nAvailable Hook Names: ['terraform']\n* skip_prepare_infra:\nSkip preparation stage when there are no infrastructure changes. Only used in conjunction with --hook-name.\n* host:\nLocal hostname or IP address to bind to (default: '127.0.0.1')\n* port:\nLocal port number to listen on (default: '3000')\n* static_dir:\nAny static assets (e.g. CSS/Javascript/HTML) files located in this directory will be presented at /\n* disable_authorizer:\nDisable custom Lambda Authorizers from being parsed and invoked.\n* ssl_cert_file:\nPath to SSL certificate file (default: None)\n* ssl_key_file:\nPath to SSL key file (default: None)\n* template_file:\nAWS SAM template which references built artifacts for resources in the template. (if applicable)\n* env_vars:\nJSON file containing values for Lambda function's environment variables.\n* parameter_overrides:\nString that contains AWS CloudFormation parameter overrides encoded as key=value pairs.\n* debug_port:\nWhen specified, Lambda function container will start in debug mode and will expose this port on localhost.\n* debugger_path:\nHost path to a debugger that will be mounted into the Lambda container.\n* debug_args:\nAdditional arguments to be passed to the debugger.\n* container_env_vars:\nJSON file containing additional environment variables to be set within the container when used in a debugging session locally.\n* docker_volume_basedir:\nSpecify the location basedir where the SAM template exists. If Docker is running on a remote machine, Path of the SAM template must be mounted on the Docker machine and modified to match the remote machine.\n* log_file:\nFile to capture output logs.\n* layer_cache_basedir:\nSpecify the location basedir where the lambda layers used by the template will be downloaded to.\n* skip_pull_image:\nSkip pulling down the latest Docker image for Lambda runtime.\n* docker_network:\nName or ID of an existing docker network for AWS Lambda docker containers to connect to, along with the default bridge network. If not specified, the Lambda containers will only connect to the default bridge docker network.\n* force_image_build:\nForce rebuilding the image used for invoking functions with layers.\n* warm_containers:\nOptional. Specifies how AWS SAM CLI manages \ncontainers for each function.\nTwo modes are available:\nEAGER: Containers for all functions are \nloaded at startup and persist between \ninvocations.\nLAZY: Containers are only loaded when each \nfunction is first invoked. Those containers \npersist for additional invocations.\n* debug_function:\nOptional. Specifies the Lambda Function logicalId to apply debug options to when --warm-containers is specified. This parameter applies to --debug-port, --debugger-path, and --debug-args.\n* shutdown:\nEmulate a shutdown event after invoke completes, to test extension handling of shutdown behavior.\n* container_host:\nHost of locally emulated Lambda container. This option is useful when the container runs on a different host than AWS SAM CLI. For example, if one wants to run AWS SAM CLI in a Docker container on macOS, this option could specify `host.docker.internal`\n* container_host_interface:\nIP address of the host network interface that container ports should bind to. Use 0.0.0.0 to bind to all interfaces.\n* add_host:\nPasses a hostname to IP address mapping to the Docker container's host file. This parameter can be passed multiple times.Example:--add-host example.com:127.0.0.1\n* invoke_image:\nContainer image URIs for invoking functions or starting api and function. One can specify the image URI used for the local function invocation (--invoke-image public.ecr.aws/sam/build-nodejs20.x:latest). One can also specify for each individual function with (--invoke-image Function1=public.ecr.aws/sam/build-nodejs20.x:latest). If a function does not have invoke image specified, the default AWS SAM CLI emulation image will be used.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* profile:\nSelect a specific profile from your credential file to get AWS credentials.\n* region:\nSet the AWS Region of the service. (e.g. us-east-1)\n* save_params:\nSave the parameters provided via the command line to the configuration file.", "type": "object", "properties": { "terraform_plan_file": { @@ -737,7 +731,7 @@ "invoke_image": { "title": "invoke_image", "type": "string", - "description": "Container image URIs for invoking functions or starting api and function. One can specify the image URI used for the local function invocation (--invoke-image public.ecr.aws/sam/build-nodejs14.x:latest). One can also specify for each individual function with (--invoke-image Function1=public.ecr.aws/sam/build-nodejs14.x:latest). If a function does not have invoke image specified, the default AWS SAM CLI emulation image will be used." + "description": "Container image URIs for invoking functions or starting api and function. One can specify the image URI used for the local function invocation (--invoke-image public.ecr.aws/sam/build-nodejs20.x:latest). One can also specify for each individual function with (--invoke-image Function1=public.ecr.aws/sam/build-nodejs20.x:latest). If a function does not have invoke image specified, the default AWS SAM CLI emulation image will be used." }, "beta_features": { "title": "beta_features", @@ -792,7 +786,7 @@ "properties": { "parameters": { "title": "Parameters for the local start lambda command", - "description": "Available parameters for the local start lambda command:\n* terraform_plan_file:\nUsed for passing a custom plan file when executing the Terraform hook.\n* hook_name:\nHook package id to extend AWS SAM CLI commands functionality. \n\nExample: `terraform` to extend AWS SAM CLI commands functionality to support terraform applications. \n\nAvailable Hook Names: ['terraform']\n* skip_prepare_infra:\nSkip preparation stage when there are no infrastructure changes. Only used in conjunction with --hook-name.\n* host:\nLocal hostname or IP address to bind to (default: '127.0.0.1')\n* port:\nLocal port number to listen on (default: '3001')\n* template_file:\nAWS SAM template which references built artifacts for resources in the template. (if applicable)\n* env_vars:\nJSON file containing values for Lambda function's environment variables.\n* parameter_overrides:\nString that contains AWS CloudFormation parameter overrides encoded as key=value pairs.\n* debug_port:\nWhen specified, Lambda function container will start in debug mode and will expose this port on localhost.\n* debugger_path:\nHost path to a debugger that will be mounted into the Lambda container.\n* debug_args:\nAdditional arguments to be passed to the debugger.\n* container_env_vars:\nJSON file containing additional environment variables to be set within the container when used in a debugging session locally.\n* docker_volume_basedir:\nSpecify the location basedir where the SAM template exists. If Docker is running on a remote machine, Path of the SAM template must be mounted on the Docker machine and modified to match the remote machine.\n* log_file:\nFile to capture output logs.\n* layer_cache_basedir:\nSpecify the location basedir where the lambda layers used by the template will be downloaded to.\n* skip_pull_image:\nSkip pulling down the latest Docker image for Lambda runtime.\n* docker_network:\nName or ID of an existing docker network for AWS Lambda docker containers to connect to, along with the default bridge network. If not specified, the Lambda containers will only connect to the default bridge docker network.\n* force_image_build:\nForce rebuilding the image used for invoking functions with layers.\n* warm_containers:\nOptional. Specifies how AWS SAM CLI manages \ncontainers for each function.\nTwo modes are available:\nEAGER: Containers for all functions are \nloaded at startup and persist between \ninvocations.\nLAZY: Containers are only loaded when each \nfunction is first invoked. Those containers \npersist for additional invocations.\n* debug_function:\nOptional. Specifies the Lambda Function logicalId to apply debug options to when --warm-containers is specified. This parameter applies to --debug-port, --debugger-path, and --debug-args.\n* shutdown:\nEmulate a shutdown event after invoke completes, to test extension handling of shutdown behavior.\n* container_host:\nHost of locally emulated Lambda container. This option is useful when the container runs on a different host than AWS SAM CLI. For example, if one wants to run AWS SAM CLI in a Docker container on macOS, this option could specify `host.docker.internal`\n* container_host_interface:\nIP address of the host network interface that container ports should bind to. Use 0.0.0.0 to bind to all interfaces.\n* add_host:\nPasses a hostname to IP address mapping to the Docker container's host file. This parameter can be passed multiple times.Example:--add-host example.com:127.0.0.1\n* invoke_image:\nContainer image URIs for invoking functions or starting api and function. One can specify the image URI used for the local function invocation (--invoke-image public.ecr.aws/sam/build-nodejs14.x:latest). One can also specify for each individual function with (--invoke-image Function1=public.ecr.aws/sam/build-nodejs14.x:latest). If a function does not have invoke image specified, the default AWS SAM CLI emulation image will be used.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* profile:\nSelect a specific profile from your credential file to get AWS credentials.\n* region:\nSet the AWS Region of the service. (e.g. us-east-1)\n* save_params:\nSave the parameters provided via the command line to the configuration file.", + "description": "Available parameters for the local start lambda command:\n* terraform_plan_file:\nUsed for passing a custom plan file when executing the Terraform hook.\n* hook_name:\nHook package id to extend AWS SAM CLI commands functionality. \n\nExample: `terraform` to extend AWS SAM CLI commands functionality to support terraform applications. \n\nAvailable Hook Names: ['terraform']\n* skip_prepare_infra:\nSkip preparation stage when there are no infrastructure changes. Only used in conjunction with --hook-name.\n* host:\nLocal hostname or IP address to bind to (default: '127.0.0.1')\n* port:\nLocal port number to listen on (default: '3001')\n* template_file:\nAWS SAM template which references built artifacts for resources in the template. (if applicable)\n* env_vars:\nJSON file containing values for Lambda function's environment variables.\n* parameter_overrides:\nString that contains AWS CloudFormation parameter overrides encoded as key=value pairs.\n* debug_port:\nWhen specified, Lambda function container will start in debug mode and will expose this port on localhost.\n* debugger_path:\nHost path to a debugger that will be mounted into the Lambda container.\n* debug_args:\nAdditional arguments to be passed to the debugger.\n* container_env_vars:\nJSON file containing additional environment variables to be set within the container when used in a debugging session locally.\n* docker_volume_basedir:\nSpecify the location basedir where the SAM template exists. If Docker is running on a remote machine, Path of the SAM template must be mounted on the Docker machine and modified to match the remote machine.\n* log_file:\nFile to capture output logs.\n* layer_cache_basedir:\nSpecify the location basedir where the lambda layers used by the template will be downloaded to.\n* skip_pull_image:\nSkip pulling down the latest Docker image for Lambda runtime.\n* docker_network:\nName or ID of an existing docker network for AWS Lambda docker containers to connect to, along with the default bridge network. If not specified, the Lambda containers will only connect to the default bridge docker network.\n* force_image_build:\nForce rebuilding the image used for invoking functions with layers.\n* warm_containers:\nOptional. Specifies how AWS SAM CLI manages \ncontainers for each function.\nTwo modes are available:\nEAGER: Containers for all functions are \nloaded at startup and persist between \ninvocations.\nLAZY: Containers are only loaded when each \nfunction is first invoked. Those containers \npersist for additional invocations.\n* debug_function:\nOptional. Specifies the Lambda Function logicalId to apply debug options to when --warm-containers is specified. This parameter applies to --debug-port, --debugger-path, and --debug-args.\n* shutdown:\nEmulate a shutdown event after invoke completes, to test extension handling of shutdown behavior.\n* container_host:\nHost of locally emulated Lambda container. This option is useful when the container runs on a different host than AWS SAM CLI. For example, if one wants to run AWS SAM CLI in a Docker container on macOS, this option could specify `host.docker.internal`\n* container_host_interface:\nIP address of the host network interface that container ports should bind to. Use 0.0.0.0 to bind to all interfaces.\n* add_host:\nPasses a hostname to IP address mapping to the Docker container's host file. This parameter can be passed multiple times.Example:--add-host example.com:127.0.0.1\n* invoke_image:\nContainer image URIs for invoking functions or starting api and function. One can specify the image URI used for the local function invocation (--invoke-image public.ecr.aws/sam/build-nodejs20.x:latest). One can also specify for each individual function with (--invoke-image Function1=public.ecr.aws/sam/build-nodejs20.x:latest). If a function does not have invoke image specified, the default AWS SAM CLI emulation image will be used.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* profile:\nSelect a specific profile from your credential file to get AWS credentials.\n* region:\nSet the AWS Region of the service. (e.g. us-east-1)\n* save_params:\nSave the parameters provided via the command line to the configuration file.", "type": "object", "properties": { "terraform_plan_file": { @@ -936,7 +930,7 @@ "invoke_image": { "title": "invoke_image", "type": "string", - "description": "Container image URIs for invoking functions or starting api and function. One can specify the image URI used for the local function invocation (--invoke-image public.ecr.aws/sam/build-nodejs14.x:latest). One can also specify for each individual function with (--invoke-image Function1=public.ecr.aws/sam/build-nodejs14.x:latest). If a function does not have invoke image specified, the default AWS SAM CLI emulation image will be used." + "description": "Container image URIs for invoking functions or starting api and function. One can specify the image URI used for the local function invocation (--invoke-image public.ecr.aws/sam/build-nodejs20.x:latest). One can also specify for each individual function with (--invoke-image Function1=public.ecr.aws/sam/build-nodejs20.x:latest). If a function does not have invoke image specified, the default AWS SAM CLI emulation image will be used." }, "beta_features": { "title": "beta_features", @@ -1564,7 +1558,7 @@ "properties": { "parameters": { "title": "Parameters for the sync command", - "description": "Available parameters for the sync command:\n* template_file:\nAWS SAM template file.\n* code:\nSync ONLY code resources. This includes Lambda Functions, API Gateway, and Step Functions.\n* watch:\nWatch local files and automatically sync with cloud.\n* resource_id:\nSync code for all the resources with the ID. To sync a resource within a nested stack, use the following pattern {ChildStack}/{logicalId}.\n* resource:\nSync code for all resources of the given resource type. Accepted values are ['AWS::Serverless::Function', 'AWS::Lambda::Function', 'AWS::Serverless::LayerVersion', 'AWS::Lambda::LayerVersion', 'AWS::Serverless::Api', 'AWS::ApiGateway::RestApi', 'AWS::Serverless::HttpApi', 'AWS::ApiGatewayV2::Api', 'AWS::Serverless::StateMachine', 'AWS::StepFunctions::StateMachine']\n* dependency_layer:\nSeparate dependencies of individual function into a Lambda layer for improved performance.\n* skip_deploy_sync:\nThis option will skip the initial infrastructure deployment if it is not required by comparing the local template with the template deployed in cloud.\n* watch_exclude:\nExcludes a file or folder from being observed for file changes. Files and folders that are excluded will not trigger a sync workflow. This option can be provided multiple times.\n\nExamples:\n\nHelloWorldFunction=package-lock.json\n\nChildStackA/FunctionName=database.sqlite3\n* stack_name:\nName of the AWS CloudFormation stack.\n* base_dir:\nResolve relative paths to function's source code with respect to this directory. Use this if SAM template and source code are not in same enclosing folder. By default, relative paths are resolved with respect to the SAM template's location.\n* use_container:\nBuild functions within an AWS Lambda-like container.\n* build_in_source:\nOpts in to build project in the source folder. The following workflows support building in source: ['nodejs12.x', 'nodejs14.x', 'nodejs16.x', 'nodejs18.x', 'Makefile', 'esbuild']\n* build_image:\nContainer image URIs for building functions/layers. You can specify for all functions/layers with just the image URI (--build-image public.ecr.aws/sam/build-nodejs18.x:latest). You can specify for each individual function with (--build-image FunctionLogicalID=public.ecr.aws/sam/build-nodejs18.x:latest). A combination of the two can be used. If a function does not have build image specified or an image URI for all functions, the default SAM CLI build images will be used.\n* image_repository:\nAWS ECR repository URI where artifacts referenced in the template are uploaded.\n* image_repositories:\nMapping of Function Logical ID to AWS ECR Repository URI.\n\nExample: Function_Logical_ID=ECR_Repo_Uri\nThis option can be specified multiple times.\n* s3_bucket:\nAWS S3 bucket where artifacts referenced in the template are uploaded.\n* s3_prefix:\nPrefix name that is added to the artifact's name when it is uploaded to the AWS S3 bucket.\n* kms_key_id:\nThe ID of an AWS KMS key that is used to encrypt artifacts that are at rest in the AWS S3 bucket.\n* role_arn:\nARN of an IAM role that AWS Cloudformation assumes when executing a deployment change set.\n* parameter_overrides:\nString that contains AWS CloudFormation parameter overrides encoded as key=value pairs.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* profile:\nSelect a specific profile from your credential file to get AWS credentials.\n* region:\nSet the AWS Region of the service. (e.g. us-east-1)\n* metadata:\nMap of metadata to attach to ALL the artifacts that are referenced in the template.\n* notification_arns:\nARNs of SNS topics that AWS Cloudformation associates with the stack.\n* tags:\nList of tags to associate with the stack.\n* capabilities:\nList of capabilities that one must specify before AWS Cloudformation can create certain stacks.\n\nAccepted Values: CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_RESOURCE_POLICY, CAPABILITY_AUTO_EXPAND.\n\nLearn more at: https://docs.aws.amazon.com/serverlessrepo/latest/devguide/acknowledging-application-capabilities.html\n* save_params:\nSave the parameters provided via the command line to the configuration file.", + "description": "Available parameters for the sync command:\n* template_file:\nAWS SAM template file.\n* code:\nSync ONLY code resources. This includes Lambda Functions, API Gateway, and Step Functions.\n* watch:\nWatch local files and automatically sync with cloud.\n* resource_id:\nSync code for all the resources with the ID. To sync a resource within a nested stack, use the following pattern {ChildStack}/{logicalId}.\n* resource:\nSync code for all resources of the given resource type. Accepted values are ['AWS::Serverless::Function', 'AWS::Lambda::Function', 'AWS::Serverless::LayerVersion', 'AWS::Lambda::LayerVersion', 'AWS::Serverless::Api', 'AWS::ApiGateway::RestApi', 'AWS::Serverless::HttpApi', 'AWS::ApiGatewayV2::Api', 'AWS::Serverless::StateMachine', 'AWS::StepFunctions::StateMachine']\n* dependency_layer:\nSeparate dependencies of individual function into a Lambda layer for improved performance.\n* skip_deploy_sync:\nThis option will skip the initial infrastructure deployment if it is not required by comparing the local template with the template deployed in cloud.\n* watch_exclude:\nExcludes a file or folder from being observed for file changes. Files and folders that are excluded will not trigger a sync workflow. This option can be provided multiple times.\n\nExamples:\n\nHelloWorldFunction=package-lock.json\n\nChildStackA/FunctionName=database.sqlite3\n* stack_name:\nName of the AWS CloudFormation stack.\n* base_dir:\nResolve relative paths to function's source code with respect to this directory. Use this if SAM template and source code are not in same enclosing folder. By default, relative paths are resolved with respect to the SAM template's location.\n* use_container:\nBuild functions within an AWS Lambda-like container.\n* build_in_source:\nOpts in to build project in the source folder. The following workflows support building in source: ['nodejs16.x', 'nodejs18.x', 'nodejs20.x', 'Makefile', 'esbuild']\n* build_image:\nContainer image URIs for building functions/layers. You can specify for all functions/layers with just the image URI (--build-image public.ecr.aws/sam/build-nodejs18.x:latest). You can specify for each individual function with (--build-image FunctionLogicalID=public.ecr.aws/sam/build-nodejs18.x:latest). A combination of the two can be used. If a function does not have build image specified or an image URI for all functions, the default SAM CLI build images will be used.\n* image_repository:\nAWS ECR repository URI where artifacts referenced in the template are uploaded.\n* image_repositories:\nMapping of Function Logical ID to AWS ECR Repository URI.\n\nExample: Function_Logical_ID=ECR_Repo_Uri\nThis option can be specified multiple times.\n* s3_bucket:\nAWS S3 bucket where artifacts referenced in the template are uploaded.\n* s3_prefix:\nPrefix name that is added to the artifact's name when it is uploaded to the AWS S3 bucket.\n* kms_key_id:\nThe ID of an AWS KMS key that is used to encrypt artifacts that are at rest in the AWS S3 bucket.\n* role_arn:\nARN of an IAM role that AWS Cloudformation assumes when executing a deployment change set.\n* parameter_overrides:\nString that contains AWS CloudFormation parameter overrides encoded as key=value pairs.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* profile:\nSelect a specific profile from your credential file to get AWS credentials.\n* region:\nSet the AWS Region of the service. (e.g. us-east-1)\n* metadata:\nMap of metadata to attach to ALL the artifacts that are referenced in the template.\n* notification_arns:\nARNs of SNS topics that AWS Cloudformation associates with the stack.\n* tags:\nList of tags to associate with the stack.\n* capabilities:\nList of capabilities that one must specify before AWS Cloudformation can create certain stacks.\n\nAccepted Values: CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_RESOURCE_POLICY, CAPABILITY_AUTO_EXPAND.\n\nLearn more at: https://docs.aws.amazon.com/serverlessrepo/latest/devguide/acknowledging-application-capabilities.html\n* save_params:\nSave the parameters provided via the command line to the configuration file.", "type": "object", "properties": { "template_file": { @@ -1643,7 +1637,7 @@ "build_in_source": { "title": "build_in_source", "type": "boolean", - "description": "Opts in to build project in the source folder. The following workflows support building in source: ['nodejs12.x', 'nodejs14.x', 'nodejs16.x', 'nodejs18.x', 'Makefile', 'esbuild']" + "description": "Opts in to build project in the source folder. The following workflows support building in source: ['nodejs16.x', 'nodejs18.x', 'nodejs20.x', 'Makefile', 'esbuild']" }, "build_image": { "title": "build_image", diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index b88034e414..0000000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[metadata] -description-file = README.md diff --git a/tests/end_to_end/test_runtimes_e2e.py b/tests/end_to_end/test_runtimes_e2e.py index 84670913b5..bd342b8ca3 100644 --- a/tests/end_to_end/test_runtimes_e2e.py +++ b/tests/end_to_end/test_runtimes_e2e.py @@ -70,7 +70,7 @@ def validate(self, command_result: CommandResult): ("runtime", "dependency_manager"), [ ("go1.x", "mod"), - ("python3.7", "pip"), + ("python3.11", "pip"), ], ) class TestHelloWorldDefaultEndToEnd(EndToEndBase): @@ -104,7 +104,7 @@ def test_hello_world_default_workflow(self): ("runtime", "dependency_manager"), [ ("go1.x", "mod"), - ("python3.7", "pip"), + ("python3.11", "pip"), ], ) class TestHelloWorldZipPackagePermissionsEndToEnd(EndToEndBase): @@ -142,7 +142,7 @@ def test_hello_world_workflow(self): ("runtime", "dependency_manager"), [ ("go1.x", "mod"), - ("python3.7", "pip"), + ("python3.11", "pip"), ], ) class TestHelloWorldDefaultSyncEndToEnd(EndToEndBase): diff --git a/tests/functional/commands/validate/lib/models/api_with_any_method_in_swagger.yaml b/tests/functional/commands/validate/lib/models/api_with_any_method_in_swagger.yaml index 41ae90f481..603ea78b92 100644 --- a/tests/functional/commands/validate/lib/models/api_with_any_method_in_swagger.yaml +++ b/tests/functional/commands/validate/lib/models/api_with_any_method_in_swagger.yaml @@ -4,7 +4,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: SimpleCase: Type: HttpApi diff --git a/tests/functional/commands/validate/lib/models/api_with_disable_api_execute_endpoint.yaml b/tests/functional/commands/validate/lib/models/api_with_disable_api_execute_endpoint.yaml index 230311846b..9eb395992d 100644 --- a/tests/functional/commands/validate/lib/models/api_with_disable_api_execute_endpoint.yaml +++ b/tests/functional/commands/validate/lib/models/api_with_disable_api_execute_endpoint.yaml @@ -15,7 +15,7 @@ Resources: Method: get RestApiId: Ref: ApiGatewayApi - Runtime: python3.7 + Runtime: python3.11 Handler: index.handler InlineCode: |- def handler(event, context): diff --git a/tests/functional/commands/validate/lib/models/api_with_disable_api_execute_endpoint_openapi_3.yaml b/tests/functional/commands/validate/lib/models/api_with_disable_api_execute_endpoint_openapi_3.yaml index 8d4d18a9ba..1bfe761c87 100644 --- a/tests/functional/commands/validate/lib/models/api_with_disable_api_execute_endpoint_openapi_3.yaml +++ b/tests/functional/commands/validate/lib/models/api_with_disable_api_execute_endpoint_openapi_3.yaml @@ -16,7 +16,7 @@ Resources: Method: get RestApiId: Ref: ApiGatewayApi - Runtime: python3.7 + Runtime: python3.11 Handler: index.handler InlineCode: |- def handler(event, context): diff --git a/tests/functional/commands/validate/lib/models/api_with_fail_on_warnings.yaml b/tests/functional/commands/validate/lib/models/api_with_fail_on_warnings.yaml index 354eeaf761..87339ec1d3 100644 --- a/tests/functional/commands/validate/lib/models/api_with_fail_on_warnings.yaml +++ b/tests/functional/commands/validate/lib/models/api_with_fail_on_warnings.yaml @@ -15,7 +15,7 @@ Resources: Method: get RestApiId: Ref: ApiGatewayApi - Runtime: python3.7 + Runtime: python3.11 Handler: index.handler InlineCode: | def handler(event, context): diff --git a/tests/functional/commands/validate/lib/models/explicit_http_api.yaml b/tests/functional/commands/validate/lib/models/explicit_http_api.yaml index 4cc0011f1b..d9cfe8b34d 100644 --- a/tests/functional/commands/validate/lib/models/explicit_http_api.yaml +++ b/tests/functional/commands/validate/lib/models/explicit_http_api.yaml @@ -4,7 +4,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: SimpleCase: Type: HttpApi diff --git a/tests/functional/commands/validate/lib/models/explicit_http_api_default_path.yaml b/tests/functional/commands/validate/lib/models/explicit_http_api_default_path.yaml index ad44d20d14..b8e57b5ed5 100644 --- a/tests/functional/commands/validate/lib/models/explicit_http_api_default_path.yaml +++ b/tests/functional/commands/validate/lib/models/explicit_http_api_default_path.yaml @@ -5,7 +5,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: HttpApiANYdefault: Type: HttpApi @@ -18,7 +18,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: HttpApiANYhello: Type: HttpApi diff --git a/tests/functional/commands/validate/lib/models/explicit_http_api_minimum.yaml b/tests/functional/commands/validate/lib/models/explicit_http_api_minimum.yaml index 7c69c7a573..100b775cab 100644 --- a/tests/functional/commands/validate/lib/models/explicit_http_api_minimum.yaml +++ b/tests/functional/commands/validate/lib/models/explicit_http_api_minimum.yaml @@ -6,7 +6,7 @@ Resources: Properties: Handler: index.handler CodeUri: s3://bucket/key - Runtime: python3.7 + Runtime: python3.11 Events: Api: Type: HttpApi diff --git a/tests/functional/commands/validate/lib/models/explicit_http_api_with_name.yaml b/tests/functional/commands/validate/lib/models/explicit_http_api_with_name.yaml index e4b15ff100..c09c9549f0 100644 --- a/tests/functional/commands/validate/lib/models/explicit_http_api_with_name.yaml +++ b/tests/functional/commands/validate/lib/models/explicit_http_api_with_name.yaml @@ -4,7 +4,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: SimpleCase: Type: HttpApi diff --git a/tests/functional/commands/validate/lib/models/function_string_memorysize.yaml b/tests/functional/commands/validate/lib/models/function_string_memorysize.yaml index f9ee1a5060..6d519e1f75 100644 --- a/tests/functional/commands/validate/lib/models/function_string_memorysize.yaml +++ b/tests/functional/commands/validate/lib/models/function_string_memorysize.yaml @@ -4,5 +4,5 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/hello.zip Handler: hello.handler - Runtime: python3.7 + Runtime: python3.11 MemorySize: '700' diff --git a/tests/functional/commands/validate/lib/models/function_with_disabled_traffic_hook.yaml b/tests/functional/commands/validate/lib/models/function_with_disabled_traffic_hook.yaml index d8efbc4b45..b66da71137 100644 --- a/tests/functional/commands/validate/lib/models/function_with_disabled_traffic_hook.yaml +++ b/tests/functional/commands/validate/lib/models/function_with_disabled_traffic_hook.yaml @@ -11,7 +11,7 @@ Resources: Handler: lambda.lambda_handler Role: Fn::Sub: arn:${AWS::Partition}:iam::${AWS::AccountId}:role/lambda-role - Runtime: python3.7 + Runtime: python3.11 CodeUri: s3://bucket/key AutoPublishAlias: live DeploymentPreference: @@ -34,7 +34,7 @@ Resources: Handler: hook.lambda_handler Role: Fn::Sub: arn:${AWS::Partition}:iam::${AWS::AccountId}:role/lambda-role - Runtime: python3.7 + Runtime: python3.11 CodeUri: s3://bucket/key FunctionName: CodeDeployHook_preTrafficHook AutoPublishAlias: live diff --git a/tests/functional/commands/validate/lib/models/function_with_globals_role_path.yaml b/tests/functional/commands/validate/lib/models/function_with_globals_role_path.yaml index 2f5cd975c4..958b615d32 100644 --- a/tests/functional/commands/validate/lib/models/function_with_globals_role_path.yaml +++ b/tests/functional/commands/validate/lib/models/function_with_globals_role_path.yaml @@ -16,5 +16,5 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/hello.zip Handler: hello.world - Runtime: python3.7 + Runtime: python3.11 RolePath: /foo/bar diff --git a/tests/functional/commands/validate/lib/models/function_with_image_in_metadata.yaml b/tests/functional/commands/validate/lib/models/function_with_image_in_metadata.yaml index 81bc940308..b385eb0639 100644 --- a/tests/functional/commands/validate/lib/models/function_with_image_in_metadata.yaml +++ b/tests/functional/commands/validate/lib/models/function_with_image_in_metadata.yaml @@ -6,6 +6,6 @@ Resources: Properties: PackageType: Image Metadata: - DockerTag: nodejs14.x-v1 + DockerTag: nodejs20.x-v1 DockerContext: ./hello-world Dockerfile: Dockerfile diff --git a/tests/functional/commands/validate/lib/models/http_api_custom_iam_auth.yaml b/tests/functional/commands/validate/lib/models/http_api_custom_iam_auth.yaml index 9e19111464..9aa7311d5c 100644 --- a/tests/functional/commands/validate/lib/models/http_api_custom_iam_auth.yaml +++ b/tests/functional/commands/validate/lib/models/http_api_custom_iam_auth.yaml @@ -6,7 +6,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: HelloAWSIAMAuth: Type: HttpApi diff --git a/tests/functional/commands/validate/lib/models/http_api_def_uri.yaml b/tests/functional/commands/validate/lib/models/http_api_def_uri.yaml index 42902c2748..eed170957a 100644 --- a/tests/functional/commands/validate/lib/models/http_api_def_uri.yaml +++ b/tests/functional/commands/validate/lib/models/http_api_def_uri.yaml @@ -23,7 +23,7 @@ Resources: Function: Type: AWS::Serverless::Function Properties: - Runtime: python3.7 + Runtime: python3.11 Handler: index.handler CodeUri: s3://bucket/key Events: diff --git a/tests/functional/commands/validate/lib/models/http_api_description.yaml b/tests/functional/commands/validate/lib/models/http_api_description.yaml index 6497698da1..c821363c3a 100644 --- a/tests/functional/commands/validate/lib/models/http_api_description.yaml +++ b/tests/functional/commands/validate/lib/models/http_api_description.yaml @@ -11,7 +11,7 @@ Resources: Function: Type: AWS::Serverless::Function Properties: - Runtime: python3.7 + Runtime: python3.11 Handler: index.handler CodeUri: s3://bucket/key Events: diff --git a/tests/functional/commands/validate/lib/models/http_api_existing_openapi_conditions.yaml b/tests/functional/commands/validate/lib/models/http_api_existing_openapi_conditions.yaml index 8eef0385c0..8b3c793fc4 100644 --- a/tests/functional/commands/validate/lib/models/http_api_existing_openapi_conditions.yaml +++ b/tests/functional/commands/validate/lib/models/http_api_existing_openapi_conditions.yaml @@ -10,7 +10,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: Basic: # integration exists Type: HttpApi diff --git a/tests/functional/commands/validate/lib/models/http_api_global_iam_auth_enabled.yaml b/tests/functional/commands/validate/lib/models/http_api_global_iam_auth_enabled.yaml index 84092f5eea..2cfc36a657 100644 --- a/tests/functional/commands/validate/lib/models/http_api_global_iam_auth_enabled.yaml +++ b/tests/functional/commands/validate/lib/models/http_api_global_iam_auth_enabled.yaml @@ -8,7 +8,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: # The following events use the implicit AWS::Serverless::HttpApi called "ServerlessHttpApi". # The Iam Authorizer of the implicit AWS::Serverless::HttpApi is enabled using the global above. diff --git a/tests/functional/commands/validate/lib/models/http_api_lambda_auth.yaml b/tests/functional/commands/validate/lib/models/http_api_lambda_auth.yaml index 4e3b0c74dd..96d1e418ad 100644 --- a/tests/functional/commands/validate/lib/models/http_api_lambda_auth.yaml +++ b/tests/functional/commands/validate/lib/models/http_api_lambda_auth.yaml @@ -4,7 +4,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: Basic: # integration exists Type: HttpApi diff --git a/tests/functional/commands/validate/lib/models/http_api_lambda_auth_full.yaml b/tests/functional/commands/validate/lib/models/http_api_lambda_auth_full.yaml index da9f9640ed..accb7d6792 100644 --- a/tests/functional/commands/validate/lib/models/http_api_lambda_auth_full.yaml +++ b/tests/functional/commands/validate/lib/models/http_api_lambda_auth_full.yaml @@ -4,7 +4,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: Basic: # integration exists Type: HttpApi diff --git a/tests/functional/commands/validate/lib/models/http_api_lambda_auth_with_permissions_resource.yaml b/tests/functional/commands/validate/lib/models/http_api_lambda_auth_with_permissions_resource.yaml index 463b09d869..c269f5a92e 100644 --- a/tests/functional/commands/validate/lib/models/http_api_lambda_auth_with_permissions_resource.yaml +++ b/tests/functional/commands/validate/lib/models/http_api_lambda_auth_with_permissions_resource.yaml @@ -4,7 +4,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: Basic: Type: HttpApi diff --git a/tests/functional/commands/validate/lib/models/http_api_local_iam_auth_enabled.yaml b/tests/functional/commands/validate/lib/models/http_api_local_iam_auth_enabled.yaml index 1daba52881..1b0a1cdfe2 100644 --- a/tests/functional/commands/validate/lib/models/http_api_local_iam_auth_enabled.yaml +++ b/tests/functional/commands/validate/lib/models/http_api_local_iam_auth_enabled.yaml @@ -8,7 +8,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: # The following events use the defined AWS::Serverless::HttpApi, MyDefaultIamAuthHttpApi, further down. # This HttpApi has Iam auth enabled AND set as the default. diff --git a/tests/functional/commands/validate/lib/models/http_api_multiple_authorizers.yaml b/tests/functional/commands/validate/lib/models/http_api_multiple_authorizers.yaml index f52183c53e..5d4df43909 100644 --- a/tests/functional/commands/validate/lib/models/http_api_multiple_authorizers.yaml +++ b/tests/functional/commands/validate/lib/models/http_api_multiple_authorizers.yaml @@ -4,7 +4,7 @@ Resources: Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.restapi - Runtime: python3.7 + Runtime: python3.11 Events: HelloGet: Type: HttpApi diff --git a/tests/integration/buildcmd/test_build_cmd.py b/tests/integration/buildcmd/test_build_cmd.py index 6edfe8abd6..b7193a6ca6 100644 --- a/tests/integration/buildcmd/test_build_cmd.py +++ b/tests/integration/buildcmd/test_build_cmd.py @@ -99,8 +99,10 @@ class TestBuildCommand_PythonFunctions_Images(BuildIntegBase): FUNCTION_LOGICAL_ID_IMAGE = "ImageFunction" - @parameterized.expand([("3.7", False), ("3.8", False), ("3.9", False)]) + @parameterized.expand([("3.8", False), ("3.9", False), ("3.10", False), ("3.11", False), ("3.12", False)]) def test_with_default_requirements(self, runtime, use_container): + if IS_WINDOWS and not runtime_supported_by_docker(f"python{runtime}"): + self.skipTest(RUNTIME_NOT_SUPPORTED_BY_DOCKER_MSG) _tag = uuid4().hex overrides = { "Runtime": runtime, @@ -125,7 +127,15 @@ def test_with_default_requirements(self, runtime, use_container): self.built_template, self.FUNCTION_LOGICAL_ID_IMAGE, self._make_parameter_override_arg(overrides), expected ) - @parameterized.expand([("3.7", False), ("3.8", False), ("3.9", False)]) + @parameterized.expand( + [ + ("3.8", False), + ("3.9", False), + ("3.10", False), + ("3.11", False), + ("3.12", False), + ] + ) def test_with_dockerfile_extension(self, runtime, use_container): _tag = uuid4().hex overrides = { @@ -198,11 +208,16 @@ class TestBuildCommand_PythonFunctions_ImagesWithSharedCode(BuildIntegBase): @parameterized.expand( [ - *[(runtime, "feature_phi/Dockerfile", {"phi": "1.62"}) for runtime in ["3.7", "3.8", "3.9"]], - *[(runtime, "feature_pi/Dockerfile", {"pi": "3.14"}) for runtime in ["3.7", "3.8", "3.9"]], + *[ + (runtime, "feature_phi/Dockerfile", {"phi": "1.62"}) + for runtime in ["3.8", "3.9", "3.10", "3.11", "3.12"] + ], + *[(runtime, "feature_pi/Dockerfile", {"pi": "3.14"}) for runtime in ["3.8", "3.9", "3.10", "3.11", "3.12"]], ] ) def test_with_default_requirements(self, runtime, dockerfile, expected): + if IS_WINDOWS and not runtime_supported_by_docker(f"python{runtime}"): + self.skipTest(RUNTIME_NOT_SUPPORTED_BY_DOCKER_MSG) _tag = uuid4().hex overrides = { "Runtime": runtime, @@ -311,7 +326,7 @@ class TestSkipBuildingFunctionsWithLocalImageUri(BuildIntegBase): FUNCTION_LOGICAL_ID_IMAGE = "ImageFunction" - @parameterized.expand(["3.7", "3.8", "3.9"]) + @parameterized.expand(["3.8", "3.9", "3.10", "3.11", "3.12"]) def test_with_default_requirements(self, runtime): _tag = uuid4().hex image_uri = f"func:{_tag}" @@ -450,14 +465,16 @@ def _validate_skipped_built_function( "prop", ), [ - ("template.yaml", "Function", True, "python3.7", "Python", False, "CodeUri"), ("template.yaml", "Function", True, "python3.8", "Python", False, "CodeUri"), ("template.yaml", "Function", True, "python3.9", "Python", False, "CodeUri"), ("template.yaml", "Function", True, "python3.10", "Python", False, "CodeUri"), ("template.yaml", "Function", True, "python3.11", "Python", False, "CodeUri"), ("template.yaml", "Function", True, "python3.12", "Python", False, "CodeUri"), - ("template.yaml", "Function", True, "python3.7", "PythonPEP600", False, "CodeUri"), ("template.yaml", "Function", True, "python3.8", "PythonPEP600", False, "CodeUri"), + ("template.yaml", "Function", True, "python3.9", "PythonPEP600", False, "CodeUri"), + ("template.yaml", "Function", True, "python3.10", "PythonPEP600", False, "CodeUri"), + ("template.yaml", "Function", True, "python3.11", "PythonPEP600", False, "CodeUri"), + ("template.yaml", "Function", True, "python3.12", "PythonPEP600", False, "CodeUri"), ], ) class TestBuildCommand_PythonFunctions_WithoutDocker(BuildIntegPythonBase): @@ -490,7 +507,6 @@ def test_with_default_requirements(self): "prop", ), [ - ("template.yaml", "Function", True, "python3.7", "Python", False, "CodeUri"), ("template.yaml", "Function", True, "python3.8", "Python", False, "CodeUri"), ("template.yaml", "Function", True, "python3.9", "Python", False, "CodeUri"), ("template.yaml", "Function", True, "python3.10", "Python", False, "CodeUri"), @@ -606,20 +622,16 @@ class TestBuildCommand_PythonFunctions_With_Specified_Architecture(BuildIntegPyt @parameterized.expand( [ - ("python3.7", "Python", False, "x86_64"), ("python3.8", "Python", False, "x86_64"), ("python3.9", "Python", False, "x86_64"), ("python3.10", "Python", False, "x86_64"), ("python3.11", "Python", False, "x86_64"), ("python3.12", "Python", False, "x86_64"), - # numpy 1.20.3 (in PythonPEP600/requirements.txt) only support python 3.7+ - ("python3.7", "PythonPEP600", False, "x86_64"), ("python3.8", "PythonPEP600", False, "x86_64"), ("python3.9", "PythonPEP600", False, "x86_64"), ("python3.10", "PythonPEP600", False, "x86_64"), ("python3.11", "PythonPEP600", False, "x86_64"), ("python3.12", "PythonPEP600", False, "x86_64"), - ("python3.7", "Python", "use_container", "x86_64"), ("python3.8", "Python", "use_container", "x86_64"), ("python3.9", "Python", "use_container", "x86_64"), ("python3.10", "Python", "use_container", "x86_64"), @@ -659,13 +671,9 @@ def test_unsupported_runtime(self): class TestBuildCommand_NodeFunctions(BuildIntegNodeBase): @parameterized.expand( [ - ("nodejs12.x", False), - ("nodejs14.x", False), ("nodejs16.x", False), ("nodejs18.x", False), ("nodejs20.x", False), - ("nodejs12.x", "use_container"), - ("nodejs14.x", "use_container"), ("nodejs16.x", "use_container"), ("nodejs18.x", "use_container"), ("nodejs20.x", "use_container"), @@ -687,7 +695,6 @@ class TestBuildCommand_NodeFunctions_With_External_Manifest(BuildIntegNodeBase): @parameterized.expand( [ - ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), @@ -702,11 +709,12 @@ class TestBuildCommand_EsbuildFunctions(BuildIntegEsbuildBase): @parameterized.expand( [ - ("nodejs14.x", "Esbuild/Node", {"main.js", "main.js.map"}, "main.lambdaHandler", False, "x86_64"), - ("nodejs14.x", "Esbuild/TypeScript", {"app.js", "app.js.map"}, "app.lambdaHandler", False, "x86_64"), - ("nodejs14.x", "Esbuild/Node", {"main.js", "main.js.map"}, "main.lambdaHandler", "use_container", "x86_64"), + ("nodejs20.x", "Esbuild/Node", {"main.js", "main.js.map"}, "main.lambdaHandler", False, "x86_64"), + ("nodejs20.x", "Esbuild/TypeScript", {"app.js", "app.js.map"}, "app.lambdaHandler", False, "x86_64"), + # Keeping container tests as Node.js18 until our CI platform can run Node.js20 container tests + ("nodejs18.x", "Esbuild/Node", {"main.js", "main.js.map"}, "main.lambdaHandler", "use_container", "x86_64"), ( - "nodejs14.x", + "nodejs18.x", "Esbuild/TypeScript", {"app.js", "app.js.map"}, "app.lambdaHandler", @@ -728,7 +736,7 @@ class TestBuildCommand_EsbuildFunctions_With_External_Manifest(BuildIntegEsbuild @parameterized.expand( [ ( - "nodejs14.x", + "nodejs20.x", "Esbuild/Node_without_manifest", {"main.js", "main.js.map"}, "main.lambdaHandler", @@ -736,7 +744,7 @@ class TestBuildCommand_EsbuildFunctions_With_External_Manifest(BuildIntegEsbuild "x86_64", ), ( - "nodejs14.x", + "nodejs20.x", "Esbuild/TypeScript_without_manifest", {"app.js", "app.js.map"}, "app.lambdaHandler", @@ -788,13 +796,9 @@ class TestBuildCommand_NodeFunctions_With_Specified_Architecture(BuildIntegNodeB @parameterized.expand( [ - ("nodejs12.x", False, "x86_64"), - ("nodejs14.x", False, "x86_64"), ("nodejs16.x", False, "x86_64"), ("nodejs18.x", False, "x86_64"), ("nodejs20.x", False, "x86_64"), - ("nodejs12.x", "use_container", "x86_64"), - ("nodejs14.x", "use_container", "x86_64"), ("nodejs16.x", "use_container", "x86_64"), ("nodejs18.x", "use_container", "x86_64"), ] @@ -806,12 +810,12 @@ def test_building_default_package_json(self, runtime, use_container, architectur class TestBuildCommand_RubyFunctions(BuildIntegRubyBase): - @parameterized.expand(["ruby2.7", "ruby3.2"]) + @parameterized.expand(["ruby3.2"]) @skipIf(SKIP_DOCKER_TESTS or SKIP_DOCKER_BUILD, SKIP_DOCKER_MESSAGE) def test_building_ruby_in_container(self, runtime): self._test_with_default_gemfile(runtime, "use_container", "Ruby", self.test_data_path) - @parameterized.expand(["ruby2.7", "ruby3.2"]) + @parameterized.expand(["ruby3.2"]) def test_building_ruby_in_process(self, runtime): self._test_with_default_gemfile(runtime, False, "Ruby", self.test_data_path) @@ -819,12 +823,12 @@ def test_building_ruby_in_process(self, runtime): class TestBuildCommand_RubyFunctions_With_Architecture(BuildIntegRubyBase): template = "template_with_architecture.yaml" - @parameterized.expand([("ruby2.7", "Ruby"), ("ruby3.2", "Ruby32")]) + @parameterized.expand([("ruby3.2", "Ruby32")]) @skipIf(SKIP_DOCKER_TESTS or SKIP_DOCKER_BUILD, SKIP_DOCKER_MESSAGE) def test_building_ruby_in_container_with_specified_architecture(self, runtime, codeuri): self._test_with_default_gemfile(runtime, "use_container", codeuri, self.test_data_path, "x86_64") - @parameterized.expand([("ruby2.7", "Ruby"), ("ruby3.2", "Ruby32")]) + @parameterized.expand([("ruby3.2", "Ruby32")]) def test_building_ruby_in_process_with_specified_architecture(self, runtime, codeuri): self._test_with_default_gemfile(runtime, False, codeuri, self.test_data_path, "x86_64") @@ -835,7 +839,7 @@ class TestBuildCommand_RubyFunctionsWithGemfileInTheRoot(BuildIntegRubyBase): This doesn't apply to containerized build, since it copies only the function folder to the container """ - @parameterized.expand([("ruby2.7"), ("ruby3.2")]) + @parameterized.expand([("ruby3.2")]) def test_building_ruby_in_process_with_root_gemfile(self, runtime): self._prepare_application_environment() self._test_with_default_gemfile(runtime, False, "RubyWithRootGemfile", self.working_dir) @@ -1198,6 +1202,8 @@ class TestBuildCommand_Dotnet_cli_package(BuildIntegBase): ("dotnet6", "Dotnet6", None), ("dotnet6", "Dotnet6", "debug"), ("provided.al2", "Dotnet7", None), + ("dotnet8", "Dotnet8", None), + ("dotnet8", "Dotnet8", "debug"), ] ) def test_dotnet_in_process(self, runtime, code_uri, mode, architecture="x86_64"): @@ -1268,6 +1274,8 @@ def test_dotnet_in_process(self, runtime, code_uri, mode, architecture="x86_64") # force to run tests on arm64 machines may cause dotnet7 test failing # because Native AOT Lambda functions require the host and lambda architectures to match ("provided.al2", "Dotnet7", None), + ("dotnet8", "Dotnet8", None), + ("dotnet8", "Dotnet8", "debug"), ] ) @skipIf(SKIP_DOCKER_TESTS or SKIP_DOCKER_BUILD, SKIP_DOCKER_MESSAGE) @@ -1340,6 +1348,8 @@ def test_dotnet_in_container_mount_with_write_explicit(self, runtime, code_uri, # force to run tests on arm64 machines may cause dotnet7 test failing # because Native AOT Lambda functions require the host and lambda architectures to match ("provided.al2", "Dotnet7", None), + ("dotnet8", "Dotnet8", None), + ("dotnet8", "Dotnet8", "debug"), ] ) @skipIf(SKIP_DOCKER_TESTS or SKIP_DOCKER_BUILD, SKIP_DOCKER_MESSAGE) @@ -1409,7 +1419,7 @@ def test_dotnet_in_container_mount_with_write_interactive( ) self.verify_docker_container_cleanedup(runtime) - @parameterized.expand([("dotnet6", "Dotnet6")]) + @parameterized.expand([("dotnet6", "Dotnet6"), ("dotnet8", "Dotnet8")]) @skipIf(SKIP_DOCKER_TESTS or SKIP_DOCKER_BUILD, SKIP_DOCKER_MESSAGE) def test_must_fail_on_container_mount_without_write_interactive(self, runtime, code_uri): use_container = True @@ -1488,7 +1498,7 @@ class TestBuildCommand_SingleFunctionBuilds(BuildIntegBase): } def test_function_not_found(self): - overrides = {"Runtime": "python3.7", "CodeUri": "Python", "Handler": "main.handler"} + overrides = {"Runtime": "python3.11", "CodeUri": "Python", "Handler": "main.handler"} cmdlist = self.get_command_list(parameter_overrides=overrides, function_identifier="FunctionNotInTemplate") process_execute = run_command(cmdlist, cwd=self.working_dir) @@ -1498,10 +1508,10 @@ def test_function_not_found(self): @parameterized.expand( [ - ("python3.7", False, "FunctionOne"), - ("python3.7", "use_container", "FunctionOne"), - ("python3.7", False, "FunctionTwo"), - ("python3.7", "use_container", "FunctionTwo"), + ("python3.11", False, "FunctionOne"), + ("python3.11", "use_container", "FunctionOne"), + ("python3.11", False, "FunctionTwo"), + ("python3.11", "use_container", "FunctionTwo"), ] ) def test_build_single_function(self, runtime, use_container, function_identifier): @@ -1567,7 +1577,7 @@ class TestBuildCommand_ExcludeResources(BuildIntegBase): ] ) def test_build_without_resources(self, excluded_resources, function_identifier): - overrides = {"Runtime": "python3.7", "CodeUri": "Python", "Handler": "main.handler"} + overrides = {"Runtime": "python3.12", "CodeUri": "Python", "Handler": "main.handler"} cmdlist = self.get_command_list( parameter_overrides=overrides, function_identifier=function_identifier, exclude=excluded_resources ) @@ -1603,10 +1613,10 @@ class TestBuildCommand_LayerBuilds(BuildIntegBase): @parameterized.expand( [ - ("python3.7", False, "LayerOne", "ContentUri"), - ("python3.7", "use_container", "LayerOne", "ContentUri"), - ("python3.7", False, "LambdaLayerOne", "Content"), - ("python3.7", "use_container", "LambdaLayerOne", "Content"), + ("python3.12", False, "LayerOne", "ContentUri"), + ("python3.12", "use_container", "LayerOne", "ContentUri"), + ("python3.12", False, "LambdaLayerOne", "Content"), + ("python3.12", "use_container", "LambdaLayerOne", "Content"), ] ) def test_build_single_layer(self, runtime, use_container, layer_identifier, content_property): @@ -1783,7 +1793,7 @@ def test_build_layer_with_makefile_with_fake_build_architecture(self): # Build should still succeed self.assertEqual(command_result.process.returncode, 0) - @parameterized.expand([("python3.7", False, "LayerTwo"), ("python3.7", "use_container", "LayerTwo")]) + @parameterized.expand([("python3.12", False, "LayerTwo"), ("python3.12", "use_container", "LayerTwo")]) def test_build_fails_with_missing_metadata(self, runtime, use_container, layer_identifier): if use_container and (SKIP_DOCKER_TESTS or SKIP_DOCKER_BUILD): self.skipTest(SKIP_DOCKER_MESSAGE) @@ -1811,7 +1821,7 @@ def test_function_build_succeeds_with_referenced_layer(self, use_container): command_result = run_command(cmdlist, cwd=self.working_dir) self.assertEqual(command_result.process.returncode, 0) - @parameterized.expand([("python3.7", False), ("python3.7", "use_container")]) + @parameterized.expand([("python3.12", False), ("python3.12", "use_container")]) def test_build_function_and_layer(self, runtime, use_container): if use_container and (SKIP_DOCKER_TESTS or SKIP_DOCKER_BUILD): self.skipTest(SKIP_DOCKER_MESSAGE) @@ -1846,7 +1856,7 @@ def test_build_function_and_layer(self, runtime, use_container): self.verify_docker_container_cleanedup(runtime) self.verify_pulled_image(runtime) - @parameterized.expand([("python3.7", False), ("python3.7", "use_container")]) + @parameterized.expand([("python3.12", False), ("python3.12", "use_container")]) def test_build_function_with_dependent_layer(self, runtime, use_container): if use_container and (SKIP_DOCKER_TESTS or SKIP_DOCKER_BUILD): self.skipTest(SKIP_DOCKER_MESSAGE) @@ -2136,14 +2146,14 @@ class TestBuildWithDedupBuilds(DedupBuildIntegBase): "dotnet6", ), (False, "Java/gradlew/8", "aws.example.Hello::myHandler", "aws.example.SecondFunction::myHandler", "java8"), - (False, "Node", "main.lambdaHandler", "main.secondLambdaHandler", "nodejs14.x"), + (False, "Node", "main.lambdaHandler", "main.secondLambdaHandler", "nodejs20.x"), (False, "Python", "main.first_function_handler", "main.second_function_handler", "python3.9"), - (False, "Ruby", "app.lambda_handler", "app.second_lambda_handler", "ruby2.7"), + (False, "Ruby", "app.lambda_handler", "app.second_lambda_handler", "ruby3.2"), # container (True, "Java/gradlew/8", "aws.example.Hello::myHandler", "aws.example.SecondFunction::myHandler", "java8"), - (True, "Node", "main.lambdaHandler", "main.secondLambdaHandler", "nodejs14.x"), + (True, "Node", "main.lambdaHandler", "main.secondLambdaHandler", "nodejs20.x"), (True, "Python", "main.first_function_handler", "main.second_function_handler", "python3.9"), - (True, "Ruby", "app.lambda_handler", "app.second_lambda_handler", "ruby2.7"), + (True, "Ruby", "app.lambda_handler", "app.second_lambda_handler", "ruby3.2"), ] ) def test_dedup_build(self, use_container, code_uri, function1_handler, function2_handler, runtime): @@ -2187,7 +2197,7 @@ def test_dedup_build(self): overrides = { "Function1Handler": "main.first_function_handler", "Function2Handler": "main.second_function_handler", - "FunctionRuntime": "3.7", + "FunctionRuntime": "3.11", "DockerFile": "Dockerfile", "Tag": f"{random.randint(1,100)}", } @@ -2255,14 +2265,14 @@ class TestBuildWithCacheBuilds(CachedBuildIntegBase): "dotnet6", ), (False, "Java/gradlew/8", "aws.example.Hello::myHandler", "aws.example.SecondFunction::myHandler", "java8"), - (False, "Node", "main.lambdaHandler", "main.secondLambdaHandler", "nodejs14.x"), + (False, "Node", "main.lambdaHandler", "main.secondLambdaHandler", "nodejs20.x"), (False, "Python", "main.first_function_handler", "main.second_function_handler", "python3.9"), - (False, "Ruby", "app.lambda_handler", "app.second_lambda_handler", "ruby2.7"), + (False, "Ruby", "app.lambda_handler", "app.second_lambda_handler", "ruby3.2"), # container (True, "Java/gradlew/8", "aws.example.Hello::myHandler", "aws.example.SecondFunction::myHandler", "java8"), - (True, "Node", "main.lambdaHandler", "main.secondLambdaHandler", "nodejs14.x"), + (True, "Node", "main.lambdaHandler", "main.secondLambdaHandler", "nodejs20.x"), (True, "Python", "main.first_function_handler", "main.second_function_handler", "python3.9"), - (True, "Ruby", "app.lambda_handler", "app.second_lambda_handler", "ruby2.7"), + (True, "Ruby", "app.lambda_handler", "app.second_lambda_handler", "ruby3.2"), ] ) def test_cache_build(self, use_container, code_uri, function1_handler, function2_handler, runtime): @@ -2374,10 +2384,10 @@ def test_repeated_cached_build_hits_cache(self, use_container): parameter_overrides = { "LayerContentUri": "PyLayer", - "LayerBuildMethod": "python3.7", + "LayerBuildMethod": "python3.12", "CodeUri": "Python", "Handler": "main.handler", - "Runtime": "python3.7", + "Runtime": "python3.12", "LayerMakeContentUri": "PyLayerMake", } @@ -2434,14 +2444,14 @@ class TestParallelBuilds(DedupBuildIntegBase): "dotnet6", ), (False, "Java/gradlew/8", "aws.example.Hello::myHandler", "aws.example.SecondFunction::myHandler", "java8"), - (False, "Node", "main.lambdaHandler", "main.secondLambdaHandler", "nodejs14.x"), + (False, "Node", "main.lambdaHandler", "main.secondLambdaHandler", "nodejs20.x"), (False, "Python", "main.first_function_handler", "main.second_function_handler", "python3.9"), - (False, "Ruby", "app.lambda_handler", "app.second_lambda_handler", "ruby2.7"), + (False, "Ruby", "app.lambda_handler", "app.second_lambda_handler", "ruby3.2"), # container (True, "Java/gradlew/8", "aws.example.Hello::myHandler", "aws.example.SecondFunction::myHandler", "java8"), - (True, "Node", "main.lambdaHandler", "main.secondLambdaHandler", "nodejs14.x"), + (True, "Node", "main.lambdaHandler", "main.secondLambdaHandler", "nodejs20.x"), (True, "Python", "main.first_function_handler", "main.second_function_handler", "python3.9"), - (True, "Ruby", "app.lambda_handler", "app.second_lambda_handler", "ruby2.7"), + (True, "Ruby", "app.lambda_handler", "app.second_lambda_handler", "ruby3.2"), ] ) def test_dedup_build(self, use_container, code_uri, function1_handler, function2_handler, runtime): @@ -2526,8 +2536,8 @@ def test_inline_not_built(self, use_container): self._verify_built_artifact(self.default_build_dir) if use_container: - self.verify_docker_container_cleanedup("python3.7") - self.verify_pulled_image("python3.7") + self.verify_docker_container_cleanedup("python3.12") + self.verify_pulled_image("python3.12") def _verify_built_artifact(self, build_dir): self.assertTrue(build_dir.exists(), "Build directory should be created") @@ -2575,8 +2585,8 @@ def test_json_env_vars_passed(self, use_container, env_vars_file): self._verify_built_env_var(self.default_build_dir) if use_container: - self.verify_docker_container_cleanedup("python3.7") - self.verify_pulled_image("python3.7") + self.verify_docker_container_cleanedup("python3.12") + self.verify_pulled_image("python3.12") @staticmethod def get_env_file(filename): @@ -2623,8 +2633,8 @@ def test_inline_env_vars_passed(self, use_container, inline_env_var): self._verify_built_env_var(self.default_build_dir) if use_container: - self.verify_docker_container_cleanedup("python3.7") - self.verify_pulled_image("python3.7") + self.verify_docker_container_cleanedup("python3.12") + self.verify_pulled_image("python3.12") def _verify_built_env_var(self, build_dir): self.assertTrue(build_dir.exists(), "Build directory should be created") @@ -2673,7 +2683,7 @@ def test_nested_build(self, use_container, cached, parallel): Build template above and verify that each function call returns as expected """ overrides = { - "Runtime": "python3.7", + "Runtime": "python3.11", "CodeUri": "../Python", # root stack is one level deeper than the code "ChildStackCodeUri": "./Python", # chidl stack is in the same folder as the code "LocalNestedFuncHandler": "main.handler", @@ -2888,7 +2898,7 @@ def test_nested_build(self, use_container, cached, parallel): Build template above and verify that each function call returns as expected """ overrides = { - "Runtime": "3.7", + "Runtime": "3.11", "DockerFile": "Dockerfile", "Tag": f"{random.randint(1,100)}", "LocalNestedFuncHandler": "main.handler", @@ -2940,7 +2950,7 @@ class TestBuildWithCustomBuildImage(BuildIntegBase): @parameterized.expand( [ ("use_container", None), - ("use_container", "amazon/aws-sam-cli-build-image-python3.7:latest"), + ("use_container", "public.ecr.aws/sam/build-python3.11:latest-x86_64"), ] ) def test_custom_build_image_succeeds(self, use_container, build_image): @@ -2957,10 +2967,10 @@ def test_custom_build_image_succeeds(self, use_container, build_image): self._verify_right_image_pulled(build_image, process_stderr) self._verify_build_succeeds(self.default_build_dir) - self.verify_docker_container_cleanedup("python3.7") + self.verify_docker_container_cleanedup("python3.12") def _verify_right_image_pulled(self, build_image, process_stderr): - image_name = build_image if build_image is not None else "public.ecr.aws/sam/build-python3.7:latest" + image_name = build_image if build_image is not None else "public.ecr.aws/sam/build-python3.11:latest-x86_64" processed_name = bytes(image_name, encoding="utf-8") self.assertIn( processed_name, diff --git a/tests/integration/buildcmd/test_build_cmd_arm64.py b/tests/integration/buildcmd/test_build_cmd_arm64.py index 6bdccd6846..403c6e269b 100644 --- a/tests/integration/buildcmd/test_build_cmd_arm64.py +++ b/tests/integration/buildcmd/test_build_cmd_arm64.py @@ -60,11 +60,11 @@ class TestBuildCommand_EsbuildFunctions_arm64(BuildIntegEsbuildBase): @parameterized.expand( [ - ("nodejs12.x", "Esbuild/Node", {"main.js", "main.js.map"}, "main.lambdaHandler", False), - ("nodejs12.x", "Esbuild/TypeScript", {"app.js", "app.js.map"}, "app.lambdaHandler", False), - ("nodejs12.x", "Esbuild/Node", {"main.js", "main.js.map"}, "main.lambdaHandler", "use_container"), + ("nodejs20.x", "Esbuild/Node", {"main.js", "main.js.map"}, "main.lambdaHandler", False), + ("nodejs20.x", "Esbuild/TypeScript", {"app.js", "app.js.map"}, "app.lambdaHandler", False), + ("nodejs20.x", "Esbuild/Node", {"main.js", "main.js.map"}, "main.lambdaHandler", "use_container"), ( - "nodejs12.x", + "nodejs20.x", "Esbuild/TypeScript", {"app.js", "app.js.map"}, "app.lambdaHandler", @@ -137,13 +137,9 @@ class TestBuildCommand_NodeFunctions_With_Specified_Architecture_arm64(BuildInte @parameterized.expand( [ - ("nodejs12.x", False), - ("nodejs14.x", False), ("nodejs16.x", False), ("nodejs18.x", False), ("nodejs20.x", False), - ("nodejs12.x", "use_container"), - ("nodejs14.x", "use_container"), ("nodejs16.x", "use_container"), ("nodejs18.x", "use_container"), ("nodejs20.x", "use_container"), @@ -158,12 +154,12 @@ def test_building_default_package_json(self, runtime, use_container): class TestBuildCommand_RubyFunctions_With_Architecture_arm64(BuildIntegRubyBase): template = "template_with_architecture.yaml" - @parameterized.expand([("ruby2.7", "Ruby"), ("ruby3.2", "Ruby32")]) + @parameterized.expand([("ruby3.2", "Ruby32")]) @skipIf(SKIP_DOCKER_TESTS or SKIP_DOCKER_BUILD, SKIP_DOCKER_MESSAGE) def test_building_ruby_in_container_with_specified_architecture(self, runtime, code_uri): self._test_with_default_gemfile(runtime, "use_container", code_uri, self.test_data_path, ARM64) - @parameterized.expand([("ruby2.7", "Ruby"), ("ruby3.2", "Ruby32")]) + @parameterized.expand([("ruby3.2", "Ruby32")]) def test_building_ruby_in_process_with_specified_architecture(self, runtime, code_uri): self._test_with_default_gemfile(runtime, False, code_uri, self.test_data_path, ARM64) diff --git a/tests/integration/local/invoke/test_integrations_cli.py b/tests/integration/local/invoke/test_integrations_cli.py index 3c33a25cea..43dd385c1a 100644 --- a/tests/integration/local/invoke/test_integrations_cli.py +++ b/tests/integration/local/invoke/test_integrations_cli.py @@ -31,7 +31,7 @@ (Path("nested-templates/template-parent.yaml"),), ], ) -class TestSamPython37HelloWorldIntegration(InvokeIntegBase): +class TestSamPythonHelloWorldIntegration(InvokeIntegBase): @pytest.mark.flaky(reruns=3) def test_invoke_returncode_is_zero(self): command_list = InvokeIntegBase.get_command_list( @@ -242,7 +242,7 @@ def test_invoke_with_invoke_image_provided(self): "HelloWorldServerlessFunction", template_path=self.template_path, event_path=self.event_path, - invoke_image="amazon/aws-sam-cli-emulation-image-python3.7", + invoke_image="public.ecr.aws/lambda/python:3.11-x86_64", ) process = Popen(command_list, stdout=PIPE) @@ -479,7 +479,7 @@ def test_sam_template_file_env_var_set(self): @pytest.mark.flaky(reruns=3) @pytest.mark.timeout(timeout=TIMEOUT, method="thread") def test_skip_pull_image_in_env_var(self): - docker.from_env().api.pull("lambci/lambda:python3.7") + docker.from_env().api.pull("public.ecr.aws/lambda/python:3.11-x86_64") command_list = InvokeIntegBase.get_command_list( "HelloWorldLambdaFunction", template_path=self.template_path, event_path=self.event_path diff --git a/tests/integration/local/start_api/start_api_integ_base.py b/tests/integration/local/start_api/start_api_integ_base.py index 91483d1d46..306365b8d9 100644 --- a/tests/integration/local/start_api/start_api_integ_base.py +++ b/tests/integration/local/start_api/start_api_integ_base.py @@ -10,6 +10,7 @@ import docker from docker.errors import APIError +from psutil import NoSuchProcess from tests.integration.local.common_utils import InvalidAddressException, random_port, wait_for_local_process from tests.testing_utils import kill_process, get_sam_command @@ -145,7 +146,10 @@ def _make_parameter_override_arg(self, overrides): def tearDownClass(cls): # After all the tests run, we need to kill the start-api process. cls.stop_reading_thread = True - kill_process(cls.start_api_process) + try: + kill_process(cls.start_api_process) + except NoSuchProcess: + LOG.info("Process has already been terminated") @staticmethod def get_binary_data(filename): diff --git a/tests/integration/local/start_api/test_start_api.py b/tests/integration/local/start_api/test_start_api.py index 984a4c639e..0c5f5e1cd5 100644 --- a/tests/integration/local/start_api/test_start_api.py +++ b/tests/integration/local/start_api/test_start_api.py @@ -1,10 +1,13 @@ import base64 import shutil +import signal +from unittest import skipIf import uuid import random from pathlib import Path from typing import Dict +import docker.errors import requests from http.client import HTTPConnection from concurrent.futures import ThreadPoolExecutor, as_completed @@ -15,6 +18,7 @@ from samcli.commands.local.cli_common.invoke_context import ContainersInitializationMode from samcli.local.apigw.route import Route +from tests.testing_utils import IS_WINDOWS from .start_api_integ_base import StartApiIntegBaseClass, WritableStartApiIntegBaseClass from ..invoke.layer_utils import LayerUtils @@ -149,11 +153,12 @@ def test_large_input_request_http10(self): @parameterized_class( - ("template_path", "container_mode"), + ("template_path", "container_mode", "endpoint"), [ - ("/testdata/start_api/template.yaml", "LAZY"), - ("/testdata/start_api/template.yaml", "EAGER"), - ("/testdata/start_api/cdk/template_cdk.yaml", "LAZY"), + ("/testdata/start_api/template.yaml", "LAZY", "/sleepfortenseconds/function1"), + ("/testdata/start_api/template.yaml", "LAZY", "/sleepfortensecondszipped"), + ("/testdata/start_api/template.yaml", "EAGER", "/sleepfortenseconds/function1"), + ("/testdata/start_api/cdk/template_cdk.yaml", "LAZY", "/sleepfortenseconds/function1"), ], ) class TestParallelRequests(StartApiIntegBaseClass): @@ -176,7 +181,7 @@ def test_same_endpoint(self): start_time = time() with ThreadPoolExecutor(number_of_requests) as thread_pool: futures = [ - thread_pool.submit(requests.get, self.url + "/sleepfortenseconds/function1", timeout=300) + thread_pool.submit(requests.get, self.url + self.endpoint, timeout=300) for _ in range(0, number_of_requests) ] results = [r.result() for r in as_completed(futures)] @@ -2158,6 +2163,35 @@ def test_can_invoke_lambda_function_successfully(self): self.assertEqual(response.json(), {"hello": "world"}) +@skipIf(IS_WINDOWS, "SIGTERM interrupt doesn't exist on Windows") +class TestWarmContainersHandlesSigTerm(TestWarmContainersBaseClass): + template_path = "/testdata/start_api/template-warm-containers.yaml" + container_mode = ContainersInitializationMode.EAGER.value + mode_env_variable = str(uuid.uuid4()) + parameter_overrides = {"ModeEnvVariable": mode_env_variable} + + @pytest.mark.flaky(reruns=3) + @pytest.mark.timeout(timeout=600, method="thread") + def test_can_invoke_lambda_function_successfully(self): + response = requests.post(self.url + "/id", timeout=300) + initiated_containers = self.count_running_containers() + + self.assertEqual(response.status_code, 200) + self.assertEqual(response.json(), {"hello": "world"}) + self.assertEqual(initiated_containers, 2) + + service_process = self.start_api_process + service_process.send_signal(signal.SIGTERM) + + # Sleep for 10 seconds since this is the default time that Docker + # allows for a process to handle a SIGTERM before sending a SIGKILL + sleep(10) + + remaining_containers = self.count_running_containers() + self.assertEqual(remaining_containers, 0) + self.assertEqual(service_process.poll(), 0) + + @parameterized_class( ("template_path",), [ @@ -2444,7 +2478,7 @@ class TestWatchingTemplateChangesLambdaFunctionCodeUriChanged(WritableStartApiIn Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Events: @@ -2462,7 +2496,7 @@ class TestWatchingTemplateChangesLambdaFunctionCodeUriChanged(WritableStartApiIn Type: AWS::Serverless::Function Properties: Handler: main2.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: dir Timeout: 600 Events: @@ -2542,7 +2576,7 @@ def handler(event, context): def handler(event, context): return {"statusCode": 200, "body": json.dumps({"hello": "world2"})}""" - docker_file_content = """FROM public.ecr.aws/lambda/python:3.7 + docker_file_content = """FROM public.ecr.aws/lambda/python:3.11 COPY main.py ./""" container_mode = ContainersInitializationMode.EAGER.value build_before_invoke = True @@ -2634,7 +2668,7 @@ def handler(event, context): def handler(event, context): return {"statusCode": 200, "body": json.dumps({"hello": "world2"})}""" - docker_file_content = """FROM public.ecr.aws/lambda/python:3.7 + docker_file_content = """FROM public.ecr.aws/lambda/python:3.11 COPY main.py ./""" container_mode = ContainersInitializationMode.EAGER.value build_before_invoke = True @@ -2749,7 +2783,7 @@ def handler(event, context): def handler(event, context): return {"statusCode": 200, "body": json.dumps({"hello": "world2"})}""" - docker_file_content = """FROM public.ecr.aws/lambda/python:3.7 + docker_file_content = """FROM public.ecr.aws/lambda/python:3.11 COPY main.py ./""" container_mode = ContainersInitializationMode.LAZY.value build_before_invoke = True @@ -2850,7 +2884,7 @@ class TestWatchingTemplateChangesLambdaFunctionCodeUriChangedLazyContainers(Writ Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Events: @@ -2868,7 +2902,7 @@ class TestWatchingTemplateChangesLambdaFunctionCodeUriChangedLazyContainers(Writ Type: AWS::Serverless::Function Properties: Handler: main2.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: dir Timeout: 600 Events: @@ -2976,7 +3010,7 @@ def handler(event, context): def handler(event, context): return {"statusCode": 200, "body": json.dumps({"hello": "world2"})}""" - docker_file_content = """FROM public.ecr.aws/lambda/python:3.7 + docker_file_content = """FROM public.ecr.aws/lambda/python:3.11 COPY main.py ./""" container_mode = ContainersInitializationMode.LAZY.value build_before_invoke = True diff --git a/tests/integration/local/start_lambda/start_lambda_api_integ_base.py b/tests/integration/local/start_lambda/start_lambda_api_integ_base.py index a6cdb4f838..a29cdd0a0f 100644 --- a/tests/integration/local/start_lambda/start_lambda_api_integ_base.py +++ b/tests/integration/local/start_lambda/start_lambda_api_integ_base.py @@ -10,6 +10,7 @@ import docker from docker.errors import APIError +from psutil import NoSuchProcess from tests.integration.local.common_utils import random_port, InvalidAddressException, wait_for_local_process from tests.testing_utils import ( @@ -178,7 +179,10 @@ def _make_parameter_override_arg(self, overrides): def tearDownClass(cls): # After all the tests run, we need to kill the start_lambda process. cls.stop_reading_thread = True - kill_process(cls.start_lambda_process) + try: + kill_process(cls.start_lambda_process) + except NoSuchProcess: + LOG.info("Process has already been terminated") class WatchWarmContainersIntegBaseClass(StartLambdaIntegBaseClass): diff --git a/tests/integration/local/start_lambda/test_start_lambda.py b/tests/integration/local/start_lambda/test_start_lambda.py index 79393ce8eb..b3d194cd2c 100644 --- a/tests/integration/local/start_lambda/test_start_lambda.py +++ b/tests/integration/local/start_lambda/test_start_lambda.py @@ -1,3 +1,5 @@ +import signal +from unittest import skipIf import uuid from concurrent.futures import ThreadPoolExecutor, as_completed from time import time, sleep @@ -13,6 +15,7 @@ from botocore.exceptions import ClientError from samcli.commands.local.cli_common.invoke_context import ContainersInitializationMode +from tests.testing_utils import IS_WINDOWS from .start_lambda_api_integ_base import StartLambdaIntegBaseClass, WatchWarmContainersIntegBaseClass @@ -257,19 +260,8 @@ def test_lambda_function_raised_error(self, use_full_path): ) response_data = json.loads(response.get("Payload").read().decode("utf-8")) - print(response_data) - - self.assertEqual( - response_data, - { - "errorMessage": "Lambda is raising an exception", - "errorType": "Exception", - "stackTrace": [ - ' File "/var/task/main.py", line 51, in raise_exception\n raise Exception("Lambda is raising an exception")\n' - ], - }, - ) - self.assertEqual(response.get("FunctionError"), "Unhandled") + self.assertEqual(response_data.get("errorMessage"), "Lambda is raising an exception") + self.assertEqual(response_data.get("errorType"), "Exception") self.assertEqual(response.get("StatusCode"), 200) @parameterized.expand([("False"), ("True")]) @@ -339,6 +331,38 @@ def test_can_invoke_lambda_function_successfully(self): self.assertEqual(json.loads(response.get("body")), {"hello": "world"}) +@skipIf(IS_WINDOWS, "SIGTERM interrupt doesn't exist on Windows") +class TestWarmContainersHandlesSigTermInterrupt(TestWarmContainersBaseClass): + template_path = "/testdata/start_api/template-warm-containers.yaml" + container_mode = ContainersInitializationMode.EAGER.value + mode_env_variable = str(uuid.uuid4()) + parameter_overrides = {"ModeEnvVariable": mode_env_variable} + + @pytest.mark.flaky(reruns=3) + @pytest.mark.timeout(timeout=600, method="thread") + def test_can_invoke_lambda_function_successfully(self): + result = self.lambda_client.invoke(FunctionName="HelloWorldFunction") + self.assertEqual(result.get("StatusCode"), 200) + + response = json.loads(result.get("Payload").read().decode("utf-8")) + self.assertEqual(response.get("statusCode"), 200) + self.assertEqual(json.loads(response.get("body")), {"hello": "world"}) + + initiated_containers = self.count_running_containers() + self.assertEqual(initiated_containers, 2) + + service_process = self.start_lambda_process + service_process.send_signal(signal.SIGTERM) + + # Sleep for 10 seconds since this is the default time that Docker + # allows for a process to handle a SIGTERM before sending a SIGKILL + sleep(10) + + remaining_containers = self.count_running_containers() + self.assertEqual(remaining_containers, 0) + self.assertEqual(service_process.poll(), 0) + + @parameterized_class( ("template_path",), [ @@ -626,7 +650,7 @@ class TestWatchingTemplateChangesNewLambdaFunctionAdded(WatchWarmContainersInteg Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Events: @@ -639,7 +663,7 @@ class TestWatchingTemplateChangesNewLambdaFunctionAdded(WatchWarmContainersInteg Type: AWS::Serverless::Function Properties: Handler: main.handler2 - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Events: @@ -729,7 +753,7 @@ class TestWatchingTemplateChangesLambdaFunctionRemoved(WatchWarmContainersIntegB Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Events: @@ -742,7 +766,7 @@ class TestWatchingTemplateChangesLambdaFunctionRemoved(WatchWarmContainersIntegB Type: AWS::Serverless::Function Properties: Handler: main.handler2 - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Events: @@ -832,7 +856,7 @@ class TestWatchingTemplateChangesLambdaFunctionChangeCodeUri(WatchWarmContainers Type: AWS::Serverless::Function Properties: Handler: main2.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: dir Timeout: 600 Events: @@ -927,7 +951,7 @@ def handler(event, context): def handler(event, context): return {"statusCode": 200, "body": json.dumps({"hello": "world2"})}""" - docker_file_content = """FROM public.ecr.aws/lambda/python:3.7 + docker_file_content = """FROM public.ecr.aws/lambda/python:3.11 COPY main.py ./""" container_mode = ContainersInitializationMode.EAGER.value build_before_invoke = True @@ -1033,7 +1057,7 @@ def handler(event, context): def handler(event, context): return {"statusCode": 200, "body": json.dumps({"hello": "world2"})}""" - docker_file_content = """FROM public.ecr.aws/lambda/python:3.7 + docker_file_content = """FROM public.ecr.aws/lambda/python:3.11 COPY main.py ./""" container_mode = ContainersInitializationMode.EAGER.value build_before_invoke = True @@ -1176,7 +1200,7 @@ def handler(event, context): def handler(event, context): return {"statusCode": 200, "body": json.dumps({"hello": "world2"})}""" - docker_file_content = """FROM public.ecr.aws/lambda/python:3.7 + docker_file_content = """FROM public.ecr.aws/lambda/python:3.11 COPY main.py ./""" container_mode = ContainersInitializationMode.LAZY.value build_before_invoke = True @@ -1242,7 +1266,7 @@ class TestWatchingTemplateChangesNewLambdaFunctionAddedLazyContainer(WatchWarmCo Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Events: @@ -1255,7 +1279,7 @@ class TestWatchingTemplateChangesNewLambdaFunctionAddedLazyContainer(WatchWarmCo Type: AWS::Serverless::Function Properties: Handler: main.handler2 - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Events: @@ -1345,7 +1369,7 @@ class TestWatchingTemplateChangesLambdaFunctionRemovedLazyContainers(WatchWarmCo Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Events: @@ -1358,7 +1382,7 @@ class TestWatchingTemplateChangesLambdaFunctionRemovedLazyContainers(WatchWarmCo Type: AWS::Serverless::Function Properties: Handler: main.handler2 - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Events: @@ -1448,7 +1472,7 @@ class TestWatchingTemplateChangesLambdaFunctionChangeCodeUriLazyContainer(WatchW Type: AWS::Serverless::Function Properties: Handler: main2.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: dir Timeout: 600 Events: @@ -1571,7 +1595,7 @@ def handler(event, context): def handler(event, context): return {"statusCode": 200, "body": json.dumps({"hello": "world2"})}""" - docker_file_content = """FROM public.ecr.aws/lambda/python:3.7 + docker_file_content = """FROM public.ecr.aws/lambda/python:3.11 COPY main.py ./""" container_mode = ContainersInitializationMode.LAZY.value build_before_invoke = True diff --git a/tests/integration/package/package_integ_base.py b/tests/integration/package/package_integ_base.py index 980f36856e..2f373812f9 100644 --- a/tests/integration/package/package_integ_base.py +++ b/tests/integration/package/package_integ_base.py @@ -25,8 +25,8 @@ def setUpClass(cls): Our integration tests use S3 bucket and ECR Repo to run several tests. Given that S3 objects are eventually consistent and we are using same bucket for lot of integration tests, we want to have multiple buckets to reduce - transient failures. In order to achieve this we created 3 buckets one for each python version we support (3.7, - 3.8 and 3.9). Tests running for respective python version will use respective bucket. + transient failures. In order to achieve this we created 3 buckets one for each python version we support (3.8, + and 3.9). Tests running for respective python version will use respective bucket. AWS_S3 will point to a new environment variable AWS_S3_36 or AWS_S3_37 or AWS_S3_38. This is controlled by Appveyor. These environment variables will hold bucket name to run integration tests. Eg: diff --git a/tests/integration/sync/sync_integ_base.py b/tests/integration/sync/sync_integ_base.py index 7797bf11c7..95a3932da0 100644 --- a/tests/integration/sync/sync_integ_base.py +++ b/tests/integration/sync/sync_integ_base.py @@ -36,9 +36,7 @@ def setUpClass(cls) -> None: original_test_data_path = Path(__file__).resolve().parents[1].joinpath("testdata", "sync") cls.test_data_path = Path(tempfile.mkdtemp()) - # since dirs_exist_ok=True only supported after py3.7, first delete the parent folder and run copytree after - shutil.rmtree(cls.test_data_path) - shutil.copytree(original_test_data_path, cls.test_data_path) + shutil.copytree(original_test_data_path, cls.test_data_path, dirs_exist_ok=True) @classmethod def tearDownClass(cls) -> None: diff --git a/tests/integration/sync/test_sync_adl.py b/tests/integration/sync/test_sync_adl.py index 854325af20..f5e0a4c32e 100644 --- a/tests/integration/sync/test_sync_adl.py +++ b/tests/integration/sync/test_sync_adl.py @@ -128,7 +128,7 @@ def test_sync_watch_code(self): ) read_until_string( self.watch_process, - "\x1b[32mFinished syncing Layer HelloWorldFunction", + "Finished syncing Layer HelloWorldFunction", timeout=60, ) lambda_response = json.loads(self._get_lambda_response(lambda_functions[0])) @@ -142,7 +142,7 @@ def test_sync_watch_code(self): ) read_until_string( self.watch_process, - "\x1b[32mFinished syncing Layer HelloWorldFunction", + "Finished syncing Layer HelloWorldFunction", timeout=60, ) self._confirm_lambda_error(lambda_functions[0]) @@ -154,7 +154,7 @@ def test_sync_watch_code(self): ) read_until_string( self.watch_process, - "\x1b[32mFinished syncing Function Layer Reference Sync HelloWorldFunction.\x1b[0m\n", + "Finished syncing Function Layer Reference Sync HelloWorldFunction.\x1b[0m\n", timeout=60, ) diff --git a/tests/integration/sync/test_sync_infra.py b/tests/integration/sync/test_sync_infra.py index 53bf5fb763..8fccabede8 100644 --- a/tests/integration/sync/test_sync_infra.py +++ b/tests/integration/sync/test_sync_infra.py @@ -43,9 +43,7 @@ def setUp(self): original_test_data_path = Path(__file__).resolve().parents[1].joinpath("testdata", "sync") self.test_data_path = Path(tempfile.mkdtemp()) - # since dirs_exist_ok=True only supported after py3.7, first delete the parent folder and run copytree after - shutil.rmtree(self.test_data_path) - shutil.copytree(original_test_data_path, self.test_data_path) + shutil.copytree(original_test_data_path, self.test_data_path, dirs_exist_ok=True) self.parameter_overrides = {"HelloWorldLayerName": f"HelloWorldLayer-{uuid.uuid4().hex}"[:140]} diff --git a/tests/integration/sync/test_sync_watch.py b/tests/integration/sync/test_sync_watch.py index f450060cb9..133d1ddbde 100644 --- a/tests/integration/sync/test_sync_watch.py +++ b/tests/integration/sync/test_sync_watch.py @@ -223,7 +223,7 @@ def test_sync_watch_code(self): ) read_until_string( self.watch_process, - "\x1b[32mFinished syncing Function Layer Reference Sync HelloWorldFunction.\x1b[0m\n", + "Finished syncing Function Layer Reference Sync HelloWorldFunction.\x1b[0m\n", timeout=45, ) layer_contents = self.get_dependency_layer_contents_from_arn(self.stack_resources, "python", 2) @@ -235,7 +235,7 @@ def test_sync_watch_code(self): self.test_data_path.joinpath("code", "before", "function", "app.py"), ) read_until_string( - self.watch_process, "\x1b[32mFinished syncing Lambda Function HelloWorldFunction.\x1b[0m\n", timeout=30 + self.watch_process, "Finished syncing Lambda Function HelloWorldFunction.\x1b[0m\n", timeout=30 ) lambda_functions = self.stack_resources.get(AWS_LAMBDA_FUNCTION) for lambda_function in lambda_functions: @@ -250,7 +250,7 @@ def test_sync_watch_code(self): ) read_until_string( self.watch_process, - "\x1b[32mFinished syncing Function Layer Reference Sync HelloWorldFunction.\x1b[0m\n", + "Finished syncing Function Layer Reference Sync HelloWorldFunction.\x1b[0m\n", timeout=30, ) lambda_functions = self.stack_resources.get(AWS_LAMBDA_FUNCTION) @@ -264,7 +264,7 @@ def test_sync_watch_code(self): self.test_data_path.joinpath("code", "after", "apigateway", "definition.json"), self.test_data_path.joinpath("code", "before", "apigateway", "definition.json"), ) - read_until_string(self.watch_process, "\x1b[32mFinished syncing RestApi HelloWorldApi.\x1b[0m\n", timeout=20) + read_until_string(self.watch_process, "Finished syncing RestApi HelloWorldApi.\x1b[0m\n", timeout=20) time.sleep(API_SLEEP) rest_api = self.stack_resources.get(AWS_APIGATEWAY_RESTAPI)[0] self.assertEqual(self._get_api_message(rest_api), '{"message": "hello 2"}') @@ -274,9 +274,7 @@ def test_sync_watch_code(self): self.test_data_path.joinpath("code", "after", "statemachine", "function.asl.json"), self.test_data_path.joinpath("code", "before", "statemachine", "function.asl.json"), ) - read_until_string( - self.watch_process, "\x1b[32mFinished syncing StepFunctions HelloStepFunction.\x1b[0m\n", timeout=20 - ) + read_until_string(self.watch_process, "Finished syncing StepFunctions HelloStepFunction.\x1b[0m\n", timeout=20) state_machine = self.stack_resources.get(AWS_STEPFUNCTIONS_STATEMACHINE)[0] time.sleep(SFN_SLEEP) self.assertEqual(self._get_sfn_response(state_machine), '"World 2"') @@ -326,8 +324,7 @@ def test_sync_watch_code_nested_stack(self): ) read_until_string( self.watch_process, - "\x1b[32mFinished syncing Function Layer Reference Sync " - "LocalNestedChildStack/HelloWorldFunction.\x1b[0m\n", + "Finished syncing Function Layer Reference Sync " "LocalNestedChildStack/HelloWorldFunction.\x1b[0m\n", timeout=45, ) layer_contents = self.get_dependency_layer_contents_from_arn(self.stack_resources, "python", 2) @@ -340,7 +337,7 @@ def test_sync_watch_code_nested_stack(self): ) read_until_string( self.watch_process, - "\x1b[32mFinished syncing Lambda Function LocalNestedChildStack/HelloWorldFunction.\x1b[0m\n", + "Finished syncing Lambda Function LocalNestedChildStack/HelloWorldFunction.\x1b[0m\n", timeout=30, ) lambda_functions = self.stack_resources.get(AWS_LAMBDA_FUNCTION) @@ -356,7 +353,7 @@ def test_sync_watch_code_nested_stack(self): ) read_until_string( self.watch_process, - "\x1b[32mFinished syncing Function Layer Reference Sync LocalNestedChildStack/HelloWorldFunction.\x1b[0m\n", + "Finished syncing Function Layer Reference Sync LocalNestedChildStack/HelloWorldFunction.\x1b[0m\n", timeout=30, ) lambda_functions = self.stack_resources.get(AWS_LAMBDA_FUNCTION) @@ -372,7 +369,7 @@ def test_sync_watch_code_nested_stack(self): ) read_until_string( self.watch_process, - "\x1b[32mFinished syncing RestApi LocalNestedChildStack/HelloWorldApi.\x1b[0m\n", + "Finished syncing RestApi LocalNestedChildStack/HelloWorldApi.\x1b[0m\n", timeout=20, ) time.sleep(API_SLEEP) @@ -386,7 +383,7 @@ def test_sync_watch_code_nested_stack(self): ) read_until_string( self.watch_process, - "\x1b[32mFinished syncing StepFunctions LocalNestedChildStack/HelloStepFunction.\x1b[0m\n", + "Finished syncing StepFunctions LocalNestedChildStack/HelloStepFunction.\x1b[0m\n", timeout=20, ) state_machine = self.stack_resources.get(AWS_STEPFUNCTIONS_STATEMACHINE)[0] @@ -413,7 +410,7 @@ def test_sync_watch_code(self): self.test_data_path.joinpath("code", "before", "esbuild_function", "app.ts"), ) read_until_string( - self.watch_process, "\x1b[32mFinished syncing Lambda Function HelloWorldFunction.\x1b[0m\n", timeout=30 + self.watch_process, "Finished syncing Lambda Function HelloWorldFunction.\x1b[0m\n", timeout=30 ) lambda_functions = self.stack_resources.get(AWS_LAMBDA_FUNCTION) for lambda_function in lambda_functions: @@ -473,7 +470,7 @@ def test_sync_watch_code(self): self.test_data_path.joinpath("code", "before", "function", "requirements.txt"), ) read_until_string( - self.watch_process, "\x1b[32mFinished syncing Lambda Function HelloWorldFunction.\x1b[0m\n", timeout=45 + self.watch_process, "Finished syncing Lambda Function HelloWorldFunction.\x1b[0m\n", timeout=45 ) lambda_functions = self.stack_resources.get(AWS_LAMBDA_FUNCTION) @@ -521,7 +518,7 @@ def test_sync_watch_code(self): tags="integ=true clarity=yes foo_bar=baz", ) self.watch_process = start_persistent_process(sync_command_list, cwd=self.test_data_path) - read_until_string(self.watch_process, "\x1b[32mSync watch started.\x1b[0m\n", timeout=30) + read_until_string(self.watch_process, "Sync watch started.\x1b[0m\n", timeout=30) self.stack_resources = self._get_stacks(self.stack_name) @@ -535,7 +532,7 @@ def test_sync_watch_code(self): ) read_until_string( self.watch_process, - "\x1b[32mFinished syncing Function Layer Reference Sync HelloWorldFunction.\x1b[0m\n", + "Finished syncing Function Layer Reference Sync HelloWorldFunction.\x1b[0m\n", timeout=45, ) layer_contents = self.get_dependency_layer_contents_from_arn(self.stack_resources, "python", 2) @@ -547,7 +544,7 @@ def test_sync_watch_code(self): self.test_data_path.joinpath("code", "before", "function", "app.py"), ) read_until_string( - self.watch_process, "\x1b[32mFinished syncing Lambda Function HelloWorldFunction.\x1b[0m\n", timeout=30 + self.watch_process, "Finished syncing Lambda Function HelloWorldFunction.\x1b[0m\n", timeout=30 ) lambda_functions = self.stack_resources.get(AWS_LAMBDA_FUNCTION) for lambda_function in lambda_functions: @@ -562,7 +559,7 @@ def test_sync_watch_code(self): ) read_until_string( self.watch_process, - "\x1b[32mFinished syncing Function Layer Reference Sync HelloWorldFunction.\x1b[0m\n", + "Finished syncing Function Layer Reference Sync HelloWorldFunction.\x1b[0m\n", timeout=30, ) lambda_functions = self.stack_resources.get(AWS_LAMBDA_FUNCTION) @@ -679,7 +676,7 @@ def test_sync_watch_auto_skip_infra(self): self.watch_process = start_persistent_process(sync_command_list, cwd=self.test_dir) read_until_string( - self.watch_process, "\x1b[32mFinished syncing Lambda Function HelloWorldFunction.\x1b[0m\n", timeout=100 + self.watch_process, "Finished syncing Lambda Function HelloWorldFunction.\x1b[0m\n", timeout=100 ) kill_process(self.watch_process) @@ -714,7 +711,7 @@ def test_sync_watch_auto_skip_infra(self): read_until_string( self.watch_process, - "\x1b[32mFinished syncing Function Layer Reference Sync HelloWorldFunction.\x1b[0m\n", + "Finished syncing Function Layer Reference Sync HelloWorldFunction.\x1b[0m\n", timeout=100, ) @@ -749,7 +746,7 @@ def test_sync_watch_auto_skip_infra(self): read_until_string( self.watch_process, - "\x1b[32mFinished syncing RestApi HelloWorldApi.\x1b[0m\n", + "Finished syncing RestApi HelloWorldApi.\x1b[0m\n", timeout=100, ) time.sleep(API_SLEEP) @@ -781,7 +778,7 @@ def test_sync_watch_auto_skip_infra(self): read_until_string( self.watch_process, - "\x1b[32mFinished syncing StepFunctions HelloStepFunction.\x1b[0m\n", + "Finished syncing StepFunctions HelloStepFunction.\x1b[0m\n", timeout=100, ) time.sleep(SFN_SLEEP) diff --git a/tests/integration/testdata/buildcmd/Dotnet8/HelloWorld.csproj b/tests/integration/testdata/buildcmd/Dotnet8/HelloWorld.csproj new file mode 100644 index 0000000000..1ca34ecbcc --- /dev/null +++ b/tests/integration/testdata/buildcmd/Dotnet8/HelloWorld.csproj @@ -0,0 +1,15 @@ + + + + net8.0 + true + + + + + + + + + + \ No newline at end of file diff --git a/tests/integration/testdata/buildcmd/Dotnet8/Program.cs b/tests/integration/testdata/buildcmd/Dotnet8/Program.cs new file mode 100644 index 0000000000..f841dafdf1 --- /dev/null +++ b/tests/integration/testdata/buildcmd/Dotnet8/Program.cs @@ -0,0 +1,36 @@ +using Amazon.Lambda.Core; +using Amazon.Lambda.APIGatewayEvents; + +// Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class. +[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] + +namespace HelloWorld +{ + + public class Function + { + + public string FunctionHandler(APIGatewayProxyRequest apigProxyEvent, ILambdaContext context) + { + return "{'message': 'Hello World'}"; + } + } + + public class FirstFunction + { + + public string FunctionHandler(APIGatewayProxyRequest apigProxyEvent, ILambdaContext context) + { + return "Hello World"; + } + } + + public class SecondFunction + { + + public string FunctionHandler(APIGatewayProxyRequest apigProxyEvent, ILambdaContext context) + { + return "Hello Mars"; + } + } +} \ No newline at end of file diff --git a/tests/integration/testdata/buildcmd/Dotnet8/aws-lambda-tools-defaults.json b/tests/integration/testdata/buildcmd/Dotnet8/aws-lambda-tools-defaults.json new file mode 100644 index 0000000000..d4a2ed5caf --- /dev/null +++ b/tests/integration/testdata/buildcmd/Dotnet8/aws-lambda-tools-defaults.json @@ -0,0 +1,19 @@ +{ + "Information" : [ + "This file provides default values for the deployment wizard inside Visual Studio and the AWS Lambda commands added to the .NET Core CLI.", + "To learn more about the Lambda commands with the .NET Core CLI execute the following command at the command line in the project root directory.", + + "dotnet lambda help", + + "All the command line options for the Lambda command can be specified in this file." + ], + + "profile":"", + "region" : "", + "configuration": "Release", + "framework": "net8.0", + "function-runtime":"dotnet8", + "function-memory-size" : 256, + "function-timeout" : 30, + "function-handler" : "HelloWorld::HelloWorld.Function::FunctionHandler" +} diff --git a/tests/integration/testdata/buildcmd/PyLayer/requirements.txt b/tests/integration/testdata/buildcmd/PyLayer/requirements.txt index ce4af48039..d5d7b17f51 100644 --- a/tests/integration/testdata/buildcmd/PyLayer/requirements.txt +++ b/tests/integration/testdata/buildcmd/PyLayer/requirements.txt @@ -1,7 +1,8 @@ # These are some hard packages to build. Using them here helps us verify that building works on various platforms # NOTE: Fixing to <1.20.3 as numpy1.20.3 started to use a new wheel naming convention (PEP 600) -numpy<1.20.3 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' # `cryptography` has a dependency on `pycparser` which, for some reason doesn't build inside a Docker container. # Turning this off until we resolve this issue: https://github.com/awslabs/aws-lambda-builders/issues/29 # cryptography~=2.4 diff --git a/tests/integration/testdata/buildcmd/PyLayerMake/requirements.txt b/tests/integration/testdata/buildcmd/PyLayerMake/requirements.txt index ce4af48039..d5d7b17f51 100644 --- a/tests/integration/testdata/buildcmd/PyLayerMake/requirements.txt +++ b/tests/integration/testdata/buildcmd/PyLayerMake/requirements.txt @@ -1,7 +1,8 @@ # These are some hard packages to build. Using them here helps us verify that building works on various platforms # NOTE: Fixing to <1.20.3 as numpy1.20.3 started to use a new wheel naming convention (PEP 600) -numpy<1.20.3 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' # `cryptography` has a dependency on `pycparser` which, for some reason doesn't build inside a Docker container. # Turning this off until we resolve this issue: https://github.com/awslabs/aws-lambda-builders/issues/29 # cryptography~=2.4 diff --git a/tests/integration/testdata/buildcmd/PythonImage/requirements.txt b/tests/integration/testdata/buildcmd/PythonImage/requirements.txt index ce4af48039..d5d7b17f51 100644 --- a/tests/integration/testdata/buildcmd/PythonImage/requirements.txt +++ b/tests/integration/testdata/buildcmd/PythonImage/requirements.txt @@ -1,7 +1,8 @@ # These are some hard packages to build. Using them here helps us verify that building works on various platforms # NOTE: Fixing to <1.20.3 as numpy1.20.3 started to use a new wheel naming convention (PEP 600) -numpy<1.20.3 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' # `cryptography` has a dependency on `pycparser` which, for some reason doesn't build inside a Docker container. # Turning this off until we resolve this issue: https://github.com/awslabs/aws-lambda-builders/issues/29 # cryptography~=2.4 diff --git a/tests/integration/testdata/buildcmd/PythonImagesWithSharedCode/requirements.txt b/tests/integration/testdata/buildcmd/PythonImagesWithSharedCode/requirements.txt index ce4af48039..d5d7b17f51 100644 --- a/tests/integration/testdata/buildcmd/PythonImagesWithSharedCode/requirements.txt +++ b/tests/integration/testdata/buildcmd/PythonImagesWithSharedCode/requirements.txt @@ -1,7 +1,8 @@ # These are some hard packages to build. Using them here helps us verify that building works on various platforms # NOTE: Fixing to <1.20.3 as numpy1.20.3 started to use a new wheel naming convention (PEP 600) -numpy<1.20.3 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' # `cryptography` has a dependency on `pycparser` which, for some reason doesn't build inside a Docker container. # Turning this off until we resolve this issue: https://github.com/awslabs/aws-lambda-builders/issues/29 # cryptography~=2.4 diff --git a/tests/integration/testdata/buildcmd/asset.6598609927b272b36fdf01072092f9851ddcd1b41ba294f736ce77091f5cc456/requirements.txt b/tests/integration/testdata/buildcmd/asset.6598609927b272b36fdf01072092f9851ddcd1b41ba294f736ce77091f5cc456/requirements.txt index 141927094f..d2278d8b39 100644 --- a/tests/integration/testdata/buildcmd/asset.6598609927b272b36fdf01072092f9851ddcd1b41ba294f736ce77091f5cc456/requirements.txt +++ b/tests/integration/testdata/buildcmd/asset.6598609927b272b36fdf01072092f9851ddcd1b41ba294f736ce77091f5cc456/requirements.txt @@ -1 +1,2 @@ -numpy<1.20.4 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' diff --git a/tests/integration/testdata/buildcmd/asset.b998895901bf33127f2c9dce715854f8b35aa73fb7eb5245ba9721580bbe5837/requirements.txt b/tests/integration/testdata/buildcmd/asset.b998895901bf33127f2c9dce715854f8b35aa73fb7eb5245ba9721580bbe5837/requirements.txt index 141927094f..9916988520 100644 --- a/tests/integration/testdata/buildcmd/asset.b998895901bf33127f2c9dce715854f8b35aa73fb7eb5245ba9721580bbe5837/requirements.txt +++ b/tests/integration/testdata/buildcmd/asset.b998895901bf33127f2c9dce715854f8b35aa73fb7eb5245ba9721580bbe5837/requirements.txt @@ -1 +1,2 @@ -numpy<1.20.4 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' \ No newline at end of file diff --git a/tests/integration/testdata/buildcmd/base-dir/ChildStackX/ChildStackY/template.yaml b/tests/integration/testdata/buildcmd/base-dir/ChildStackX/ChildStackY/template.yaml index c87a76fc2e..23449b30f7 100644 --- a/tests/integration/testdata/buildcmd/base-dir/ChildStackX/ChildStackY/template.yaml +++ b/tests/integration/testdata/buildcmd/base-dir/ChildStackX/ChildStackY/template.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main_a_2.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: ChildStackX/ChildStackY/FunctionA Timeout: 600 @@ -18,4 +18,4 @@ Resources: Description: Layer description ContentUri: ChildStackX/ChildStackY/MyLayerVersion CompatibleRuntimes: - - python3.7 \ No newline at end of file + - python3.11 \ No newline at end of file diff --git a/tests/integration/testdata/buildcmd/base-dir/ChildStackX/template.yaml b/tests/integration/testdata/buildcmd/base-dir/ChildStackX/template.yaml index 14d70104d4..d22b25d62e 100644 --- a/tests/integration/testdata/buildcmd/base-dir/ChildStackX/template.yaml +++ b/tests/integration/testdata/buildcmd/base-dir/ChildStackX/template.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main_b.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: ChildStackX/FunctionB Timeout: 600 diff --git a/tests/integration/testdata/buildcmd/base-dir/template/template.yaml b/tests/integration/testdata/buildcmd/base-dir/template/template.yaml index 5b97b03bd7..eb78ec920f 100644 --- a/tests/integration/testdata/buildcmd/base-dir/template/template.yaml +++ b/tests/integration/testdata/buildcmd/base-dir/template/template.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main_a.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: FunctionA Timeout: 600 diff --git a/tests/integration/testdata/buildcmd/build_image_function.yaml b/tests/integration/testdata/buildcmd/build_image_function.yaml index 5f335b9574..26e643d483 100644 --- a/tests/integration/testdata/buildcmd/build_image_function.yaml +++ b/tests/integration/testdata/buildcmd/build_image_function.yaml @@ -12,4 +12,4 @@ Resources: Properties: CodeUri: Python Handler: main.handler - Runtime: python3.7 \ No newline at end of file + Runtime: python3.11 \ No newline at end of file diff --git a/tests/integration/testdata/buildcmd/cdk_v1_synthesized_template_function_construct_with_skip_build_metadata.json b/tests/integration/testdata/buildcmd/cdk_v1_synthesized_template_function_construct_with_skip_build_metadata.json index 7021b71865..5c6882c36a 100644 --- a/tests/integration/testdata/buildcmd/cdk_v1_synthesized_template_function_construct_with_skip_build_metadata.json +++ b/tests/integration/testdata/buildcmd/cdk_v1_synthesized_template_function_construct_with_skip_build_metadata.json @@ -82,7 +82,7 @@ ] }, "Handler": "main.handler", - "Runtime": "python3.7", + "Runtime": "python3.11", "Timeout": 120 }, "DependsOn": [ diff --git a/tests/integration/testdata/buildcmd/cdk_v1_synthesized_template_zip_image_functions.json b/tests/integration/testdata/buildcmd/cdk_v1_synthesized_template_zip_image_functions.json index c5057789d5..889742b311 100644 --- a/tests/integration/testdata/buildcmd/cdk_v1_synthesized_template_zip_image_functions.json +++ b/tests/integration/testdata/buildcmd/cdk_v1_synthesized_template_zip_image_functions.json @@ -82,7 +82,7 @@ ] }, "Handler": "main.handler", - "Runtime": "python3.7", + "Runtime": "python3.11", "Timeout": "30" }, "DependsOn": [ diff --git a/tests/integration/testdata/buildcmd/cdk_v2_synthesized_template_function_construct_with_skip_build_metadata.json b/tests/integration/testdata/buildcmd/cdk_v2_synthesized_template_function_construct_with_skip_build_metadata.json index a1314c468f..200b0aaa08 100644 --- a/tests/integration/testdata/buildcmd/cdk_v2_synthesized_template_function_construct_with_skip_build_metadata.json +++ b/tests/integration/testdata/buildcmd/cdk_v2_synthesized_template_function_construct_with_skip_build_metadata.json @@ -50,7 +50,7 @@ ] }, "Handler": "main.handler", - "Runtime": "python3.7", + "Runtime": "python3.11", "Timeout": 120 }, "DependsOn": [ diff --git a/tests/integration/testdata/buildcmd/container_env_vars_template.yml b/tests/integration/testdata/buildcmd/container_env_vars_template.yml index fedf57c4bc..efc0dd16df 100644 --- a/tests/integration/testdata/buildcmd/container_env_vars_template.yml +++ b/tests/integration/testdata/buildcmd/container_env_vars_template.yml @@ -12,6 +12,6 @@ Resources: Properties: CodeUri: PythonContainerEnvVars Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 Metadata: BuildMethod: makefile \ No newline at end of file diff --git a/tests/integration/testdata/buildcmd/dedup-functions-makefile-template.yaml b/tests/integration/testdata/buildcmd/dedup-functions-makefile-template.yaml index aea9b21a4e..299ee56ef5 100644 --- a/tests/integration/testdata/buildcmd/dedup-functions-makefile-template.yaml +++ b/tests/integration/testdata/buildcmd/dedup-functions-makefile-template.yaml @@ -12,7 +12,7 @@ Resources: Properties: CodeUri: ProvidedWithMultipleFunctions Handler: first_function.handler - Runtime: python3.7 + Runtime: python3.11 Metadata: BuildMethod: makefile HelloMarsFunction: @@ -20,6 +20,6 @@ Resources: Properties: CodeUri: ProvidedWithMultipleFunctions Handler: second_function.handler - Runtime: python3.7 + Runtime: python3.11 Metadata: BuildMethod: makefile diff --git a/tests/integration/testdata/buildcmd/deep-nested/ChildStackX/ChildStackY/template.yaml b/tests/integration/testdata/buildcmd/deep-nested/ChildStackX/ChildStackY/template.yaml index ec8c55d59a..0327e6a89d 100644 --- a/tests/integration/testdata/buildcmd/deep-nested/ChildStackX/ChildStackY/template.yaml +++ b/tests/integration/testdata/buildcmd/deep-nested/ChildStackX/ChildStackY/template.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main_a_2.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: FunctionA Timeout: 600 @@ -18,4 +18,4 @@ Resources: Description: Layer description ContentUri: MyLayerVersion CompatibleRuntimes: - - python3.7 \ No newline at end of file + - python3.11 \ No newline at end of file diff --git a/tests/integration/testdata/buildcmd/deep-nested/ChildStackX/template.yaml b/tests/integration/testdata/buildcmd/deep-nested/ChildStackX/template.yaml index d67b05390f..fa24b839e1 100644 --- a/tests/integration/testdata/buildcmd/deep-nested/ChildStackX/template.yaml +++ b/tests/integration/testdata/buildcmd/deep-nested/ChildStackX/template.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main_b.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: FunctionB Timeout: 600 diff --git a/tests/integration/testdata/buildcmd/deep-nested/template-with-symlink.yaml b/tests/integration/testdata/buildcmd/deep-nested/template-with-symlink.yaml index 7810af17f9..07eb6df599 100644 --- a/tests/integration/testdata/buildcmd/deep-nested/template-with-symlink.yaml +++ b/tests/integration/testdata/buildcmd/deep-nested/template-with-symlink.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main_a.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: FunctionA Timeout: 600 diff --git a/tests/integration/testdata/buildcmd/deep-nested/template.yaml b/tests/integration/testdata/buildcmd/deep-nested/template.yaml index 4dbd1e5de9..60d1607689 100644 --- a/tests/integration/testdata/buildcmd/deep-nested/template.yaml +++ b/tests/integration/testdata/buildcmd/deep-nested/template.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main_a.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: FunctionA Timeout: 600 diff --git a/tests/integration/testdata/buildcmd/inline_template.yaml b/tests/integration/testdata/buildcmd/inline_template.yaml index ee4ab19012..b71ad801eb 100644 --- a/tests/integration/testdata/buildcmd/inline_template.yaml +++ b/tests/integration/testdata/buildcmd/inline_template.yaml @@ -12,10 +12,10 @@ Resources: Properties: CodeUri: Python Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 InlineCodeFunction: Type: AWS::Serverless::Function Properties: InlineCode: "def handler(): pass" Handler: index.handler - Runtime: python3.7 \ No newline at end of file + Runtime: python3.11 \ No newline at end of file diff --git a/tests/integration/testdata/buildcmd/layers-functions-template.yaml b/tests/integration/testdata/buildcmd/layers-functions-template.yaml index 36810c782f..17eab33cee 100644 --- a/tests/integration/testdata/buildcmd/layers-functions-template.yaml +++ b/tests/integration/testdata/buildcmd/layers-functions-template.yaml @@ -48,7 +48,7 @@ Resources: Description: Layer one ContentUri: !Ref LayerContentUri CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: BuildMethod: !Ref LayerBuildMethod @@ -58,7 +58,7 @@ Resources: Description: Lambda Layer one Content: !Ref LayerContentUri CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: BuildMethod: !Ref LayerBuildMethod @@ -68,7 +68,7 @@ Resources: Description: Layer two ContentUri: !Ref LayerContentUri CompatibleRuntimes: - - python3.7 + - python3.11 LayerWithMakefile: Type: AWS::Serverless::LayerVersion @@ -76,7 +76,7 @@ Resources: Description: Layer three ContentUri: !Ref LayerMakeContentUri CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: BuildMethod: !Ref LayerBuildMethod diff --git a/tests/integration/testdata/buildcmd/template_cfn_function_flagged_to_skip_build.yaml b/tests/integration/testdata/buildcmd/template_cfn_function_flagged_to_skip_build.yaml index 0d914a47cb..9abe4dd7eb 100644 --- a/tests/integration/testdata/buildcmd/template_cfn_function_flagged_to_skip_build.yaml +++ b/tests/integration/testdata/buildcmd/template_cfn_function_flagged_to_skip_build.yaml @@ -6,7 +6,7 @@ Resources: Type: AWS::Lambda::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 Code: Python Timeout: 600 @@ -14,7 +14,7 @@ Resources: Type: AWS::Lambda::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 Code: PreBuiltPython Timeout: 600 Metadata: diff --git a/tests/integration/testdata/buildcmd/template_function_flagged_to_skip_build.yaml b/tests/integration/testdata/buildcmd/template_function_flagged_to_skip_build.yaml index c45159e755..52ab5a4359 100644 --- a/tests/integration/testdata/buildcmd/template_function_flagged_to_skip_build.yaml +++ b/tests/integration/testdata/buildcmd/template_function_flagged_to_skip_build.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: Python Timeout: 600 @@ -15,7 +15,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: PreBuiltPython Timeout: 600 Metadata: diff --git a/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_local_backend/my_layer_code/requirements.txt b/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_local_backend/my_layer_code/requirements.txt index ce4af48039..d5d7b17f51 100644 --- a/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_local_backend/my_layer_code/requirements.txt +++ b/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_local_backend/my_layer_code/requirements.txt @@ -1,7 +1,8 @@ # These are some hard packages to build. Using them here helps us verify that building works on various platforms # NOTE: Fixing to <1.20.3 as numpy1.20.3 started to use a new wheel naming convention (PEP 600) -numpy<1.20.3 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' # `cryptography` has a dependency on `pycparser` which, for some reason doesn't build inside a Docker container. # Turning this off until we resolve this issue: https://github.com/awslabs/aws-lambda-builders/issues/29 # cryptography~=2.4 diff --git a/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_local_backend_container_windows/my_layer_code/requirements.txt b/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_local_backend_container_windows/my_layer_code/requirements.txt index ce4af48039..d5d7b17f51 100644 --- a/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_local_backend_container_windows/my_layer_code/requirements.txt +++ b/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_local_backend_container_windows/my_layer_code/requirements.txt @@ -1,7 +1,8 @@ # These are some hard packages to build. Using them here helps us verify that building works on various platforms # NOTE: Fixing to <1.20.3 as numpy1.20.3 started to use a new wheel naming convention (PEP 600) -numpy<1.20.3 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' # `cryptography` has a dependency on `pycparser` which, for some reason doesn't build inside a Docker container. # Turning this off until we resolve this issue: https://github.com/awslabs/aws-lambda-builders/issues/29 # cryptography~=2.4 diff --git a/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_local_backend_windows/my_layer_code/requirements.txt b/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_local_backend_windows/my_layer_code/requirements.txt index ce4af48039..d5d7b17f51 100644 --- a/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_local_backend_windows/my_layer_code/requirements.txt +++ b/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_local_backend_windows/my_layer_code/requirements.txt @@ -1,7 +1,8 @@ # These are some hard packages to build. Using them here helps us verify that building works on various platforms # NOTE: Fixing to <1.20.3 as numpy1.20.3 started to use a new wheel naming convention (PEP 600) -numpy<1.20.3 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' # `cryptography` has a dependency on `pycparser` which, for some reason doesn't build inside a Docker container. # Turning this off until we resolve this issue: https://github.com/awslabs/aws-lambda-builders/issues/29 # cryptography~=2.4 diff --git a/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_s3_backend/my_layer_code/requirements.txt b/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_s3_backend/my_layer_code/requirements.txt index ce4af48039..d5d7b17f51 100644 --- a/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_s3_backend/my_layer_code/requirements.txt +++ b/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_s3_backend/my_layer_code/requirements.txt @@ -1,7 +1,8 @@ # These are some hard packages to build. Using them here helps us verify that building works on various platforms # NOTE: Fixing to <1.20.3 as numpy1.20.3 started to use a new wheel naming convention (PEP 600) -numpy<1.20.3 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' # `cryptography` has a dependency on `pycparser` which, for some reason doesn't build inside a Docker container. # Turning this off until we resolve this issue: https://github.com/awslabs/aws-lambda-builders/issues/29 # cryptography~=2.4 diff --git a/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_s3_backend_windows/my_layer_code/requirements.txt b/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_s3_backend_windows/my_layer_code/requirements.txt index ce4af48039..d5d7b17f51 100644 --- a/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_s3_backend_windows/my_layer_code/requirements.txt +++ b/tests/integration/testdata/buildcmd/terraform/zip_based_lambda_functions_s3_backend_windows/my_layer_code/requirements.txt @@ -1,7 +1,8 @@ # These are some hard packages to build. Using them here helps us verify that building works on various platforms # NOTE: Fixing to <1.20.3 as numpy1.20.3 started to use a new wheel naming convention (PEP 600) -numpy<1.20.3 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' # `cryptography` has a dependency on `pycparser` which, for some reason doesn't build inside a Docker container. # Turning this off until we resolve this issue: https://github.com/awslabs/aws-lambda-builders/issues/29 # cryptography~=2.4 diff --git a/tests/integration/testdata/delete/aws-serverless-function-retain.yaml b/tests/integration/testdata/delete/aws-serverless-function-retain.yaml index ae857aa196..a183c4151f 100644 --- a/tests/integration/testdata/delete/aws-serverless-function-retain.yaml +++ b/tests/integration/testdata/delete/aws-serverless-function-retain.yaml @@ -13,7 +13,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 DeletionPolicy: Retain diff --git a/tests/integration/testdata/invoke/credential_tests/incontainer/ruby/Gemfile b/tests/integration/testdata/invoke/credential_tests/incontainer/ruby/Gemfile index 620aaa62f8..d058c25a74 100644 --- a/tests/integration/testdata/invoke/credential_tests/incontainer/ruby/Gemfile +++ b/tests/integration/testdata/invoke/credential_tests/incontainer/ruby/Gemfile @@ -1,3 +1,3 @@ source "https://rubygems.org" -ruby '~> 2.7.0' +ruby '~> 3.2.0' diff --git a/tests/integration/testdata/invoke/credential_tests/incontainer/template.yaml b/tests/integration/testdata/invoke/credential_tests/incontainer/template.yaml index 41772a60ac..378460c682 100644 --- a/tests/integration/testdata/invoke/credential_tests/incontainer/template.yaml +++ b/tests/integration/testdata/invoke/credential_tests/incontainer/template.yaml @@ -26,7 +26,7 @@ Resources: Properties: CodeUri: ruby Handler: app.lambda_handler - Runtime: ruby2.7 + Runtime: ruby3.2 NodeStsExample: Type: AWS::Serverless::Function Properties: diff --git a/tests/integration/testdata/invoke/template-pseudo-params.yaml b/tests/integration/testdata/invoke/template-pseudo-params.yaml index db92b20a58..67211d9eb8 100644 --- a/tests/integration/testdata/invoke/template-pseudo-params.yaml +++ b/tests/integration/testdata/invoke/template-pseudo-params.yaml @@ -56,7 +56,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main.intrinsics_handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Environment: diff --git a/tests/integration/testdata/invoke/template.yml b/tests/integration/testdata/invoke/template.yml index f070cf5e55..30ab827a5d 100644 --- a/tests/integration/testdata/invoke/template.yml +++ b/tests/integration/testdata/invoke/template.yml @@ -137,7 +137,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main.raise_exception - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 diff --git a/tests/integration/testdata/package/asset.6598609927b272b36fdf01072092f9851ddcd1b41ba294f736ce77091f5cc456/requirements.txt b/tests/integration/testdata/package/asset.6598609927b272b36fdf01072092f9851ddcd1b41ba294f736ce77091f5cc456/requirements.txt index 141927094f..d2278d8b39 100644 --- a/tests/integration/testdata/package/asset.6598609927b272b36fdf01072092f9851ddcd1b41ba294f736ce77091f5cc456/requirements.txt +++ b/tests/integration/testdata/package/asset.6598609927b272b36fdf01072092f9851ddcd1b41ba294f736ce77091f5cc456/requirements.txt @@ -1 +1,2 @@ -numpy<1.20.4 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' diff --git a/tests/integration/testdata/package/asset.b998895901bf33127f2c9dce715854f8b35aa73fb7eb5245ba9721580bbe5837/requirements.txt b/tests/integration/testdata/package/asset.b998895901bf33127f2c9dce715854f8b35aa73fb7eb5245ba9721580bbe5837/requirements.txt index 141927094f..d2278d8b39 100644 --- a/tests/integration/testdata/package/asset.b998895901bf33127f2c9dce715854f8b35aa73fb7eb5245ba9721580bbe5837/requirements.txt +++ b/tests/integration/testdata/package/asset.b998895901bf33127f2c9dce715854f8b35aa73fb7eb5245ba9721580bbe5837/requirements.txt @@ -1 +1,2 @@ -numpy<1.20.4 +numpy<1.20.3; python_version < '3.10' +numpy==1.26.4; python_version >= '3.10' diff --git a/tests/integration/testdata/package/aws-lambda-layerversion.yaml b/tests/integration/testdata/package/aws-lambda-layerversion.yaml index 70315e8360..f4145f06f3 100644 --- a/tests/integration/testdata/package/aws-lambda-layerversion.yaml +++ b/tests/integration/testdata/package/aws-lambda-layerversion.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Lambda::LayerVersion Properties: CompatibleRuntimes: - - python3.7 + - python3.11 Content: "." Description: My layer LayerName: my-layer diff --git a/tests/integration/testdata/package/aws-serverless-function-cdk.yaml b/tests/integration/testdata/package/aws-serverless-function-cdk.yaml index 34216cce16..991c2c279f 100644 --- a/tests/integration/testdata/package/aws-serverless-function-cdk.yaml +++ b/tests/integration/testdata/package/aws-serverless-function-cdk.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Metadata: diff --git a/tests/integration/testdata/package/aws-serverless-function-codedeploy-condition-warning.yaml b/tests/integration/testdata/package/aws-serverless-function-codedeploy-condition-warning.yaml index 717a0e440a..65a499d8cb 100644 --- a/tests/integration/testdata/package/aws-serverless-function-codedeploy-condition-warning.yaml +++ b/tests/integration/testdata/package/aws-serverless-function-codedeploy-condition-warning.yaml @@ -9,7 +9,7 @@ Resources: Condition: true Properties: Handler: lambda.lambda_handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: s3://bucket/key DeploymentPreference: Type: Linear10PercentEvery1Minute diff --git a/tests/integration/testdata/package/aws-serverless-function-codedeploy-warning.yaml b/tests/integration/testdata/package/aws-serverless-function-codedeploy-warning.yaml index cb0dd9fb95..17b9d5b5e9 100644 --- a/tests/integration/testdata/package/aws-serverless-function-codedeploy-warning.yaml +++ b/tests/integration/testdata/package/aws-serverless-function-codedeploy-warning.yaml @@ -9,7 +9,7 @@ Resources: Properties: Handler: lambda.lambda_handler Role: arn:aws:iam::123456789999:role/lambda-role - Runtime: python3.7 + Runtime: python3.11 CodeUri: s3://bucket/key AutoPublishAlias: live DeploymentPreference: @@ -29,7 +29,7 @@ Resources: Properties: Handler: hook.lambda_handler Role: arn:aws:iam::123456789999:role/lambda-role - Runtime: python3.7 + Runtime: python3.11 CodeUri: s3://bucket/key FunctionName: 'CodeDeployHook_preTrafficHook' AutoPublishAlias: live diff --git a/tests/integration/testdata/package/aws-serverless-function-with-code-signing.yaml b/tests/integration/testdata/package/aws-serverless-function-with-code-signing.yaml index a6830793b4..0e36dbe123 100644 --- a/tests/integration/testdata/package/aws-serverless-function-with-code-signing.yaml +++ b/tests/integration/testdata/package/aws-serverless-function-with-code-signing.yaml @@ -18,7 +18,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 CodeSigningConfigArn: !Ref HelloWorldFunctionCodeSigningConfig diff --git a/tests/integration/testdata/package/aws-serverless-function.yaml b/tests/integration/testdata/package/aws-serverless-function.yaml index 4beab4e506..0721ff5b20 100644 --- a/tests/integration/testdata/package/aws-serverless-function.yaml +++ b/tests/integration/testdata/package/aws-serverless-function.yaml @@ -13,6 +13,6 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 diff --git a/tests/integration/testdata/package/aws-serverless-inline.yaml b/tests/integration/testdata/package/aws-serverless-inline.yaml index b21dbf817a..27e7df3598 100644 --- a/tests/integration/testdata/package/aws-serverless-inline.yaml +++ b/tests/integration/testdata/package/aws-serverless-inline.yaml @@ -11,4 +11,4 @@ Resources: print(event) return {'body': 'Hello World 2!', 'statusCode': 200} Handler: index.handler - Runtime: python3.7 + Runtime: python3.11 diff --git a/tests/integration/testdata/package/aws-serverlessrepo-application.yaml b/tests/integration/testdata/package/aws-serverlessrepo-application.yaml index e96d5835d2..39bcd47033 100644 --- a/tests/integration/testdata/package/aws-serverlessrepo-application.yaml +++ b/tests/integration/testdata/package/aws-serverlessrepo-application.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 diff --git a/tests/integration/testdata/package/aws-serverlessrepo-application_regression.yaml b/tests/integration/testdata/package/aws-serverlessrepo-application_regression.yaml index 87917571ae..efea552101 100644 --- a/tests/integration/testdata/package/aws-serverlessrepo-application_regression.yaml +++ b/tests/integration/testdata/package/aws-serverlessrepo-application_regression.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Metadata: diff --git a/tests/integration/testdata/package/cdk_v1_synthesized_template_level3_nested_zip_functions.json b/tests/integration/testdata/package/cdk_v1_synthesized_template_level3_nested_zip_functions.json index f7ac52df84..10f1db8975 100644 --- a/tests/integration/testdata/package/cdk_v1_synthesized_template_level3_nested_zip_functions.json +++ b/tests/integration/testdata/package/cdk_v1_synthesized_template_level3_nested_zip_functions.json @@ -82,7 +82,7 @@ ] }, "Handler": "main.handler", - "Runtime": "python3.7" + "Runtime": "python3.11" }, "DependsOn": [ "RandomCitiesFunctionServiceRole4EFB1CF5" diff --git a/tests/integration/testdata/package/cdk_v1_synthesized_template_zip_functions.json b/tests/integration/testdata/package/cdk_v1_synthesized_template_zip_functions.json index f9960f41b3..87b5a021e3 100644 --- a/tests/integration/testdata/package/cdk_v1_synthesized_template_zip_functions.json +++ b/tests/integration/testdata/package/cdk_v1_synthesized_template_zip_functions.json @@ -82,7 +82,7 @@ ] }, "Handler": "main.handler", - "Runtime": "python3.7" + "Runtime": "python3.11" }, "DependsOn": [ "RandomCitiesFunctionServiceRole4EFB1CF5" diff --git a/tests/integration/testdata/package/deep-nested/ChildStackX/ChildStackY/template.yaml b/tests/integration/testdata/package/deep-nested/ChildStackX/ChildStackY/template.yaml index ec8c55d59a..0327e6a89d 100644 --- a/tests/integration/testdata/package/deep-nested/ChildStackX/ChildStackY/template.yaml +++ b/tests/integration/testdata/package/deep-nested/ChildStackX/ChildStackY/template.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main_a_2.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: FunctionA Timeout: 600 @@ -18,4 +18,4 @@ Resources: Description: Layer description ContentUri: MyLayerVersion CompatibleRuntimes: - - python3.7 \ No newline at end of file + - python3.11 \ No newline at end of file diff --git a/tests/integration/testdata/package/deep-nested/ChildStackX/template.yaml b/tests/integration/testdata/package/deep-nested/ChildStackX/template.yaml index d67b05390f..fa24b839e1 100644 --- a/tests/integration/testdata/package/deep-nested/ChildStackX/template.yaml +++ b/tests/integration/testdata/package/deep-nested/ChildStackX/template.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main_b.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: FunctionB Timeout: 600 diff --git a/tests/integration/testdata/package/deep-nested/template.yaml b/tests/integration/testdata/package/deep-nested/template.yaml index 4dbd1e5de9..60d1607689 100644 --- a/tests/integration/testdata/package/deep-nested/template.yaml +++ b/tests/integration/testdata/package/deep-nested/template.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main_a.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: FunctionA Timeout: 600 diff --git a/tests/integration/testdata/package/stackset/template.yaml b/tests/integration/testdata/package/stackset/template.yaml index 47e141019e..0e5d9bb4db 100644 --- a/tests/integration/testdata/package/stackset/template.yaml +++ b/tests/integration/testdata/package/stackset/template.yaml @@ -7,7 +7,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main_a.handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: FunctionA Timeout: 600 diff --git a/tests/integration/testdata/start_api/cfn-http-api-with-normal-and-default-routes.yaml b/tests/integration/testdata/start_api/cfn-http-api-with-normal-and-default-routes.yaml index 08512893f2..8585177648 100644 --- a/tests/integration/testdata/start_api/cfn-http-api-with-normal-and-default-routes.yaml +++ b/tests/integration/testdata/start_api/cfn-http-api-with-normal-and-default-routes.yaml @@ -13,7 +13,7 @@ Resources: Fn::GetAtt: - HelloWorldFunctionRole - Arn - Runtime: python3.7 + Runtime: python3.11 Tags: - Key: lambda:createdBy Value: SAM @@ -57,7 +57,7 @@ Resources: Fn::GetAtt: - HelloWorldFunctionRole2 - Arn - Runtime: python3.7 + Runtime: python3.11 Tags: - Key: lambda:createdBy Value: SAM diff --git a/tests/integration/testdata/start_api/cfn-http-api-with-swagger-body.yaml b/tests/integration/testdata/start_api/cfn-http-api-with-swagger-body.yaml index c092b2db3d..99392c7fc5 100644 --- a/tests/integration/testdata/start_api/cfn-http-api-with-swagger-body.yaml +++ b/tests/integration/testdata/start_api/cfn-http-api-with-swagger-body.yaml @@ -13,7 +13,7 @@ Resources: Fn::GetAtt: - HelloWorldFunctionRole - Arn - Runtime: python3.7 + Runtime: python3.11 Tags: - Key: lambda:createdBy Value: SAM diff --git a/tests/integration/testdata/start_api/cfn-quick-created-http-api-with-default-route.yaml b/tests/integration/testdata/start_api/cfn-quick-created-http-api-with-default-route.yaml index 3da4083175..119ce9408b 100644 --- a/tests/integration/testdata/start_api/cfn-quick-created-http-api-with-default-route.yaml +++ b/tests/integration/testdata/start_api/cfn-quick-created-http-api-with-default-route.yaml @@ -13,7 +13,7 @@ Resources: Fn::GetAtt: - HelloWorldFunctionRole - Arn - Runtime: python3.7 + Runtime: python3.11 Tags: - Key: lambda:createdBy Value: SAM diff --git a/tests/integration/testdata/start_api/cfn-quick-created-http-api-with-one-route.yaml b/tests/integration/testdata/start_api/cfn-quick-created-http-api-with-one-route.yaml index bfdcdd15c6..40207640d7 100644 --- a/tests/integration/testdata/start_api/cfn-quick-created-http-api-with-one-route.yaml +++ b/tests/integration/testdata/start_api/cfn-quick-created-http-api-with-one-route.yaml @@ -13,7 +13,7 @@ Resources: Fn::GetAtt: - HelloWorldFunctionRole - Arn - Runtime: python3.7 + Runtime: python3.11 Tags: - Key: lambda:createdBy Value: SAM diff --git a/tests/integration/testdata/start_api/swagger-template-http-api.yaml b/tests/integration/testdata/start_api/swagger-template-http-api.yaml index 371e800f0d..5993c2fdcd 100644 --- a/tests/integration/testdata/start_api/swagger-template-http-api.yaml +++ b/tests/integration/testdata/start_api/swagger-template-http-api.yaml @@ -110,7 +110,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main.echo_event_handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Events: @@ -127,7 +127,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: main.echo_event_handler - Runtime: python3.7 + Runtime: python3.11 CodeUri: . Timeout: 600 Events: diff --git a/tests/integration/testdata/start_api/template.yaml b/tests/integration/testdata/start_api/template.yaml index 7e50dc1d7f..bd26c21c0b 100644 --- a/tests/integration/testdata/start_api/template.yaml +++ b/tests/integration/testdata/start_api/template.yaml @@ -287,3 +287,17 @@ Resources: Properties: Method: GET Path: /multipleheadersoverridesheaders + + ZippedHelloWorldFunction: + Type: AWS::Serverless::Function + Properties: + Handler: zipped.sleep_10_sec_handler + Runtime: python3.9 + CodeUri: ./zipped.zip + Timeout: 600 + Events: + HelloWorld: + Type: Api + Properties: + Path: /sleepfortensecondszipped + Method: get diff --git a/tests/integration/testdata/start_api/zipped.zip b/tests/integration/testdata/start_api/zipped.zip new file mode 100644 index 0000000000..bd872a1b7c Binary files /dev/null and b/tests/integration/testdata/start_api/zipped.zip differ diff --git a/tests/integration/testdata/sync/code/before/template-makefile-create-new-file.yaml b/tests/integration/testdata/sync/code/before/template-makefile-create-new-file.yaml index dde583cc6e..d35d56be45 100644 --- a/tests/integration/testdata/sync/code/before/template-makefile-create-new-file.yaml +++ b/tests/integration/testdata/sync/code/before/template-makefile-create-new-file.yaml @@ -11,7 +11,7 @@ Resources: Properties: CodeUri: makefile_function_create_new_file/ Handler: main.handler - Runtime: python3.7 + Runtime: python3.11 Layers: - !Ref HelloWorldLayer Metadata: @@ -22,6 +22,6 @@ Resources: Properties: ContentUri: makefile_layer_create_new_file/ CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: BuildMethod: makefile \ No newline at end of file diff --git a/tests/integration/testdata/sync/code/before/template-python-code-only-layer.yaml b/tests/integration/testdata/sync/code/before/template-python-code-only-layer.yaml index 133dc915de..3c2afbd0df 100644 --- a/tests/integration/testdata/sync/code/before/template-python-code-only-layer.yaml +++ b/tests/integration/testdata/sync/code/before/template-python-code-only-layer.yaml @@ -22,7 +22,7 @@ Resources: Properties: CodeUri: function/ Handler: app.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: HelloWorldLayer Tracing: Active @@ -32,7 +32,7 @@ Resources: Properties: CodeUri: function/ Handler: app.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: HelloWorldLayerWithoutBuildMethod Tracing: Active @@ -42,7 +42,7 @@ Resources: Properties: CodeUri: function/ Handler: app.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: HelloWorldPreBuiltZipLayer Tracing: Active @@ -54,9 +54,9 @@ Resources: Description: Hello World Layer ContentUri: layer/ CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: - BuildMethod: python3.7 + BuildMethod: python3.11 HelloWorldLayerWithoutBuildMethod: Type: AWS::Serverless::LayerVersion @@ -65,7 +65,7 @@ Resources: Description: Hello World Layer without BuildMethod ContentUri: layer_without_build_method/ CompatibleRuntimes: - - python3.7 + - python3.11 HelloWorldPreBuiltZipLayer: Type: AWS::Serverless::LayerVersion @@ -74,7 +74,7 @@ Resources: Description: Hello World Layer which is pre-built as ZIP file ContentUri: layer_zip/layer.zip CompatibleRuntimes: - - python3.7 + - python3.11 HelloStepFunction: Type: AWS::Serverless::StateMachine diff --git a/tests/integration/testdata/sync/code/before/template-python-code-only.yaml b/tests/integration/testdata/sync/code/before/template-python-code-only.yaml index a90129ba1e..0c1200c5c7 100644 --- a/tests/integration/testdata/sync/code/before/template-python-code-only.yaml +++ b/tests/integration/testdata/sync/code/before/template-python-code-only.yaml @@ -16,7 +16,7 @@ Resources: Properties: CodeUri: function/ Handler: app.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: HelloWorldLayer Tracing: Active @@ -28,6 +28,6 @@ Resources: Description: Hello World Layer ContentUri: layer/ CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: - BuildMethod: python3.7 + BuildMethod: python3.11 diff --git a/tests/integration/testdata/sync/code/before/template-python-no-dependencies.yaml b/tests/integration/testdata/sync/code/before/template-python-no-dependencies.yaml index b95b0c7670..7961b53ce9 100644 --- a/tests/integration/testdata/sync/code/before/template-python-no-dependencies.yaml +++ b/tests/integration/testdata/sync/code/before/template-python-no-dependencies.yaml @@ -11,4 +11,4 @@ Resources: Properties: CodeUri: python_function_no_deps/ Handler: app.lambda_handler - Runtime: python3.7 \ No newline at end of file + Runtime: python3.11 \ No newline at end of file diff --git a/tests/integration/testdata/sync/code/before/template-python.yaml b/tests/integration/testdata/sync/code/before/template-python.yaml index 56cb642235..7199dfc9ff 100644 --- a/tests/integration/testdata/sync/code/before/template-python.yaml +++ b/tests/integration/testdata/sync/code/before/template-python.yaml @@ -16,7 +16,7 @@ Resources: Properties: CodeUri: function/ Handler: app.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: HelloWorldLayer Tracing: Active @@ -40,9 +40,9 @@ Resources: Description: Hello World Layer ContentUri: layer/ CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: - BuildMethod: python3.7 + BuildMethod: python3.11 HelloStepFunction: Type: AWS::Serverless::StateMachine diff --git a/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_level3_nested_zip_functions.json b/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_level3_nested_zip_functions.json index 4bdebf1d5c..fb2276fdda 100644 --- a/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_level3_nested_zip_functions.json +++ b/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_level3_nested_zip_functions.json @@ -42,9 +42,10 @@ } }, "CompatibleRuntimes": [ - "python3.7", "python3.8", - "python3.9" + "python3.9", + "python3.11", + "python3.12" ] }, "Metadata": { @@ -52,7 +53,7 @@ "aws:asset:path": "before/asset.b998895901bf33127f2c9dce715854f8b35aa73fb7eb5245ba9721580bbe6948", "aws:asset:is-bundled": false, "aws:asset:property": "Content", - "BuildMethod": "python3.7" + "BuildMethod": "python3.11" } }, "RandomCitiesFunctionServiceRole4EFB1CF5": { @@ -142,7 +143,7 @@ "Ref": "CountriesLibLayer259A7AF1" } ], - "Runtime": "python3.7" + "Runtime": "python3.11" }, "DependsOn": [ "RandomCitiesFunctionServiceRole4EFB1CF5" diff --git a/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_level3_nested_zip_functions_after.json b/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_level3_nested_zip_functions_after.json index a74eaccfd4..3e791a6c77 100644 --- a/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_level3_nested_zip_functions_after.json +++ b/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_level3_nested_zip_functions_after.json @@ -42,9 +42,10 @@ } }, "CompatibleRuntimes": [ - "python3.7", "python3.8", - "python3.9" + "python3.9", + "python3.11", + "python3.12" ] }, "Metadata": { @@ -52,7 +53,7 @@ "aws:asset:path": "after/asset.b998895901bf33127f2c9dce715854f8b35aa73fb7eb5245ba9721580bbe6948", "aws:asset:is-bundled": false, "aws:asset:property": "Content", - "BuildMethod": "python3.7" + "BuildMethod": "python3.11" } }, "RandomCitiesFunctionServiceRole4EFB1CF5": { @@ -142,7 +143,7 @@ "Ref": "CountriesLibLayer259A7AF1" } ], - "Runtime": "python3.7" + "Runtime": "python3.11" }, "DependsOn": [ "RandomCitiesFunctionServiceRole4EFB1CF5" diff --git a/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_zip_functions.json b/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_zip_functions.json index 9b8144d231..1e3018c8dd 100644 --- a/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_zip_functions.json +++ b/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_zip_functions.json @@ -42,9 +42,10 @@ } }, "CompatibleRuntimes": [ - "python3.7", "python3.8", - "python3.9" + "python3.9", + "python3.11", + "python3.12" ] }, "Metadata": { @@ -52,7 +53,7 @@ "aws:asset:path": "before/asset.b998895901bf33127f2c9dce715854f8b35aa73fb7eb5245ba9721580bbe6948", "aws:asset:is-bundled": false, "aws:asset:property": "Content", - "BuildMethod": "python3.7" + "BuildMethod": "python3.11" } }, "RandomCitiesFunctionServiceRole4EFB1CF5": { @@ -142,7 +143,7 @@ "Ref": "CountriesLibLayer259A7AF1" } ], - "Runtime": "python3.7" + "Runtime": "python3.11" }, "DependsOn": [ "RandomCitiesFunctionServiceRole4EFB1CF5" diff --git a/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_zip_functions_after.json b/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_zip_functions_after.json index ca59fdf28f..6fdae972ec 100644 --- a/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_zip_functions_after.json +++ b/tests/integration/testdata/sync/infra/cdk/cdk_v1_synthesized_template_zip_functions_after.json @@ -42,9 +42,10 @@ } }, "CompatibleRuntimes": [ - "python3.7", "python3.8", - "python3.9" + "python3.9", + "python3.11", + "python3.12" ] }, "Metadata": { @@ -52,7 +53,7 @@ "aws:asset:path": "after/asset.b998895901bf33127f2c9dce715854f8b35aa73fb7eb5245ba9721580bbe6948", "aws:asset:is-bundled": false, "aws:asset:property": "Content", - "BuildMethod": "python3.7" + "BuildMethod": "python3.11" } }, "RandomCitiesFunctionServiceRole4EFB1CF5": { @@ -142,7 +143,7 @@ "Ref": "CountriesLibLayer259A7AF1" } ], - "Runtime": "python3.7" + "Runtime": "python3.11" }, "DependsOn": [ "RandomCitiesFunctionServiceRole4EFB1CF5" diff --git a/tests/integration/testdata/sync/infra/template-python-after.yaml b/tests/integration/testdata/sync/infra/template-python-after.yaml index add839c507..6293b89e29 100644 --- a/tests/integration/testdata/sync/infra/template-python-after.yaml +++ b/tests/integration/testdata/sync/infra/template-python-after.yaml @@ -16,7 +16,7 @@ Resources: Properties: CodeUri: after/Python/function/ Handler: app.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: HelloWorldLayer Tracing: Active @@ -40,9 +40,9 @@ Resources: Description: Hello World Layer ContentUri: after/Python/layer/ CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: - BuildMethod: python3.7 + BuildMethod: python3.11 HelloStepFunction: Type: AWS::Serverless::StateMachine diff --git a/tests/integration/testdata/sync/infra/template-python-auto-skip.yaml b/tests/integration/testdata/sync/infra/template-python-auto-skip.yaml index bfe4ca5425..8f3694986c 100644 --- a/tests/integration/testdata/sync/infra/template-python-auto-skip.yaml +++ b/tests/integration/testdata/sync/infra/template-python-auto-skip.yaml @@ -16,7 +16,7 @@ Resources: Properties: CodeUri: after/Python/function/ Handler: app.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: HelloWorldLayer Tracing: Active @@ -40,9 +40,9 @@ Resources: Description: Hello World Layer ContentUri: after/Python/layer/ CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: - BuildMethod: python3.7 + BuildMethod: python3.11 HelloStepFunction: Type: AWS::Serverless::StateMachine diff --git a/tests/integration/testdata/sync/infra/template-python-before.yaml b/tests/integration/testdata/sync/infra/template-python-before.yaml index 2ed2834830..6167cfa57e 100644 --- a/tests/integration/testdata/sync/infra/template-python-before.yaml +++ b/tests/integration/testdata/sync/infra/template-python-before.yaml @@ -16,7 +16,7 @@ Resources: Properties: CodeUri: before/Python/function/ Handler: app.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: HelloWorldLayer Tracing: Active @@ -40,9 +40,9 @@ Resources: Description: Hello World Layer ContentUri: before/Python/layer/ CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: - BuildMethod: python3.7 + BuildMethod: python3.11 HelloStepFunction: Type: AWS::Serverless::StateMachine diff --git a/tests/integration/testdata/sync/nested/before/child_stack/child_child_stack/template.yaml b/tests/integration/testdata/sync/nested/before/child_stack/child_child_stack/template.yaml index eae704f536..84c06c77ad 100644 --- a/tests/integration/testdata/sync/nested/before/child_stack/child_child_stack/template.yaml +++ b/tests/integration/testdata/sync/nested/before/child_stack/child_child_stack/template.yaml @@ -24,7 +24,7 @@ Resources: # Build with nested stack already exhibits this behaviour CodeUri: ../child_functions/ Handler: child_function.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: ParentLayer2 Tracing: Active diff --git a/tests/integration/testdata/sync/nested/before/child_stack/template.yaml b/tests/integration/testdata/sync/nested/before/child_stack/template.yaml index c90b60f94a..ad6c931be3 100644 --- a/tests/integration/testdata/sync/nested/before/child_stack/template.yaml +++ b/tests/integration/testdata/sync/nested/before/child_stack/template.yaml @@ -24,7 +24,7 @@ Resources: # Build with nested stack already exhibits this behaviour CodeUri: child_functions/ Handler: child_function.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: ParentLayer Tracing: Active @@ -40,9 +40,9 @@ Resources: # Build with nested stack already exhibits this behaviour ContentUri: ../root_layer/ CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: - BuildMethod: python3.7 + BuildMethod: python3.11 ChildChildStack: Type: AWS::Serverless::Application diff --git a/tests/integration/testdata/sync/nested/before/template.yaml b/tests/integration/testdata/sync/nested/before/template.yaml index ebe0cafc9e..13ec472411 100644 --- a/tests/integration/testdata/sync/nested/before/template.yaml +++ b/tests/integration/testdata/sync/nested/before/template.yaml @@ -19,7 +19,7 @@ Resources: Properties: CodeUri: root_function/ Handler: root_function.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: HelloWorldLayer Tracing: Active @@ -31,9 +31,9 @@ Resources: Description: Hello World Layer ContentUri: root_layer/ CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: - BuildMethod: python3.7 + BuildMethod: python3.11 ChildStack: Type: AWS::Serverless::Application diff --git a/tests/integration/testdata/sync/nested_intrinsics/before/child_stack/child_function/template.yaml b/tests/integration/testdata/sync/nested_intrinsics/before/child_stack/child_function/template.yaml index 75488615f7..edd463aa18 100644 --- a/tests/integration/testdata/sync/nested_intrinsics/before/child_stack/child_function/template.yaml +++ b/tests/integration/testdata/sync/nested_intrinsics/before/child_stack/child_function/template.yaml @@ -16,7 +16,7 @@ Resources: Properties: CodeUri: function/ Handler: function.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: Layer Tracing: Active \ No newline at end of file diff --git a/tests/integration/testdata/sync/nested_intrinsics/before/child_stack/child_layer/template.yaml b/tests/integration/testdata/sync/nested_intrinsics/before/child_stack/child_layer/template.yaml index 2313c0bf7d..5c8a07432b 100644 --- a/tests/integration/testdata/sync/nested_intrinsics/before/child_stack/child_layer/template.yaml +++ b/tests/integration/testdata/sync/nested_intrinsics/before/child_stack/child_layer/template.yaml @@ -14,9 +14,9 @@ Resources: Description: Hello World Layer ContentUri: layer/ CompatibleRuntimes: - - python3.7 + - python3.11 Metadata: - BuildMethod: python3.7 + BuildMethod: python3.11 Outputs: LayerName: diff --git a/tests/integration/testdata/validate/default_json/template.json b/tests/integration/testdata/validate/default_json/template.json index f9da3fc2d3..4945b4ef41 100644 --- a/tests/integration/testdata/validate/default_json/template.json +++ b/tests/integration/testdata/validate/default_json/template.json @@ -8,7 +8,7 @@ "Properties": { "CodeUri": "hello-world/", "Handler": "app.lambdaHandler", - "Runtime": "nodejs14.x" + "Runtime": "nodejs20.x" } } } diff --git a/tests/integration/testdata/validate/multiple_files/template.json b/tests/integration/testdata/validate/multiple_files/template.json index f9da3fc2d3..4945b4ef41 100644 --- a/tests/integration/testdata/validate/multiple_files/template.json +++ b/tests/integration/testdata/validate/multiple_files/template.json @@ -8,7 +8,7 @@ "Properties": { "CodeUri": "hello-world/", "Handler": "app.lambdaHandler", - "Runtime": "nodejs14.x" + "Runtime": "nodejs20.x" } } } diff --git a/tests/integration/testdata/validate/with_build/.aws-sam/build/template.yaml b/tests/integration/testdata/validate/with_build/.aws-sam/build/template.yaml index acb6a8cf26..ccab4ba47c 100644 --- a/tests/integration/testdata/validate/with_build/.aws-sam/build/template.yaml +++ b/tests/integration/testdata/validate/with_build/.aws-sam/build/template.yaml @@ -7,4 +7,4 @@ Resources: Properties: CodeUri: HelloWorldFunction Handler: app.lambdaHandler - Runtime: nodejs14.x + Runtime: nodejs20.x diff --git a/tests/integration/testdata/validate/with_build/template.json b/tests/integration/testdata/validate/with_build/template.json index f9da3fc2d3..4945b4ef41 100644 --- a/tests/integration/testdata/validate/with_build/template.json +++ b/tests/integration/testdata/validate/with_build/template.json @@ -8,7 +8,7 @@ "Properties": { "CodeUri": "hello-world/", "Handler": "app.lambdaHandler", - "Runtime": "nodejs14.x" + "Runtime": "nodejs20.x" } } } diff --git a/tests/integration/validate/test_validate_command.py b/tests/integration/validate/test_validate_command.py index 53a36b3472..6a21204384 100644 --- a/tests/integration/validate/test_validate_command.py +++ b/tests/integration/validate/test_validate_command.py @@ -132,6 +132,7 @@ def test_lint_supported_runtimes(self): "Resources": {}, } supported_runtimes = [ + "dotnet8", "dotnet6", "go1.x", "java21", @@ -139,18 +140,16 @@ def test_lint_supported_runtimes(self): "java11", "java8", "java8.al2", - "nodejs14.x", "nodejs16.x", "nodejs18.x", "nodejs20.x", "provided", "provided.al2", "provided.al2023", - "python3.7", "python3.8", "python3.9", "python3.10", - "ruby2.7", + "ruby3.2", ] i = 0 for runtime in supported_runtimes: diff --git a/tests/smoke/templates/sar/aws-deployment-framework-template.yaml b/tests/smoke/templates/sar/aws-deployment-framework-template.yaml index a360111874..58336b05ef 100644 --- a/tests/smoke/templates/sar/aws-deployment-framework-template.yaml +++ b/tests/smoke/templates/sar/aws-deployment-framework-template.yaml @@ -106,7 +106,7 @@ Resources: Resource: Fn::Sub: arn:aws:ssm:${AWS::Region}:${AWS::AccountId}:parameter/deployment_account_id Version: '2012-10-17' - Runtime: python3.7 + Runtime: python3.11 Timeout: 300 Type: AWS::Serverless::Function BootstrapTemplatesBucket: @@ -452,7 +452,7 @@ Resources: Fn::GetAtt: - LambdaRole - Arn - Runtime: python3.7 + Runtime: python3.11 Timeout: 300 Type: AWS::Serverless::Function CrossRegionBucketHandler: @@ -480,7 +480,7 @@ Resources: - Fn::Sub: arn:aws:ssm:${AWS::Region}:${AWS::AccountId}:parameter/shared_modules_bucket - Fn::Sub: arn:aws:ssm:${AWS::Region}:${AWS::AccountId}:parameter/deployment_account_region Version: '2012-10-17' - Runtime: python3.7 + Runtime: python3.11 Timeout: 300 Type: AWS::Serverless::Function DeploymentAccount: @@ -544,7 +544,7 @@ Resources: Fn::GetAtt: - LambdaRole - Arn - Runtime: python3.7 + Runtime: python3.11 Timeout: 300 Type: AWS::Serverless::Function InitialCommit: @@ -593,7 +593,7 @@ Resources: - CodeCommitRepository - Arn Version: '2012-10-17' - Runtime: python3.7 + Runtime: python3.11 Timeout: 300 Type: AWS::Serverless::Function LambdaLayerVersion: @@ -707,7 +707,7 @@ Resources: Fn::GetAtt: - LambdaRole - Arn - Runtime: python3.7 + Runtime: python3.11 Timeout: 900 Type: AWS::Serverless::Function Organization: @@ -738,7 +738,7 @@ Resources: Effect: Allow Resource: arn:aws:iam::*:role/aws-service-role/* Version: '2012-10-17' - Runtime: python3.7 + Runtime: python3.11 Timeout: 300 Type: AWS::Serverless::Function OrganizationUnitHandler: @@ -758,7 +758,7 @@ Resources: Effect: Allow Resource: '*' Version: '2012-10-17' - Runtime: python3.7 + Runtime: python3.11 Timeout: 300 Type: AWS::Serverless::Function RoleStackDeploymentFunction: @@ -786,7 +786,7 @@ Resources: Fn::GetAtt: - LambdaRole - Arn - Runtime: python3.7 + Runtime: python3.11 Timeout: 300 Type: AWS::Serverless::Function SharedModulesBucket: @@ -858,7 +858,7 @@ Resources: Fn::GetAtt: - LambdaRole - Arn - Runtime: python3.7 + Runtime: python3.11 Timeout: 300 Type: AWS::Serverless::Function StateMachine: @@ -1012,7 +1012,7 @@ Resources: Fn::GetAtt: - LambdaRole - Arn - Runtime: python3.7 + Runtime: python3.11 Timeout: 300 Type: AWS::Serverless::Function Transform: AWS::Serverless-2016-10-31 diff --git a/tests/smoke/templates/sar/ffmpeg-lambda-layer-template.yaml b/tests/smoke/templates/sar/ffmpeg-lambda-layer-template.yaml index dced79a7e4..ce21275b32 100644 --- a/tests/smoke/templates/sar/ffmpeg-lambda-layer-template.yaml +++ b/tests/smoke/templates/sar/ffmpeg-lambda-layer-template.yaml @@ -13,7 +13,7 @@ Resources: CompatibleRuntimes: - nodejs18.x - python3.9 - - ruby2.7 + - ruby3.2 - java8 - go1.x ContentUri: diff --git a/tests/smoke/templates/sar/lambda-to-slack-template.yaml b/tests/smoke/templates/sar/lambda-to-slack-template.yaml index 4d4034dbd9..75e79ca275 100644 --- a/tests/smoke/templates/sar/lambda-to-slack-template.yaml +++ b/tests/smoke/templates/sar/lambda-to-slack-template.yaml @@ -27,7 +27,7 @@ Resources: Ref: LogLevel SLACK_URL: Ref: SlackUrl - Runtime: python3.7 + Runtime: python3.11 Timeout: 60 Tracing: Active CodeUri: diff --git a/tests/smoke/templates/sar/serverless-cognito-template.yaml b/tests/smoke/templates/sar/serverless-cognito-template.yaml index d4ce0fd598..74084c122a 100644 --- a/tests/smoke/templates/sar/serverless-cognito-template.yaml +++ b/tests/smoke/templates/sar/serverless-cognito-template.yaml @@ -5,7 +5,7 @@ Resources: Type: AWS::Serverless::Function Properties: Handler: lambda.handler - Runtime: python3.7 + Runtime: python3.11 Policies: - AmazonCognitoPowerUser - AmazonDynamoDBFullAccess diff --git a/tests/smoke/templates/sar/sns-subscription-filter-policy-string-template.yaml b/tests/smoke/templates/sar/sns-subscription-filter-policy-string-template.yaml index 7747ad6e49..d511a54107 100644 --- a/tests/smoke/templates/sar/sns-subscription-filter-policy-string-template.yaml +++ b/tests/smoke/templates/sar/sns-subscription-filter-policy-string-template.yaml @@ -55,7 +55,7 @@ Resources: Effect: Allow Resource: - Fn::Sub: ${TopicArn} - Runtime: python3.7 + Runtime: python3.11 Timeout: 5 Tracing: Active Type: AWS::Serverless::Function diff --git a/tests/smoke/templates/sar/vpc-import-value.yaml b/tests/smoke/templates/sar/vpc-import-value.yaml index af9aaebdff..47f8dda038 100644 --- a/tests/smoke/templates/sar/vpc-import-value.yaml +++ b/tests/smoke/templates/sar/vpc-import-value.yaml @@ -14,7 +14,7 @@ Resources: Bucket: <%REPO_BUCKET%> Key: a44a03c9-ccb1-4ddc-b196-8e2c9fdeec35 Handler: app.lambda_handler - Runtime: python3.7 + Runtime: python3.11 Layers: - Ref: LayerArn VpcConfig: diff --git a/tests/testing_utils.py b/tests/testing_utils.py index 65186b79df..efb776900b 100644 --- a/tests/testing_utils.py +++ b/tests/testing_utils.py @@ -312,6 +312,7 @@ def runtime_supported_by_docker(runtime: str) -> bool: "nodejs20.x", "java21", "python3.12", + "dotnet8", } min_docker_version = "20.10.10" return runtime not in al2023_based_runtimes or ( diff --git a/tests/unit/commands/deploy/test_auth_utils.py b/tests/unit/commands/deploy/test_auth_utils.py index 72f5123da4..5ebe80e4fc 100644 --- a/tests/unit/commands/deploy/test_auth_utils.py +++ b/tests/unit/commands/deploy/test_auth_utils.py @@ -26,7 +26,7 @@ def setUp(self): [ ("CodeUri", "HelloWorldFunction"), ("Handler", "app.lambda_handler"), - ("Runtime", "python3.7"), + ("Runtime", "python3.12"), ( "Events", OrderedDict( diff --git a/tests/unit/commands/deploy/test_code_signer_utils.py b/tests/unit/commands/deploy/test_code_signer_utils.py index 9fc51de540..ef5ccd0b69 100644 --- a/tests/unit/commands/deploy/test_code_signer_utils.py +++ b/tests/unit/commands/deploy/test_code_signer_utils.py @@ -46,7 +46,7 @@ def test_signer_config_per_function(self): [ ("CodeUri", "HelloWorldFunction"), ("Handler", "app.lambda_handler"), - ("Runtime", "python3.7"), + ("Runtime", "python3.12"), ("CodeSigningConfigArn", "MyCodeSigningConfigArn"), ( "Layers", @@ -71,7 +71,7 @@ def test_signer_config_per_function(self): [ ("CodeUri", "HelloWorldFunction2"), ("Handler", "app.lambda_handler2"), - ("Runtime", "python3.7"), + ("Runtime", "python3.12"), ("CodeSigningConfigArn", "MyCodeSigningConfigArn"), ( "Layers", @@ -96,7 +96,7 @@ def test_signer_config_per_function(self): [ ("LayerName", "dependencies"), ("ContentUri", "dependencies/"), - ("CompatibleRuntimes", ["python3.7"]), + ("CompatibleRuntimes", ["python3.12"]), ] ), ), diff --git a/tests/unit/commands/init/test_cli.py b/tests/unit/commands/init/test_cli.py index d6518927ed..f1cbc55480 100644 --- a/tests/unit/commands/init/test_cli.py +++ b/tests/unit/commands/init/test_cli.py @@ -192,7 +192,7 @@ def test_init_image_cli(self, generate_project_patch, git_repo_clone_mock): package_type=IMAGE, runtime=None, architecture=ARM64, - base_image="amazon/nodejs12.x-base", + base_image="amazon/nodejs20.x-base", dependency_manager="npm", output_dir=None, name=self.name, @@ -209,12 +209,12 @@ def test_init_image_cli(self, generate_project_patch, git_repo_clone_mock): # need to change the location validation check ANY, IMAGE, - "nodejs12.x", + "nodejs20.x", "npm", self.output_dir, self.name, True, - {"runtime": "nodejs12.x", "project_name": "testing project", "architectures": {"value": [ARM64]}}, + {"runtime": "nodejs20.x", "project_name": "testing project", "architectures": {"value": [ARM64]}}, False, False, False, @@ -2094,7 +2094,7 @@ def test_init_cli_must_not_generate_default_hello_world_app( ): init_options_from_manifest_mock.return_value = [ { - "directory": "nodejs14.x/cookiecutter-aws-sam-hello-nodejs", + "directory": "nodejs20.x/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", "dependencyManager": "npm", "appTemplate": "hello-world", @@ -2114,10 +2114,10 @@ def test_init_cli_must_not_generate_default_hello_world_app( get_preprocessed_manifest_mock.return_value = { "Hello World Example": { - "nodejs14.x": { + "nodejs20.x": { "Zip": [ { - "directory": "nodejs14.x/cookiecutter-aws-sam-hello-nodejs", + "directory": "nodejs20.x/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", "dependencyManager": "npm", "appTemplate": "hello-world", @@ -2181,9 +2181,8 @@ def test_must_return_runtime_from_base_image_name(self): "amazon/dotnet6-base", "amazon/go1.x-base", "amazon/java11-base", - "amazon/nodejs14.x-base", + "amazon/nodejs20.x-base", "amazon/python3.8-base", - "amazon/ruby2.7-base", "amazon/go-provided.al2-base", "amazon/ruby3.2-base", ] @@ -2192,9 +2191,8 @@ def test_must_return_runtime_from_base_image_name(self): "dotnet6", "go1.x", "java11", - "nodejs14.x", + "nodejs20.x", "python3.8", - "ruby2.7", "go (provided.al2)", "ruby3.2", ] @@ -2235,10 +2233,10 @@ def test_must_process_manifest(self, _get_manifest_mock): } ] }, - "nodejs14.x": { + "nodejs20.x": { "Image": [ { - "directory": "nodejs14.x-image/cookiecutter-aws-sam-hello-nodejs-lambda-image", + "directory": "nodejs20.x-image/cookiecutter-aws-sam-hello-nodejs-lambda-image", "displayName": "Hello World Image Example", "dependencyManager": "npm", "appTemplate": "hello-world-lambda-image", @@ -2292,15 +2290,15 @@ def test_must_process_manifest_with_runtime_as_filter_value(self, _get_manifest_ @patch.object(InitTemplates, "__init__", MockInitTemplates.__init__) def test_must_process_manifest_with_image_as_filter_value(self, _get_manifest_mock): template = InitTemplates() - filter_value = "amazon/nodejs14.x-base" + filter_value = "amazon/nodejs20.x-base" _get_manifest_mock.return_value = self.data preprocess_manifest = template.get_preprocessed_manifest(filter_value) expected_result = { "Hello World Example": { - "nodejs14.x": { + "nodejs20.x": { "Image": [ { - "directory": "nodejs14.x-image/cookiecutter-aws-sam-hello-nodejs-lambda-image", + "directory": "nodejs20.x-image/cookiecutter-aws-sam-hello-nodejs-lambda-image", "displayName": "Hello World Image Example", "dependencyManager": "npm", "appTemplate": "hello-world-lambda-image", @@ -2523,7 +2521,7 @@ def test_init_cli_int_must_raise_for_unsupported_runtime( test-project """ runner = CliRunner() - result = runner.invoke(init_cmd, ["--runtime", "python3.7"], input=user_input) + result = runner.invoke(init_cmd, ["--runtime", "python3.12"], input=user_input) self.assertTrue(result.exception) @patch("samcli.commands.init.init_templates.InitTemplates.get_preprocessed_manifest") @@ -2591,7 +2589,7 @@ def test_init_cli_generate_hello_world_app_without_default_prompt( ): init_options_from_manifest_mock.return_value = [ { - "directory": "nodejs14.x/cookiecutter-aws-sam-hello-nodejs", + "directory": "nodejs20.x/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", "dependencyManager": "npm", "appTemplate": "hello-world", @@ -2611,10 +2609,10 @@ def test_init_cli_generate_hello_world_app_without_default_prompt( get_preprocessed_manifest_mock.return_value = { "Hello World Example": { - "nodejs14.x": { + "nodejs20.x": { "Zip": [ { - "directory": "nodejs14.x/cookiecutter-aws-sam-hello-nodejs", + "directory": "nodejs20.x/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", "dependencyManager": "npm", "appTemplate": "hello-world", @@ -2686,7 +2684,7 @@ def test_init_cli_generate_app_template_provide_via_options( ): init_options_from_manifest_mock.return_value = [ { - "directory": "nodejs14.x/cookiecutter-aws-sam-hello-nodejs", + "directory": "nodejs20.x/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", "dependencyManager": "npm", "appTemplate": "hello-world", @@ -2706,10 +2704,10 @@ def test_init_cli_generate_app_template_provide_via_options( get_preprocessed_manifest_mock.return_value = { "Hello World Example": { - "nodejs14.x": { + "nodejs20.x": { "Zip": [ { - "directory": "nodejs14.x/cookiecutter-aws-sam-hello-nodejs", + "directory": "nodejs20.x/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", "dependencyManager": "npm", "appTemplate": "hello-world", @@ -2765,7 +2763,7 @@ def test_init_cli_generate_app_template_provide_via_options( def does_template_meet_filter_criteria(self): template1 = { - "directory": "nodejs14.x/cookiecutter-aws-sam-hello-nodejs", + "directory": "nodejs20.x/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", "dependencyManager": "npm", "appTemplate": "hello-world", @@ -2850,9 +2848,9 @@ def test_init_cli_generate_app_template_from_local_cli_templates( @patch("samcli.local.common.runtime_template.INIT_RUNTIMES") def test_must_remove_unsupported_runtime(self, init_runtime_mock): - runtime_option_list = ["python3.7", "ruby3.2", "ruby2.7", "java11", "unsupported_runtime"] - init_runtime_mock.return_value = ["go1.x", "java11", "python3.7", "ruby3.2", "ruby2.7"] - expect_result = ["java11", "python3.7", "ruby3.2", "ruby2.7"] + runtime_option_list = ["python3.12", "ruby3.2", "java11", "unsupported_runtime"] + init_runtime_mock.return_value = ["go1.x", "java11", "python3.12", "ruby3.2"] + expect_result = ["java11", "python3.12", "ruby3.2"] actual_result = get_sorted_runtimes(runtime_option_list) self.assertEqual(actual_result, expect_result) @@ -3031,7 +3029,7 @@ def test_init_cli_generate_app_template_provide_via_tracing_options( ): init_options_from_manifest_mock.return_value = [ { - "directory": "nodejs14.x/cookiecutter-aws-sam-hello-nodejs", + "directory": "nodejs20.x/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", "dependencyManager": "npm", "appTemplate": "hello-world", @@ -3051,10 +3049,10 @@ def test_init_cli_generate_app_template_provide_via_tracing_options( get_preprocessed_manifest_mock.return_value = { "Hello World Example": { - "nodejs14.x": { + "nodejs20.x": { "Zip": [ { - "directory": "nodejs14.x/cookiecutter-aws-sam-hello-nodejs", + "directory": "nodejs20.x/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", "dependencyManager": "npm", "appTemplate": "hello-world", @@ -3118,7 +3116,7 @@ def test_init_cli_generate_app_template_provide_via_application_insights_options ): init_options_from_manifest_mock.return_value = [ { - "directory": "nodejs14.x/cookiecutter-aws-sam-hello-nodejs", + "directory": "nodejs20.x/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", "dependencyManager": "npm", "appTemplate": "hello-world", @@ -3138,10 +3136,10 @@ def test_init_cli_generate_app_template_provide_via_application_insights_options get_preprocessed_manifest_mock.return_value = { "Hello World Example": { - "nodejs14.x": { + "nodejs20.x": { "Zip": [ { - "directory": "nodejs14.x/cookiecutter-aws-sam-hello-nodejs", + "directory": "nodejs20.x/cookiecutter-aws-sam-hello-nodejs", "displayName": "Hello World Example", "dependencyManager": "npm", "appTemplate": "hello-world", diff --git a/tests/unit/commands/init/test_manifest.json b/tests/unit/commands/init/test_manifest.json index 7ae51a146b..05a3938dda 100644 --- a/tests/unit/commands/init/test_manifest.json +++ b/tests/unit/commands/init/test_manifest.json @@ -19,9 +19,9 @@ "useCaseName": "Hello World Example" } ], - "amazon/nodejs14.x-base": [ + "amazon/nodejs20.x-base": [ { - "directory": "nodejs14.x-image/cookiecutter-aws-sam-hello-nodejs-lambda-image", + "directory": "nodejs20.x-image/cookiecutter-aws-sam-hello-nodejs-lambda-image", "displayName": "Hello World Image Example", "dependencyManager": "npm", "appTemplate": "hello-world-lambda-image", diff --git a/tests/unit/commands/init/test_templates.py b/tests/unit/commands/init/test_templates.py index 2a18f358f9..f1e448c125 100644 --- a/tests/unit/commands/init/test_templates.py +++ b/tests/unit/commands/init/test_templates.py @@ -21,7 +21,7 @@ def test_location_from_app_template_zip(self, subprocess_mock, git_exec_mock, cd it._check_upsert_templates = Mock() manifest = { - "ruby2.7": [ + "ruby3.2": [ { "directory": "mock-ruby-template", "displayName": "Hello World Example", @@ -37,7 +37,7 @@ def test_location_from_app_template_zip(self, subprocess_mock, git_exec_mock, cd with patch("samcli.cli.global_config.GlobalConfig.config_dir", new_callable=PropertyMock) as mock_cfg: mock_cfg.return_value = Path("/tmp/test-sam") with patch("samcli.commands.init.init_templates.open", m): - location = it.location_from_app_template(ZIP, "ruby2.7", None, "bundler", "hello-world") + location = it.location_from_app_template(ZIP, "ruby3.2", None, "bundler", "hello-world") self.assertTrue(search("mock-ruby-template", location)) @patch("samcli.lib.utils.git_repo.check_output") @@ -49,7 +49,7 @@ def test_location_from_app_template_image(self, subprocess_mock, git_exec_mock, it._check_upsert_templates = Mock() manifest = { - "ruby2.7-image": [ + "ruby3.2-image": [ { "directory": "mock-ruby-image-template", "displayName": "Hello World Lambda Image Example", @@ -66,7 +66,7 @@ def test_location_from_app_template_image(self, subprocess_mock, git_exec_mock, mock_cfg.return_value = Path("/tmp/test-sam") with patch("samcli.commands.init.init_templates.open", m): location = it.location_from_app_template( - IMAGE, None, "ruby2.7-image", "bundler", "hello-world-lambda-image" + IMAGE, None, "ruby3.2-image", "bundler", "hello-world-lambda-image" ) self.assertTrue(search("mock-ruby-image-template", location)) diff --git a/tests/unit/commands/local/lib/test_sam_function_provider.py b/tests/unit/commands/local/lib/test_sam_function_provider.py index eba4b6158c..0c57430a9b 100644 --- a/tests/unit/commands/local/lib/test_sam_function_provider.py +++ b/tests/unit/commands/local/lib/test_sam_function_provider.py @@ -2476,7 +2476,7 @@ class TestSamFunctionProvider_search_layer(TestCase): "LayerName": "SamLayer", "Description": "Sam", "ContentUri": "layer/", - "CompatibleRuntimes": ["python3.7"], + "CompatibleRuntimes": ["python3.12"], }, } }, diff --git a/tests/unit/commands/local/lib/test_stack_provider.py b/tests/unit/commands/local/lib/test_stack_provider.py index c7cbc7c524..d3002ae0fd 100644 --- a/tests/unit/commands/local/lib/test_stack_provider.py +++ b/tests/unit/commands/local/lib/test_stack_provider.py @@ -17,7 +17,7 @@ "Resources": { "AFunction": { "Type": "AWS::Serverless::Function", - "Properties": {"CodeUri": "hi/", "Runtime": "python3.7"}, + "Properties": {"CodeUri": "hi/", "Runtime": "python3.12"}, } } } diff --git a/tests/unit/commands/samconfig/test_samconfig.py b/tests/unit/commands/samconfig/test_samconfig.py index 04597bcb5f..9573b8beff 100644 --- a/tests/unit/commands/samconfig/test_samconfig.py +++ b/tests/unit/commands/samconfig/test_samconfig.py @@ -42,7 +42,7 @@ def test_init(self, do_cli_mock): config_values = { "no_interactive": True, "location": "github.com", - "runtime": "nodejs14.x", + "runtime": "nodejs20.x", "dependency_manager": "maven", "output_dir": "myoutput", "name": "myname", @@ -70,7 +70,7 @@ def test_init(self, do_cli_mock): "github.com", False, ZIP, - "nodejs14.x", + "nodejs20.x", None, None, "maven", diff --git a/tests/unit/hook_packages/terraform/hooks/prepare/prepare_base.py b/tests/unit/hook_packages/terraform/hooks/prepare/prepare_base.py index a65a9c3e61..9143a1a43e 100644 --- a/tests/unit/hook_packages/terraform/hooks/prepare/prepare_base.py +++ b/tests/unit/hook_packages/terraform/hooks/prepare/prepare_base.py @@ -72,7 +72,7 @@ def setUp(self) -> None: "environment": [{"variables": {"foo": "bar", "hello": "world"}}], "handler": "index.handler", "package_type": "Zip", - "runtime": "python3.7", + "runtime": "python3.12", "layers": ["layer_arn1", "layer_arn2"], "timeout": 3, "memory_size": 128, @@ -83,7 +83,7 @@ def setUp(self) -> None: "Environment": {"Variables": {"foo": "bar", "hello": "world"}}, "Handler": "index.handler", "PackageType": "Zip", - "Runtime": "python3.7", + "Runtime": "python3.12", "Layers": ["layer_arn1", "layer_arn2"], "Timeout": 3, "MemorySize": 128, @@ -108,12 +108,12 @@ def setUp(self) -> None: self.tf_layer_common_properties: dict = { "layer_name": self.lambda_layer_name, - "compatible_runtimes": ["nodejs14.x", "nodejs16.x"], + "compatible_runtimes": ["nodejs18.x", "nodejs20.x"], "compatible_architectures": ["arm64"], } self.expected_cfn_layer_common_properties: dict = { "LayerName": self.lambda_layer_name, - "CompatibleRuntimes": ["nodejs14.x", "nodejs16.x"], + "CompatibleRuntimes": ["nodejs18.x", "nodejs20.x"], "CompatibleArchitectures": ["arm64"], } diff --git a/tests/unit/hook_packages/terraform/hooks/prepare/test_enrich.py b/tests/unit/hook_packages/terraform/hooks/prepare/test_enrich.py index 5a21491078..55c98bc2a2 100644 --- a/tests/unit/hook_packages/terraform/hooks/prepare/test_enrich.py +++ b/tests/unit/hook_packages/terraform/hooks/prepare/test_enrich.py @@ -1204,10 +1204,6 @@ def test_validate_referenced_resource_matches_sam_metadata_type_invalid_types( @parameterized.expand( [ ([CalledProcessError(-2, "python3 --version"), Mock(stdout="Python 3.8.10")], "py3"), - ([Mock(stdout="Python 3.7.12"), CalledProcessError(-2, "py3 --version")], "python3"), - ([Mock(stdout="Python 3.7")], "python3"), - ([Mock(stdout="Python 3.7.0")], "python3"), - ([Mock(stdout="Python 3.7.12")], "python3"), ([Mock(stdout="Python 3.8")], "python3"), ([Mock(stdout="Python 3.8.0")], "python3"), ([Mock(stdout="Python 3.8.12")], "python3"), @@ -1222,7 +1218,7 @@ def test_validate_referenced_resource_matches_sam_metadata_type_invalid_types( Mock(stdout="Python 3.6.10"), Mock(stdout="Python 3.0.10"), Mock(stdout="Python 2.7.10"), - Mock(stdout="Python 3.7.12"), + Mock(stdout="Python 3.12.1"), ], "py", ), @@ -1275,6 +1271,6 @@ def test_get_python_command_name(self, mock_run_side_effect, expected_python_com def test_get_python_command_name_python_not_found(self, mock_run_side_effect, mock_subprocess_run): mock_subprocess_run.side_effect = mock_run_side_effect - expected_error_msg = "Python not found. Please ensure that python 3.7 or above is installed." + expected_error_msg = "Python not found. Please ensure that python 3.12 or above is installed." with self.assertRaises(PrepareHookException, msg=expected_error_msg): _get_python_command_name() diff --git a/tests/unit/hook_packages/terraform/hooks/prepare/test_hook.py b/tests/unit/hook_packages/terraform/hooks/prepare/test_hook.py index ef56f14df8..4aa3b72528 100644 --- a/tests/unit/hook_packages/terraform/hooks/prepare/test_hook.py +++ b/tests/unit/hook_packages/terraform/hooks/prepare/test_hook.py @@ -390,7 +390,7 @@ def side_effect_func(value): "S3Bucket": "s3_bucket_name", "S3Key": "s3_key_name", }, - "CompatibleRuntimes": ["nodejs14.x", "nodejs16.x"], + "CompatibleRuntimes": ["nodejs20.x", "nodejs16.x"], "CompatibleArchitectures": ["arm64"], }, }, @@ -398,7 +398,7 @@ def side_effect_func(value): "Type": "AWS::Lambda::LayerVersion", "Properties": { "Content": relative_path, - "CompatibleRuntimes": ["nodejs14.x", "nodejs16.x"], + "CompatibleRuntimes": ["nodejs20.x", "nodejs16.x"], "CompatibleArchitectures": ["arm64"], }, }, @@ -435,7 +435,7 @@ def side_effect_func(value): "S3Bucket": "s3_bucket_name", "S3Key": "s3_key_name", }, - "CompatibleRuntimes": ["nodejs14.x", "nodejs16.x"], + "CompatibleRuntimes": ["nodejs20.x", "nodejs16.x"], "CompatibleArchitectures": ["arm64"], }, }, @@ -443,7 +443,7 @@ def side_effect_func(value): "Type": "AWS::Lambda::LayerVersion", "Properties": { "Content": updated_relative_path, - "CompatibleRuntimes": ["nodejs14.x", "nodejs16.x"], + "CompatibleRuntimes": ["nodejs20.x", "nodejs16.x"], "CompatibleArchitectures": ["arm64"], }, }, diff --git a/tests/unit/hook_packages/terraform/hooks/prepare/test_resource_linking.py b/tests/unit/hook_packages/terraform/hooks/prepare/test_resource_linking.py index dc80b6cbb6..d8a02e854b 100644 --- a/tests/unit/hook_packages/terraform/hooks/prepare/test_resource_linking.py +++ b/tests/unit/hook_packages/terraform/hooks/prepare/test_resource_linking.py @@ -1215,13 +1215,13 @@ def test_handle_linking_mix_of_applied_and_non_applied_resources(self): "Type": "AWS::Lambda::Function", "Properties": { "FunctionName": "func1", - "Runtime": "Python3.7", + "Runtime": "Python3.12", "Layers": ["applied_layer1.arn", "existing_layer1.arn"], }, } cfn_resource_depend_on_at_least_one_non_applied_resource = { "Type": "AWS::Lambda::Function", - "Properties": {"FunctionName": "func2", "Runtime": "Python3.7"}, + "Properties": {"FunctionName": "func2", "Runtime": "Python3.12"}, } cfn_resources = [ cfn_resource_depend_on_applied_resources, @@ -1244,7 +1244,7 @@ def test_handle_linking_only_applied_resources(self): "Type": "AWS::Lambda::Function", "Properties": { "FunctionName": "func1", - "Runtime": "Python3.7", + "Runtime": "Python3.12", "Layers": ["applied_layer1.arn", "existing_layer1.arn"], }, } @@ -1252,7 +1252,7 @@ def test_handle_linking_only_applied_resources(self): "Type": "AWS::Lambda::Function", "Properties": { "FunctionName": "func2", - "Runtime": "Python3.7", + "Runtime": "Python3.12", "Layers": ["applied_layer2.arn", "existing_layer2.arn"], }, } @@ -1278,11 +1278,11 @@ def test_handle_linking_only_applied_resources(self): def test_handle_linking_only_non_applied_resources(self): cfn_resource1_depend_on_at_least_one_non_applied_resource = { "Type": "AWS::Lambda::Function", - "Properties": {"FunctionName": "func2", "Runtime": "Python3.7"}, + "Properties": {"FunctionName": "func2", "Runtime": "Python3.12"}, } cfn_resource2_depend_on_at_least_one_non_applied_resource = { "Type": "AWS::Lambda::Function", - "Properties": {"FunctionName": "func3", "Runtime": "Python3.7"}, + "Properties": {"FunctionName": "func3", "Runtime": "Python3.12"}, } cfn_resources = [ cfn_resource1_depend_on_at_least_one_non_applied_resource, @@ -1637,7 +1637,7 @@ def test_link_lambda_functions_to_layers( "schema_version": 0, "values": { "compatible_architectures": ["arm64"], - "compatible_runtimes": ["nodejs14.x", "nodejs16.x"], + "compatible_runtimes": ["nodejs20.x", "nodejs16.x"], "description": None, "filename": None, "layer_name": "lambda_layer_name", diff --git a/tests/unit/hook_packages/terraform/hooks/prepare/test_translate.py b/tests/unit/hook_packages/terraform/hooks/prepare/test_translate.py index 0c664c4697..01a5fd19ae 100644 --- a/tests/unit/hook_packages/terraform/hooks/prepare/test_translate.py +++ b/tests/unit/hook_packages/terraform/hooks/prepare/test_translate.py @@ -339,7 +339,7 @@ def test_translate_to_cfn_with_root_module_with_sam_metadata_resource( "Code": "file.zip", "Handler": "index.handler", "PackageType": "Zip", - "Runtime": "python3.7", + "Runtime": "python3.12", "Layers": ["layer_arn1", "layer_arn2"], "Timeout": 3, "MemorySize": 128, diff --git a/tests/unit/lib/bootstrap/nested_stack/test_nested_stack_manager.py b/tests/unit/lib/bootstrap/nested_stack/test_nested_stack_manager.py index 3d0979da49..1c9bdaa1b3 100644 --- a/tests/unit/lib/bootstrap/nested_stack/test_nested_stack_manager.py +++ b/tests/unit/lib/bootstrap/nested_stack/test_nested_stack_manager.py @@ -241,6 +241,6 @@ def test_skipping_dependency_copy_when_function_has_no_dependencies( patched_osutils.copytree.assert_not_called() patched_add_layer_readme.assert_called_with(str(layer_root_folder), function_logical_id) - @parameterized.expand([("python3.8", True), ("ruby2.7", False)]) + @parameterized.expand([("python3.8", True), ("ruby3.2", False)]) def test_is_runtime_supported(self, runtime, supported): self.assertEqual(NestedStackManager.is_runtime_supported(runtime), supported) diff --git a/tests/unit/lib/build_module/test_app_builder.py b/tests/unit/lib/build_module/test_app_builder.py index bc47c50f06..92c584ba30 100644 --- a/tests/unit/lib/build_module/test_app_builder.py +++ b/tests/unit/lib/build_module/test_app_builder.py @@ -462,7 +462,18 @@ def test_must_raise_for_functions_with_multi_architecture(self, persist_mock, re self.assertEqual(str(ex.exception), msg) @parameterized.expand( - [("python2.7",), ("python3.6",), ("ruby2.5",), ("nodejs10.x",), ("dotnetcore2.1",), ("dotnetcore3.1",)] + [ + ("python2.7",), + ("python3.6",), + ("python3.7",), + ("ruby2.5",), + ("ruby2.7",), + ("nodejs10.x",), + ("nodejs12.x",), + ("nodejs14.x",), + ("dotnetcore2.1",), + ("dotnetcore3.1",), + ] ) def test_deprecated_runtimes(self, runtime): with self.assertRaises(UnsupportedRuntimeException): diff --git a/tests/unit/lib/build_module/test_build_graph.py b/tests/unit/lib/build_module/test_build_graph.py index f6959d61a7..06f01fe35e 100644 --- a/tests/unit/lib/build_module/test_build_graph.py +++ b/tests/unit/lib/build_module/test_build_graph.py @@ -288,7 +288,7 @@ class TestBuildGraph(TestCase): LAYER_NAME = "SumLayer" ZIP = ZIP RUNTIME = "python3.8" - LAYER_RUNTIME = "nodejs12.x" + LAYER_RUNTIME = "nodejs20.x" METADATA = {"Test": "hello", "Test2": "world"} UUID = "3c1c254e-cd4b-4d94-8c74-7ab870b36063" LAYER_UUID = "7dnc257e-cd4b-4d94-8c74-7ab870b3abc3" diff --git a/tests/unit/lib/build_module/test_build_strategy.py b/tests/unit/lib/build_module/test_build_strategy.py index 086a67bd78..27ea179a77 100644 --- a/tests/unit/lib/build_module/test_build_strategy.py +++ b/tests/unit/lib/build_module/test_build_strategy.py @@ -323,7 +323,7 @@ def test_build_single_function_definition_image_functions_with_same_metadata(sel function2.full_path = "Function2" function2.packagetype = IMAGE build_definition = FunctionBuildDefinition( - "3.7", "codeuri", IMAGE, X86_64, {}, "handler", env_vars={"FOO": "BAR"} + "3.12", "codeuri", IMAGE, X86_64, {}, "handler", env_vars={"FOO": "BAR"} ) # since they have the same metadata, they are put into the same build_definition. build_definition.functions = [function1, function2] @@ -343,7 +343,8 @@ class CachedBuildStrategyTest(BuildStrategyBaseTest): FUNCTION_UUID = "3c1c254e-cd4b-4d94-8c74-7ab870b36063" SOURCE_HASH = "cae49aa393d669e850bd49869905099d" LAYER_UUID = "761ce752-d1c8-4e07-86a0-f64778cdd108" - LAYER_METHOD = "nodejs12.x" + LAYER_METHOD = "nodejs20.x" + LAYER_METHOD = "nodejs20.x" BUILD_GRAPH_CONTENTS = f""" [function_build_definitions] @@ -358,8 +359,8 @@ class CachedBuildStrategyTest(BuildStrategyBaseTest): [layer_build_definitions.{LAYER_UUID}] layer_name = "SumLayer" codeuri = "sum_layer/" - build_method = "nodejs12.x" - compatible_runtimes = ["nodejs12.x"] + build_method = "nodejs20.x" + compatible_runtimes = ["nodejs20.x"] source_hash = "{SOURCE_HASH}" layer = "SumLayer" """ @@ -732,9 +733,9 @@ def setUp(self) -> None: @parameterized.expand( [ - "python3.7", - "nodejs12.x", - "ruby2.7", + "python3.12", + "nodejs20.x", + "ruby3.2", ] ) def test_will_call_incremental_build_strategy(self, mocked_read, mocked_write, runtime): diff --git a/tests/unit/lib/build_module/test_workflow_config.py b/tests/unit/lib/build_module/test_workflow_config.py index 8aa5279764..50f5ec4db9 100644 --- a/tests/unit/lib/build_module/test_workflow_config.py +++ b/tests/unit/lib/build_module/test_workflow_config.py @@ -16,7 +16,7 @@ def setUp(self): self.project_dir = "" EventTracker.clear_trackers() - @parameterized.expand([("python3.7",), ("python3.8",)]) + @parameterized.expand([("python3.8",), ("python3.9",), ("python3.10",), ("python3.11",), ("python3.12",)]) def test_must_work_for_python(self, runtime): result = get_workflow_config(runtime, self.code_dir, self.project_dir) self.assertEqual(result.language, "python") @@ -28,7 +28,7 @@ def test_must_work_for_python(self, runtime): self.assertIn(Event("BuildWorkflowUsed", "python-pip"), EventTracker.get_tracked_events()) self.assertFalse(result.must_mount_with_write_in_container) - @parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)]) + @parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)]) def test_must_work_for_nodejs(self, runtime): result = get_workflow_config(runtime, self.code_dir, self.project_dir) self.assertEqual(result.language, "nodejs") @@ -99,7 +99,7 @@ def test_raise_exception_for_bad_specified_workflow(self, runtime): with self.assertRaises(UnsupportedBuilderException): get_workflow_config(runtime, self.code_dir, self.project_dir, specified_workflow="Wrong") - @parameterized.expand([("ruby2.7",)]) + @parameterized.expand([("ruby3.2",)]) def test_must_work_for_ruby(self, runtime): result = get_workflow_config(runtime, self.code_dir, self.project_dir) self.assertEqual(result.language, "ruby") @@ -135,7 +135,7 @@ def test_must_work_for_java(self, runtime, build_file, dep_manager, os_mock): self.assertIn(Event("BuildWorkflowUsed", "java-maven"), EventTracker.get_tracked_events()) def test_must_get_workflow_for_esbuild(self): - runtime = "nodejs12.x" + runtime = "nodejs20.x" result = get_workflow_config(runtime, self.code_dir, self.project_dir, specified_workflow="esbuild") self.assertEqual(result.language, "nodejs") self.assertEqual(result.dependency_manager, "npm-esbuild") diff --git a/tests/unit/lib/cli_validation/test_image_repository_validation.py b/tests/unit/lib/cli_validation/test_image_repository_validation.py index 37f00b1f87..800fa75d9e 100644 --- a/tests/unit/lib/cli_validation/test_image_repository_validation.py +++ b/tests/unit/lib/cli_validation/test_image_repository_validation.py @@ -207,13 +207,13 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunction": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, } }, @@ -236,13 +236,13 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunction": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, } }, @@ -265,13 +265,13 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunction": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, } }, @@ -294,19 +294,19 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunction": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, "ServerlessImageFunc": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "ImageUri": ".", "PackageType": "Image", }, @@ -315,7 +315,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Lambda::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "Code": {"ImageUri": "."}, "PackageType": "Image", }, @@ -344,19 +344,19 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunction": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, "ServerlessImageFunc": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "ImageUri": ".", "PackageType": "Image", }, @@ -365,7 +365,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Lambda::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "Code": {"ImageUri": "."}, "PackageType": "Image", }, @@ -391,19 +391,19 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunction": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, "ServerlessImageFunc": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "ImageUri": ".", "PackageType": "Image", }, @@ -412,7 +412,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Lambda::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "Code": {"ImageUri": "."}, "PackageType": "Image", }, @@ -440,19 +440,19 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunction": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, "ServerlessImageFunc": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "ImageUri": ".", "PackageType": "Image", }, @@ -461,7 +461,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Lambda::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "Code": {"ImageUri": "."}, "PackageType": "Image", }, @@ -491,19 +491,19 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunction": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, "ServerlessImageFunc": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "ImageUri": ".", "PackageType": "Image", }, @@ -512,7 +512,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Lambda::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "Code": {"ImageUri": "."}, "PackageType": "Image", }, @@ -531,19 +531,19 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunctionInChild": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, "ServerlessImageFuncInChild": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "ImageUri": ".", "PackageType": "Image", }, @@ -552,7 +552,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Lambda::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "Code": {"ImageUri": "."}, "PackageType": "Image", }, @@ -583,19 +583,19 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunction": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, "ServerlessImageFunc": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "ImageUri": ".", "PackageType": "Image", }, @@ -604,7 +604,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Lambda::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "Code": {"ImageUri": "."}, "PackageType": "Image", }, @@ -623,19 +623,19 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunctionInChild": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, "ServerlessImageFuncInChild": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "ImageUri": ".", "PackageType": "Image", }, @@ -644,7 +644,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Lambda::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "Code": {"ImageUri": "."}, "PackageType": "Image", }, @@ -679,19 +679,19 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunction": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, "ServerlessImageFunc": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "ImageUri": ".", "PackageType": "Image", }, @@ -700,7 +700,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Lambda::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "Code": {"ImageUri": "."}, "PackageType": "Image", }, @@ -719,19 +719,19 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "CodeUri": ".", }, }, "LambdaFunctionInChild": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, }, "ServerlessImageFuncInChild": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "ImageUri": ".", "PackageType": "Image", }, @@ -740,7 +740,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Type": "AWS::Lambda::Function", "Properties": { "Handler": "lambda.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs20.x", "Code": {"ImageUri": "."}, "PackageType": "Image", }, @@ -772,7 +772,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunction1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction1", "aws:cdk:path": "Stack/CDKLambdaFunction1/Resource", @@ -782,7 +782,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunction2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction2", "aws:cdk:path": "Stack/CDKLambdaFunction2/Resource", @@ -809,7 +809,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunction1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction1", "aws:cdk:path": "Stack/CDKLambdaFunction1/Resource", @@ -819,7 +819,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunction2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction2", "aws:cdk:path": "Stack/CDKLambdaFunction2/Resource", @@ -846,7 +846,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunction1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction1", "aws:cdk:path": "Stack/CDKLambdaFunction1/Resource", @@ -856,7 +856,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunction2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction2", "aws:cdk:path": "Stack/CDKLambdaFunction2/Resource", @@ -883,7 +883,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunction1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction1", "aws:cdk:path": "Stack/CDKLambdaFunction1/Resource", @@ -893,7 +893,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunction2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction2", "aws:cdk:path": "Stack/CDKLambdaFunction2/Resource", @@ -953,7 +953,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunction1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction1", "aws:cdk:path": "Stack/CDKLambdaFunction1/Resource", @@ -963,7 +963,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunction2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction2", "aws:cdk:path": "Stack/CDKLambdaFunction2/Resource", @@ -1023,7 +1023,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunction1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction1", "aws:cdk:path": "Stack/CDKLambdaFunction1/Resource", @@ -1033,7 +1033,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunction2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction2", "aws:cdk:path": "Stack/CDKLambdaFunction2/Resource", @@ -1093,7 +1093,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunction1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction1", "aws:cdk:path": "Stack/CDKLambdaFunction1/Resource", @@ -1103,7 +1103,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunction2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction2", "aws:cdk:path": "Stack/CDKLambdaFunction2/Resource", @@ -1160,7 +1160,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunction1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction1", "aws:cdk:path": "Stack/CDKLambdaFunction1/Resource", @@ -1170,7 +1170,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunction2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction2", "aws:cdk:path": "Stack/CDKLambdaFunction2/Resource", @@ -1220,7 +1220,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunctionInChild1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunctionInChild1", "aws:cdk:path": "Stack/CDKLambdaFunctionInChild1/Resource", @@ -1230,7 +1230,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunctionInChild2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunctionInChild2", "aws:cdk:path": "Stack/CDKLambdaFunctionInChild2/Resource", @@ -1292,7 +1292,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunction1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction1", "aws:cdk:path": "Stack/CDKLambdaFunction1/Resource", @@ -1302,7 +1302,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunction2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction2", "aws:cdk:path": "Stack/CDKLambdaFunction2/Resource", @@ -1352,7 +1352,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunctionInChild1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunctionInChild1", "aws:cdk:path": "Stack/CDKLambdaFunctionInChild1/Resource", @@ -1362,7 +1362,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunctionInChild2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunctionInChild2", "aws:cdk:path": "Stack/CDKLambdaFunctionInChild2/Resource", @@ -1424,7 +1424,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunction1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction1", "aws:cdk:path": "Stack/CDKLambdaFunction1/Resource", @@ -1434,7 +1434,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunction2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction2", "aws:cdk:path": "Stack/CDKLambdaFunction2/Resource", @@ -1484,7 +1484,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunctionInChild1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunctionInChild1", "aws:cdk:path": "Stack/CDKLambdaFunctionInChild1/Resource", @@ -1494,7 +1494,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunctionInChild2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunctionInChild2", "aws:cdk:path": "Stack/CDKLambdaFunctionInChild2/Resource", @@ -1560,7 +1560,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunction1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction1", "aws:cdk:path": "Stack/CDKLambdaFunction1/Resource", @@ -1570,7 +1570,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunction2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunction2", "aws:cdk:path": "Stack/CDKLambdaFunction2/Resource", @@ -1620,7 +1620,7 @@ class TestIsAllImageFunctionsProvided(TestCase): "Resources": { "LambdaFunctionInChild1": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunctionInChild1", "aws:cdk:path": "Stack/CDKLambdaFunctionInChild1/Resource", @@ -1630,7 +1630,7 @@ class TestIsAllImageFunctionsProvided(TestCase): }, "LambdaFunctionInChild2": { "Type": "AWS::Lambda::Function", - "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs14.x", "Code": "."}, + "Properties": {"Handler": "lambda.handler", "Runtime": "nodejs20.x", "Code": "."}, "Metadata": { "SamResource": "CDKLambdaFunctionInChild2", "aws:cdk:path": "Stack/CDKLambdaFunctionInChild2/Resource", diff --git a/tests/unit/lib/sync/test_sync_flow_factory.py b/tests/unit/lib/sync/test_sync_flow_factory.py index 632d25bba5..92d30c8a09 100644 --- a/tests/unit/lib/sync/test_sync_flow_factory.py +++ b/tests/unit/lib/sync/test_sync_flow_factory.py @@ -134,7 +134,7 @@ def test_create_lambda_flow_zip_with_unsupported_runtime_auto_dependency_layer( ): build_context = MagicMock() build_context.function_provider.get.return_value = Mock( - packagetype=ZIP, build_info=FunctionBuildInfo.BuildableZip, runtime="ruby2.7" + packagetype=ZIP, build_info=FunctionBuildInfo.BuildableZip, runtime="ruby3.2" ) factory = self.create_factory(True, build_context=build_context) result = factory._create_lambda_flow("Function1", pre_build_artifacts) diff --git a/tests/unit/lib/utils/test_architecture.py b/tests/unit/lib/utils/test_architecture.py index 860c513a07..e8c777fa84 100644 --- a/tests/unit/lib/utils/test_architecture.py +++ b/tests/unit/lib/utils/test_architecture.py @@ -42,7 +42,7 @@ def test_validate_architecture_errors(self, value): @parameterized.expand( [ - ("nodejs14.x", X86_64, ZIP), + ("nodejs20.x", X86_64, ZIP), ("java8.al2", ARM64, ZIP), ("dotnet6", ARM64, ZIP), (None, X86_64, IMAGE), @@ -58,7 +58,6 @@ def test_must_pass_for_support_runtime_architecture(self, runtime, arch, package @parameterized.expand( [ - ("python3.7", ARM64), ("java8", ARM64), ("go1.x", ARM64), ("provided", ARM64), diff --git a/tests/unit/lib/utils/test_lambda_builders.py b/tests/unit/lib/utils/test_lambda_builders.py index d0fc170ea3..88746e3492 100644 --- a/tests/unit/lib/utils/test_lambda_builders.py +++ b/tests/unit/lib/utils/test_lambda_builders.py @@ -9,7 +9,7 @@ class TestPatchRuntime(TestCase): @parameterized.expand( [ - ("nodejs14.x", "nodejs14.x"), + ("nodejs20.x", "nodejs20.x"), ("java8.al2", "java8"), ("dotnet6", "dotnet6"), ("provided", "provided"), diff --git a/tests/unit/local/docker/test_lambda_build_container.py b/tests/unit/local/docker/test_lambda_build_container.py index d62c52e893..d788b8ee2e 100644 --- a/tests/unit/local/docker/test_lambda_build_container.py +++ b/tests/unit/local/docker/test_lambda_build_container.py @@ -182,7 +182,7 @@ class TestLambdaBuildContainer_get_image(TestCase): @parameterized.expand( [ ("myruntime", ARM64, "public.ecr.aws/sam/build-myruntime:latest-arm64"), - ("nodejs14.x", X86_64, "public.ecr.aws/sam/build-nodejs14.x:latest-x86_64"), + ("nodejs20.x", X86_64, "public.ecr.aws/sam/build-nodejs20.x:latest-x86_64"), ] ) def test_must_get_image_name(self, runtime, architecture, expected_image_name): diff --git a/tests/unit/local/docker/test_lambda_container.py b/tests/unit/local/docker/test_lambda_container.py index acce6a5ca7..8db35a3f90 100644 --- a/tests/unit/local/docker/test_lambda_container.py +++ b/tests/unit/local/docker/test_lambda_container.py @@ -9,25 +9,24 @@ from samcli.commands.local.lib.debug_context import DebugContext from samcli.lib.utils.packagetype import IMAGE, ZIP +from samcli.local.docker.exceptions import InvalidRuntimeException from samcli.local.docker.lambda_container import LambdaContainer, Runtime, RIE_LOG_LEVEL_ENV_VAR from samcli.local.docker.lambda_debug_settings import DebuggingNotSupported from samcli.local.docker.lambda_image import RAPID_IMAGE_TAG_PREFIX -RUNTIMES_WITH_ENTRYPOINT = [Runtime.dotnet6.value, Runtime.go1x.value] +RUNTIMES_WITH_ENTRYPOINT = [Runtime.dotnet6.value, Runtime.dotnet8.value, Runtime.go1x.value] RUNTIMES_WITH_BOOTSTRAP_ENTRYPOINT = [ - Runtime.nodejs12x.value, - Runtime.nodejs14x.value, Runtime.nodejs16x.value, Runtime.nodejs18x.value, Runtime.nodejs20x.value, - Runtime.python37.value, Runtime.python38.value, Runtime.python39.value, Runtime.python310.value, Runtime.python311.value, Runtime.python312.value, Runtime.dotnet6.value, + Runtime.dotnet8.value, ] RUNTIMES_WITH_DEBUG_ENV_VARS_ONLY = [ @@ -47,7 +46,7 @@ class TestLambdaContainer_init(TestCase): def setUp(self): - self.runtime = "nodejs12.x" + self.runtime = "nodejs20.x" self.handler = "handler" self.code_dir = "codedir" self.image_config = None @@ -435,7 +434,7 @@ def test_must_fail_for_unsupported_runtime(self): image_builder_mock = Mock() - with self.assertRaises(ValueError) as context: + with self.assertRaises(InvalidRuntimeException) as context: LambdaContainer( runtime=runtime, imageuri=self.imageuri, @@ -448,7 +447,10 @@ def test_must_fail_for_unsupported_runtime(self): architecture="x86_64", ) - self.assertEqual(str(context.exception), "Unsupported Lambda runtime foo") + self.assertEqual( + str(context.exception), + "Unsupported Lambda runtime: foo. For a list of supported runtimes, please visit https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html", + ) @parameterized.expand( [ diff --git a/tests/unit/local/docker/test_lambda_debug_settings.py b/tests/unit/local/docker/test_lambda_debug_settings.py index c05b8cd04e..751240d94f 100644 --- a/tests/unit/local/docker/test_lambda_debug_settings.py +++ b/tests/unit/local/docker/test_lambda_debug_settings.py @@ -12,13 +12,11 @@ Runtime.java17, Runtime.java21, Runtime.dotnet6, + Runtime.dotnet8, Runtime.go1x, - Runtime.nodejs12x, - Runtime.nodejs14x, Runtime.nodejs16x, Runtime.nodejs18x, Runtime.nodejs20x, - Runtime.python37, Runtime.python38, Runtime.python39, Runtime.python310, diff --git a/tests/unit/local/docker/test_lambda_image.py b/tests/unit/local/docker/test_lambda_image.py index b56c13798c..f1bdbdfcb5 100644 --- a/tests/unit/local/docker/test_lambda_image.py +++ b/tests/unit/local/docker/test_lambda_image.py @@ -18,14 +18,11 @@ class TestRuntime(TestCase): @parameterized.expand( [ - ("nodejs12.x", "nodejs:12-x86_64"), - ("nodejs14.x", "nodejs:14-x86_64"), ("nodejs16.x", "nodejs:16-x86_64"), - ("python2.7", "python:2.7"), - ("python3.7", "python:3.7"), + ("nodejs18.x", "nodejs:18-x86_64"), + ("nodejs20.x", "nodejs:20-x86_64"), ("python3.8", "python:3.8-x86_64"), ("python3.9", "python:3.9-x86_64"), - ("ruby2.7", "ruby:2.7-x86_64"), ("ruby3.2", "ruby:3.2-x86_64"), ("java8", "java:8"), ("java8.al2", "java:8.al2-x86_64"), @@ -34,6 +31,7 @@ class TestRuntime(TestCase): ("java21", "java:21-x86_64"), ("go1.x", "go:1"), ("dotnet6", "dotnet:6-x86_64"), + ("dotnet8", "dotnet:8-x86_64"), ("provided", "provided:alami"), ("provided.al2", "provided:al2-x86_64"), ("provided.al2023", "provided:al2023-x86_64"), @@ -166,13 +164,13 @@ def test_building_image_with_no_layers(self, build_image_patch, is_base_image_cu lambda_image = LambdaImage(layer_downloader_mock, False, False, docker_client=docker_client_mock) self.assertEqual( - lambda_image.build("python3.7", ZIP, None, [], ARM64, stream=stream), - f"public.ecr.aws/lambda/python:3.7-{RAPID_IMAGE_TAG_PREFIX}-arm64", + lambda_image.build("python3.12", ZIP, None, [], ARM64, stream=stream), + f"public.ecr.aws/lambda/python:3.12-{RAPID_IMAGE_TAG_PREFIX}-arm64", ) build_image_patch.assert_called_once_with( - "public.ecr.aws/lambda/python:3.7", - f"public.ecr.aws/lambda/python:3.7-{RAPID_IMAGE_TAG_PREFIX}-arm64", + "public.ecr.aws/lambda/python:3.12-arm64", + f"public.ecr.aws/lambda/python:3.12-{RAPID_IMAGE_TAG_PREFIX}-arm64", [], ARM64, stream=stream, @@ -243,18 +241,18 @@ def test_not_building_image_that_is_up_to_date( docker_client_mock.images.get.return_value = Mock() lambda_image = LambdaImage(layer_downloader_mock, False, False, docker_client=docker_client_mock) - actual_image_id = lambda_image.build("python3.7", ZIP, None, [layer_mock], X86_64, function_name="function") + actual_image_id = lambda_image.build("python3.12", ZIP, None, [layer_mock], X86_64, function_name="function") self.assertEqual(actual_image_id, "samcli/lambda-runtime:image-version") layer_downloader_mock.download_all.assert_called_once_with([layer_mock], False) - generate_docker_image_version_patch.assert_called_once_with([layer_mock], "python:3.7") + generate_docker_image_version_patch.assert_called_once_with([layer_mock], "python:3.12-x86_64") docker_client_mock.images.get.assert_called_once_with("samcli/lambda-runtime:image-version") build_image_patch.assert_not_called() @parameterized.expand( [ - ("python3.7", "python:3.7", "public.ecr.aws/lambda/python:3.7"), + ("python3.12", "python:3.12-x86_64", "public.ecr.aws/lambda/python:3.12-x86_64"), ("python3.8", "python:3.8-x86_64", "public.ecr.aws/lambda/python:3.8-x86_64"), ] ) @@ -294,7 +292,7 @@ def test_force_building_image_that_doesnt_already_exists( @parameterized.expand( [ - ("python3.7", "python:3.7", "public.ecr.aws/lambda/python:3.7"), + ("python3.12", "python:3.12-x86_64", "public.ecr.aws/lambda/python:3.12-x86_64"), ("python3.8", "python:3.8-x86_64", "public.ecr.aws/lambda/python:3.8-x86_64"), ] ) @@ -334,7 +332,7 @@ def test_force_building_image_on_daemon_404( @parameterized.expand( [ - ("python3.7", "python:3.7", "public.ecr.aws/lambda/python:3.7"), + ("python3.12", "python:3.12-x86_64", "public.ecr.aws/lambda/python:3.12-x86_64"), ("python3.8", "python:3.8-x86_64", "public.ecr.aws/lambda/python:3.8-x86_64"), ] ) @@ -360,7 +358,7 @@ def test_docker_distribution_api_error_on_daemon_api_error( @parameterized.expand( [ - ("python3.7", "python:3.7", "public.ecr.aws/lambda/python:3.7"), + ("python3.12", "python:3.12-arm64", "public.ecr.aws/lambda/python:3.12-arm64"), ("python3.8", "python:3.8-arm64", "public.ecr.aws/lambda/python:3.8-arm64"), ] ) @@ -743,12 +741,12 @@ def test_is_rapid_image(self, image_name, is_rapid): (f"my_repo:rapid-{version}", False), (f"my_repo:rapid-{version}beta", False), (f"my_repo:rapid-{version}-x86_64", False), - (f"public.ecr.aws/sam/emulation-python3.7:{RAPID_IMAGE_TAG_PREFIX}", False), + (f"public.ecr.aws/sam/emulation-python3.12:{RAPID_IMAGE_TAG_PREFIX}", False), (f"public.ecr.aws/lambda/python:3.9-{RAPID_IMAGE_TAG_PREFIX}-x86_64", True), ("my_repo:rapid-1.230.0", False), ("my_repo:rapid-1.204.0beta", False), ("my_repo:rapid-0.00.02-x86_64", False), - (f"public.ecr.aws/sam/emulation-python3.7:{RAPID_IMAGE_TAG_PREFIX}-0.01.01.01", False), + (f"public.ecr.aws/sam/emulation-python3.12:{RAPID_IMAGE_TAG_PREFIX}-0.01.01.01", False), ] ) def test_is_rapid_image_current(self, image_name, is_current): diff --git a/tests/unit/local/lambdafn/test_runtime.py b/tests/unit/local/lambdafn/test_runtime.py index 142ce36208..dd7dfba10a 100644 --- a/tests/unit/local/lambdafn/test_runtime.py +++ b/tests/unit/local/lambdafn/test_runtime.py @@ -373,6 +373,7 @@ def test_exception_from_run_must_trigger_cleanup(self, LambdaContainerMock): self.runtime._get_code_dir.return_value = code_dir self.runtime._configure_interrupt = Mock() self.runtime._configure_interrupt.return_value = start_timer + self.runtime._lock = MagicMock() self.runtime._check_exit_state = Mock() @@ -412,6 +413,7 @@ def test_exception_from_wait_for_result_must_trigger_cleanup(self, LambdaContain self.runtime._configure_interrupt = Mock() self.runtime._configure_interrupt.return_value = timer self.runtime._check_exit_state = Mock() + self.runtime._lock = MagicMock() LambdaContainerMock.return_value = container container.is_running.return_value = False @@ -446,6 +448,7 @@ def test_keyboard_interrupt_must_not_raise(self, LambdaContainerMock): self.runtime._get_code_dir.return_value = code_dir self.runtime._configure_interrupt = Mock() self.runtime._check_exit_state = Mock() + self.runtime._lock = MagicMock() LambdaContainerMock.return_value = container container.is_running.return_value = False @@ -993,6 +996,7 @@ def setUp(self): "func_name2": self.func2_container_mock, } self.runtime._temp_uncompressed_paths_to_be_cleaned = ["path1", "path2"] + self.runtime._lock = MagicMock() @patch("samcli.local.lambdafn.runtime.shutil") def test_must_container_stopped_when_its_code_dir_got_changed(self, shutil_mock): @@ -1154,7 +1158,7 @@ def test_function_should_reloaded_if_runtime_changed(self): func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1182,7 +1186,7 @@ def test_function_should_reloaded_if_handler_changed(self): func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1195,7 +1199,7 @@ def test_function_should_reloaded_if_handler_changed(self): updated_func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler1", None, None, @@ -1210,7 +1214,7 @@ def test_function_should_reloaded_if_package_type_changed(self): func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", "imageUri", None, @@ -1223,7 +1227,7 @@ def test_function_should_reloaded_if_package_type_changed(self): updated_func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1238,7 +1242,7 @@ def test_function_should_reloaded_if_image_uri_changed(self): func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", "imageUri", None, @@ -1251,7 +1255,7 @@ def test_function_should_reloaded_if_image_uri_changed(self): updated_func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", "imageUri1", None, @@ -1266,7 +1270,7 @@ def test_function_should_reloaded_if_image_config_changed(self): func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", "imageUri", {"WorkingDirectory": "/opt"}, @@ -1279,7 +1283,7 @@ def test_function_should_reloaded_if_image_config_changed(self): updated_func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", "imageUri", {"WorkingDirectory": "/var"}, @@ -1294,7 +1298,7 @@ def test_function_should_reloaded_if_code_path_changed(self): func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1307,7 +1311,7 @@ def test_function_should_reloaded_if_code_path_changed(self): updated_func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1322,7 +1326,7 @@ def test_function_should_reloaded_if_env_vars_changed(self): func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1341,7 +1345,7 @@ def test_function_should_reloaded_if_env_vars_changed(self): updated_func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1361,7 +1365,7 @@ def test_function_should_reloaded_if_one_layer_removed(self): func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1378,7 +1382,7 @@ def test_function_should_reloaded_if_one_layer_removed(self): updated_func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1396,7 +1400,7 @@ def test_function_should_reloaded_if_one_layer_added(self): func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1412,7 +1416,7 @@ def test_function_should_reloaded_if_one_layer_added(self): updated_func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1430,7 +1434,7 @@ def test_function_should_reloaded_if_layers_changed(self): func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1446,7 +1450,7 @@ def test_function_should_reloaded_if_layers_changed(self): updated_func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1464,7 +1468,7 @@ def test_function_should_not_reloaded_if_nothing_changed(self): func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, @@ -1481,7 +1485,7 @@ def test_function_should_not_reloaded_if_nothing_changed(self): updated_func = FunctionConfig( "name", "stack/name", - "python3.7", + "python3.12", "app.handler", None, None, diff --git a/tests/unit/local/services/test_base_local_service.py b/tests/unit/local/services/test_base_local_service.py index 0469b592e4..b1513177c5 100644 --- a/tests/unit/local/services/test_base_local_service.py +++ b/tests/unit/local/services/test_base_local_service.py @@ -1,5 +1,6 @@ +import signal from unittest import TestCase -from unittest.mock import Mock, patch +from unittest.mock import Mock, patch, ANY from parameterized import parameterized, param @@ -55,6 +56,20 @@ def test_service_response(self, flask_response_patch): self.assertEqual(actual_response.status_code, 200) self.assertEqual(actual_response.headers, {"Content-Type": "application/json"}) + @patch("samcli.local.services.base_local_service.signal.signal") + def test_service_registers_sigterm_interrupt(self, signal_mock): + service = BaseLocalService(is_debugging=False, port=3000, host="127.0.0.1", ssl_context=None) + + service._app = Mock() + app_run_mock = Mock() + service._app.run = app_run_mock + + service.run() + + signal_mock.assert_called_once_with(signal.SIGTERM, ANY) + + app_run_mock.assert_called_once_with(threaded=True, host="127.0.0.1", port=3000, ssl_context=None) + def test_create_returns_not_implemented(self): is_debugging = False service = BaseLocalService(is_debugging=is_debugging, port=3000, host="127.0.0.1", ssl_context=None) diff --git a/tests/unit/test_yamlhelper.py b/tests/unit/test_yamlhelper.py index f28dd1f970..4efc884ee1 100644 --- a/tests/unit/test_yamlhelper.py +++ b/tests/unit/test_yamlhelper.py @@ -172,7 +172,7 @@ def test_unquoted_template_format_version_to_json(self): " Type: AWS::Serverless::Function\n" " Properties:\n" " Handler: main.handler\n" - " Runtime: python3.7\n" + " Runtime: python3.12\n" " CodeUri: .\n" " Timeout: 600\n" )