{
  "sha": "f18b9ca21c823a009d55fb504cd7d610e9a3cb70",
  "node_id": "C_kwDOBX7wHdoAKGYxOGI5Y2EyMWM4MjNhMDA5ZDU1ZmI1MDRjZDdkNjEwZTlhM2NiNzA",
  "commit": {
    "author": {
      "name": "Reed Hamilton",
      "email": "reedham@amazon.com",
      "date": "2026-04-24T23:15:17Z"
    },
    "committer": {
      "name": "GitHub",
      "email": "noreply@github.com",
      "date": "2026-04-24T23:15:17Z"
    },
    "message": "feat: add ruby4.0 runtime (#8931)\n\n* feat: add ruby4.0 runtime\n\n* fix: add extra ruby4.0 references",
    "tree": {
      "sha": "9a126ab2244a0842bb49ca726579d1c205d6c9c8",
      "url": "https://api.github.com/repos/aws/aws-sam-cli/git/trees/9a126ab2244a0842bb49ca726579d1c205d6c9c8"
    },
    "url": "https://api.github.com/repos/aws/aws-sam-cli/git/commits/f18b9ca21c823a009d55fb504cd7d610e9a3cb70",
    "comment_count": 0,
    "verification": {
      "verified": true,
      "reason": "valid",
      "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJp6/mVCRC1aQ7uu5UhlAAApaoQADYLHTgwRPFaxxte+6PeL6cP\nJWGWiSdgRgv0hHtsceW4uHCh7U94RJSwLpwNqY8GgBFZcIp0Vkv6P5EDcrFVxRuP\ny5cVO7v3iLuuirvsgJLbmKPv6aZEKskG2tVPVTpggEidFkhQzJKZREIotvNC/1w4\nprOSr+dlsuJiBu6TLLngxN7t/okpX4fPyZEBSNcsFFpEaH6W74oHjAVKx65X3INA\nLecTKbTPOPLevBofj40vFuSNrBeqDQYhp0YvErg6H3c9GVXOOBfE9Z2qXq9dNJrk\nib5jagptj4fRJFmhtFSoYgqdY0ZcUjcdU2hwyZXgpsisLtHRN347Q8dVR496dZh5\ngi3nLaST0clHLifyLT+sezy+fXulaLQlZf+aZnclFO9TEBXs6bKsHMoBaLPlZOSx\nbfPJWhxzC5zWvw7Z2IU+HZboidQnMC7MMOZzrVGedL9bbLENufwYmibM1Ik6bG7D\ns3Zkw4v3UIdCvLjG92/zRVfpznwEIzAjasEqMXnvc30i3F66oR0VIhEbLJB0/FZL\nV0/92Uky/eoJTYHefZUHyn4f+3umE8uQL7ucGNBoc09vRIjoQHZMRe9PGoq0lpxy\nJzbPEIh2SkoOjWwOJuU0TgT7Ah6/nwVIIOo5LxvwTmA38euH/nzfvwmFSKnCyc7/\ntIbnDOZLV7lYqefhYsOw\n=Ijc7\n-----END PGP SIGNATURE-----\n",
      "payload": "tree 9a126ab2244a0842bb49ca726579d1c205d6c9c8\nparent fdf769d9e893a1e151b2cb4b4100e43f19eacc97\nauthor Reed Hamilton <reedham@amazon.com> 1777072517 -0700\ncommitter GitHub <noreply@github.com> 1777072517 +0000\n\nfeat: add ruby4.0 runtime (#8931)\n\n* feat: add ruby4.0 runtime\n\n* fix: add extra ruby4.0 references",
      "verified_at": "2026-04-24T23:15:34Z"
    }
  },
  "url": "https://api.github.com/repos/aws/aws-sam-cli/commits/f18b9ca21c823a009d55fb504cd7d610e9a3cb70",
  "html_url": "https://github.com/aws/aws-sam-cli/commit/f18b9ca21c823a009d55fb504cd7d610e9a3cb70",
  "comments_url": "https://api.github.com/repos/aws/aws-sam-cli/commits/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/comments",
  "author": {
    "login": "reedham-aws",
    "id": 223526600,
    "node_id": "U_kgDODVK-yA",
    "avatar_url": "https://avatars.githubusercontent.com/u/223526600?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/reedham-aws",
    "html_url": "https://github.com/reedham-aws",
    "followers_url": "https://api.github.com/users/reedham-aws/followers",
    "following_url": "https://api.github.com/users/reedham-aws/following{/other_user}",
    "gists_url": "https://api.github.com/users/reedham-aws/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/reedham-aws/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/reedham-aws/subscriptions",
    "organizations_url": "https://api.github.com/users/reedham-aws/orgs",
    "repos_url": "https://api.github.com/users/reedham-aws/repos",
    "events_url": "https://api.github.com/users/reedham-aws/events{/privacy}",
    "received_events_url": "https://api.github.com/users/reedham-aws/received_events",
    "type": "User",
    "user_view_type": "public",
    "site_admin": false
  },
  "committer": {
    "login": "web-flow",
    "id": 19864447,
    "node_id": "MDQ6VXNlcjE5ODY0NDQ3",
    "avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/web-flow",
    "html_url": "https://github.com/web-flow",
    "followers_url": "https://api.github.com/users/web-flow/followers",
    "following_url": "https://api.github.com/users/web-flow/following{/other_user}",
    "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
    "organizations_url": "https://api.github.com/users/web-flow/orgs",
    "repos_url": "https://api.github.com/users/web-flow/repos",
    "events_url": "https://api.github.com/users/web-flow/events{/privacy}",
    "received_events_url": "https://api.github.com/users/web-flow/received_events",
    "type": "User",
    "user_view_type": "public",
    "site_admin": false
  },
  "parents": [
    {
      "sha": "fdf769d9e893a1e151b2cb4b4100e43f19eacc97",
      "url": "https://api.github.com/repos/aws/aws-sam-cli/commits/fdf769d9e893a1e151b2cb4b4100e43f19eacc97",
      "html_url": "https://github.com/aws/aws-sam-cli/commit/fdf769d9e893a1e151b2cb4b4100e43f19eacc97"
    }
  ],
  "stats": {
    "total": 33,
    "additions": 21,
    "deletions": 12
  },
  "files": [
    {
      "sha": "7a77f19d53c2dcc9b35874e99d5cb2580b2fa6e9",
      "filename": "samcli/commands/build/command.py",
      "status": "modified",
      "additions": 1,
      "deletions": 1,
      "changes": 2,
      "blob_url": "https://github.com/aws/aws-sam-cli/blob/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/samcli%2Fcommands%2Fbuild%2Fcommand.py",
      "raw_url": "https://github.com/aws/aws-sam-cli/raw/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/samcli%2Fcommands%2Fbuild%2Fcommand.py",
      "contents_url": "https://api.github.com/repos/aws/aws-sam-cli/contents/samcli%2Fcommands%2Fbuild%2Fcommand.py?ref=f18b9ca21c823a009d55fb504cd7d610e9a3cb70",
      "patch": "@@ -59,7 +59,7 @@\n   ------------------\n   1. Python 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14 using PIP\\n\n   2. Nodejs 24.x, 22.x, 20.x, 18.x, 16.x, 14.x, 12.x using NPM\\n\n-  3. Ruby 3.2, 3.3, 3.4 using Bundler\\n\n+  3. Ruby 3.2, 3.3, 3.4, 4.0 using Bundler\\n\n   4. Java 8, Java 11, Java 17, Java 21, Java 25 using Gradle and Maven\\n\n   5. Dotnet6, Dotnet8, Dotnet10 using Dotnet CLI\\n\n   6. Go 1.x using Go Modules (without --use-container)\\n"
    },
    {
      "sha": "c49a4a0f4ddf486972c206f46bee655d5b5b566e",
      "filename": "samcli/lib/build/workflow_config.py",
      "status": "modified",
      "additions": 2,
      "deletions": 0,
      "changes": 2,
      "blob_url": "https://github.com/aws/aws-sam-cli/blob/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/samcli%2Flib%2Fbuild%2Fworkflow_config.py",
      "raw_url": "https://github.com/aws/aws-sam-cli/raw/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/samcli%2Flib%2Fbuild%2Fworkflow_config.py",
      "contents_url": "https://api.github.com/repos/aws/aws-sam-cli/contents/samcli%2Flib%2Fbuild%2Fworkflow_config.py?ref=f18b9ca21c823a009d55fb504cd7d610e9a3cb70",
      "patch": "@@ -102,6 +102,7 @@ def get_layer_subfolder(build_workflow: str) -> str:\n         \"ruby3.2\": \"ruby/lib\",\n         \"ruby3.3\": \"ruby/lib\",\n         \"ruby3.4\": \"ruby/lib\",\n+        \"ruby4.0\": \"ruby/lib\",\n         \"java11\": \"java\",\n         \"java8.al2\": \"java\",\n         \"java17\": \"java\",\n@@ -175,6 +176,7 @@ def get_workflow_config(\n         \"ruby3.2\": BasicWorkflowSelector(RUBY_BUNDLER_CONFIG),\n         \"ruby3.3\": BasicWorkflowSelector(RUBY_BUNDLER_CONFIG),\n         \"ruby3.4\": BasicWorkflowSelector(RUBY_BUNDLER_CONFIG),\n+        \"ruby4.0\": BasicWorkflowSelector(RUBY_BUNDLER_CONFIG),\n         \"dotnet6\": BasicWorkflowSelector(DOTNET_CLIPACKAGE_CONFIG),\n         \"dotnet8\": BasicWorkflowSelector(DOTNET_CLIPACKAGE_CONFIG),\n         \"dotnet10\": BasicWorkflowSelector(DOTNET_CLIPACKAGE_CONFIG),"
    },
    {
      "sha": "643fd9526f2a0ece68a64cd9590f81d88982607c",
      "filename": "samcli/lib/utils/architecture.py",
      "status": "modified",
      "additions": 1,
      "deletions": 0,
      "changes": 1,
      "blob_url": "https://github.com/aws/aws-sam-cli/blob/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/samcli%2Flib%2Futils%2Farchitecture.py",
      "raw_url": "https://github.com/aws/aws-sam-cli/raw/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/samcli%2Flib%2Futils%2Farchitecture.py",
      "contents_url": "https://api.github.com/repos/aws/aws-sam-cli/contents/samcli%2Flib%2Futils%2Farchitecture.py?ref=f18b9ca21c823a009d55fb504cd7d610e9a3cb70",
      "patch": "@@ -30,6 +30,7 @@\n     \"ruby3.2\": [ARM64, X86_64],\n     \"ruby3.3\": [ARM64, X86_64],\n     \"ruby3.4\": [ARM64, X86_64],\n+    \"ruby4.0\": [ARM64, X86_64],\n     \"java8.al2\": [ARM64, X86_64],\n     \"java11\": [ARM64, X86_64],\n     \"java17\": [ARM64, X86_64],"
    },
    {
      "sha": "a25d673038c2c0f3cd17710f91c8ca6ccfcff5d5",
      "filename": "samcli/local/common/runtime_template.py",
      "status": "modified",
      "additions": 3,
      "deletions": 1,
      "changes": 4,
      "blob_url": "https://github.com/aws/aws-sam-cli/blob/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/samcli%2Flocal%2Fcommon%2Fruntime_template.py",
      "raw_url": "https://github.com/aws/aws-sam-cli/raw/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/samcli%2Flocal%2Fcommon%2Fruntime_template.py",
      "contents_url": "https://api.github.com/repos/aws/aws-sam-cli/contents/samcli%2Flocal%2Fcommon%2Fruntime_template.py?ref=f18b9ca21c823a009d55fb504cd7d610e9a3cb70",
      "patch": "@@ -32,7 +32,7 @@\n     ],\n     \"ruby\": [\n         {\n-            \"runtimes\": [\"ruby3.4\", \"ruby3.3\", \"ruby3.2\"],\n+            \"runtimes\": [\"ruby4.0\", \"ruby3.4\", \"ruby3.3\", \"ruby3.2\"],\n             \"dependency_manager\": \"bundler\",\n             \"init_location\": os.path.join(_templates, \"cookiecutter-aws-sam-hello-ruby\"),\n             \"build\": True,\n@@ -137,6 +137,7 @@ def get_local_lambda_images_location(mapping, runtime):\n     \"python3.9\",\n     \"python3.8\",\n     # ruby runtimes in descending order\n+    \"ruby4.0\",\n     \"ruby3.4\",\n     \"ruby3.3\",\n     \"ruby3.2\",\n@@ -167,6 +168,7 @@ def get_local_lambda_images_location(mapping, runtime):\n     \"python3.10\": \"amazon/python3.10-base\",\n     \"python3.9\": \"amazon/python3.9-base\",\n     \"python3.8\": \"amazon/python3.8-base\",\n+    \"ruby4.0\": \"amazon/ruby4.0-base\",\n     \"ruby3.4\": \"amazon/ruby3.4-base\",\n     \"ruby3.3\": \"amazon/ruby3.3-base\",\n     \"ruby3.2\": \"amazon/ruby3.2-base\","
    },
    {
      "sha": "3591b102c303a3f31e3f94b5dd0c57493d5c4537",
      "filename": "samcli/local/docker/lambda_image.py",
      "status": "modified",
      "additions": 1,
      "deletions": 0,
      "changes": 1,
      "blob_url": "https://github.com/aws/aws-sam-cli/blob/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/samcli%2Flocal%2Fdocker%2Flambda_image.py",
      "raw_url": "https://github.com/aws/aws-sam-cli/raw/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/samcli%2Flocal%2Fdocker%2Flambda_image.py",
      "contents_url": "https://api.github.com/repos/aws/aws-sam-cli/contents/samcli%2Flocal%2Fdocker%2Flambda_image.py?ref=f18b9ca21c823a009d55fb504cd7d610e9a3cb70",
      "patch": "@@ -56,6 +56,7 @@ class Runtime(Enum):\n     ruby32 = \"ruby3.2\"\n     ruby33 = \"ruby3.3\"\n     ruby34 = \"ruby3.4\"\n+    ruby40 = \"ruby4.0\"\n     java8al2 = \"java8.al2\"\n     java11 = \"java11\"\n     java17 = \"java17\""
    },
    {
      "sha": "f2c93aa4492c6c2fd2cef1c48e74103512e6effa",
      "filename": "schema/samcli.json",
      "status": "modified",
      "additions": 11,
      "deletions": 8,
      "changes": 19,
      "blob_url": "https://github.com/aws/aws-sam-cli/blob/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/schema%2Fsamcli.json",
      "raw_url": "https://github.com/aws/aws-sam-cli/raw/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/schema%2Fsamcli.json",
      "contents_url": "https://api.github.com/repos/aws/aws-sam-cli/contents/schema%2Fsamcli.json?ref=f18b9ca21c823a009d55fb504cd7d610e9a3cb70",
      "patch": "@@ -54,7 +54,7 @@\n           \"properties\": {\n             \"parameters\": {\n               \"title\": \"Parameters for the init command\",\n-              \"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: dotnet10, dotnet8, dotnet6, go1.x, java25, java21, java17, java11, java8.al2, nodejs24.x, nodejs22.x, nodejs20.x, nodejs18.x, nodejs16.x, provided, provided.al2, provided.al2023, python3.9, python3.8, python3.14, python3.13, python3.12, python3.11, python3.10, ruby3.4, ruby3.3, 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/dotnet10-base, 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/java25-base, amazon/java8.al2-base, amazon/nodejs16.x-base, amazon/nodejs18.x-base, amazon/nodejs20.x-base, amazon/nodejs22.x-base, amazon/nodejs24.x-base, amazon/python3.10-base, amazon/python3.11-base, amazon/python3.12-base, amazon/python3.13-base, amazon/python3.14-base, amazon/python3.8-base, amazon/python3.9-base, amazon/ruby3.2-base, amazon/ruby3.3-base, amazon/ruby3.4-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.\",\n+              \"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: dotnet10, dotnet8, dotnet6, go1.x, java25, java21, java17, java11, java8.al2, nodejs24.x, nodejs22.x, nodejs20.x, nodejs18.x, nodejs16.x, provided, provided.al2, provided.al2023, python3.9, python3.8, python3.14, python3.13, python3.12, python3.11, python3.10, ruby4.0, ruby3.4, ruby3.3, 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/dotnet10-base, 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/java25-base, amazon/java8.al2-base, amazon/nodejs16.x-base, amazon/nodejs18.x-base, amazon/nodejs20.x-base, amazon/nodejs22.x-base, amazon/nodejs24.x-base, amazon/python3.10-base, amazon/python3.11-base, amazon/python3.12-base, amazon/python3.13-base, amazon/python3.14-base, amazon/python3.8-base, amazon/python3.9-base, amazon/ruby3.2-base, amazon/ruby3.3-base, amazon/ruby3.4-base, amazon/ruby4.0-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.\",\n               \"type\": \"object\",\n               \"properties\": {\n                 \"no_interactive\": {\n@@ -79,7 +79,7 @@\n                 \"runtime\": {\n                   \"title\": \"runtime\",\n                   \"type\": \"string\",\n-                  \"description\": \"Lambda runtime for application.\\n\\nRuntimes: dotnet10, dotnet8, dotnet6, go1.x, java25, java21, java17, java11, java8.al2, nodejs24.x, nodejs22.x, nodejs20.x, nodejs18.x, nodejs16.x, provided, provided.al2, provided.al2023, python3.9, python3.8, python3.14, python3.13, python3.12, python3.11, python3.10, ruby3.4, ruby3.3, ruby3.2\",\n+                  \"description\": \"Lambda runtime for application.\\n\\nRuntimes: dotnet10, dotnet8, dotnet6, go1.x, java25, java21, java17, java11, java8.al2, nodejs24.x, nodejs22.x, nodejs20.x, nodejs18.x, nodejs16.x, provided, provided.al2, provided.al2023, python3.9, python3.8, python3.14, python3.13, python3.12, python3.11, python3.10, ruby4.0, ruby3.4, ruby3.3, ruby3.2\",\n                   \"enum\": [\n                     \"dotnet10\",\n                     \"dotnet6\",\n@@ -107,7 +107,8 @@\n                     \"python3.9\",\n                     \"ruby3.2\",\n                     \"ruby3.3\",\n-                    \"ruby3.4\"\n+                    \"ruby3.4\",\n+                    \"ruby4.0\"\n                   ]\n                 },\n                 \"package_type\": {\n@@ -122,7 +123,7 @@\n                 \"base_image\": {\n                   \"title\": \"base_image\",\n                   \"type\": \"string\",\n-                  \"description\": \"Lambda base image for deploying IMAGE based package type.\\n\\nBase images: amazon/dotnet10-base, 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/java25-base, amazon/java8.al2-base, amazon/nodejs16.x-base, amazon/nodejs18.x-base, amazon/nodejs20.x-base, amazon/nodejs22.x-base, amazon/nodejs24.x-base, amazon/python3.10-base, amazon/python3.11-base, amazon/python3.12-base, amazon/python3.13-base, amazon/python3.14-base, amazon/python3.8-base, amazon/python3.9-base, amazon/ruby3.2-base, amazon/ruby3.3-base, amazon/ruby3.4-base\",\n+                  \"description\": \"Lambda base image for deploying IMAGE based package type.\\n\\nBase images: amazon/dotnet10-base, 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/java25-base, amazon/java8.al2-base, amazon/nodejs16.x-base, amazon/nodejs18.x-base, amazon/nodejs20.x-base, amazon/nodejs22.x-base, amazon/nodejs24.x-base, amazon/python3.10-base, amazon/python3.11-base, amazon/python3.12-base, amazon/python3.13-base, amazon/python3.14-base, amazon/python3.8-base, amazon/python3.9-base, amazon/ruby3.2-base, amazon/ruby3.3-base, amazon/ruby3.4-base, amazon/ruby4.0-base\",\n                   \"enum\": [\n                     \"amazon/dotnet10-base\",\n                     \"amazon/dotnet6-base\",\n@@ -149,7 +150,8 @@\n                     \"amazon/python3.9-base\",\n                     \"amazon/ruby3.2-base\",\n                     \"amazon/ruby3.3-base\",\n-                    \"amazon/ruby3.4-base\"\n+                    \"amazon/ruby3.4-base\",\n+                    \"amazon/ruby4.0-base\"\n                   ]\n                 },\n                 \"dependency_manager\": {\n@@ -498,7 +500,7 @@\n           \"properties\": {\n             \"parameters\": {\n               \"title\": \"Parameters for the local invoke command\",\n-              \"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* runtime:\\nLambda runtime used to invoke the function.\\n\\nRuntimes: dotnet10, dotnet8, dotnet6, go1.x, java25, java21, java17, java11, java8.al2, nodejs24.x, nodejs22.x, nodejs20.x, nodejs18.x, nodejs16.x, provided, provided.al2, provided.al2023, python3.9, python3.8, python3.14, python3.13, python3.12, python3.11, python3.10, ruby3.4, ruby3.3, ruby3.2\\n* tenant_id:\\nTenant ID for multi-tenant Lambda functions. Used to ensure compute isolation between different tenants. Must be 1-256 characters, the allowed characters are a-z and A-Z, numbers, spaces, and the characters _ . : / = + - @\\n* durable_execution_name:\\nName for the durable execution (for durable functions only).\\n* mount_symlinks:\\nSpecify if symlinks at the top level of the code should be mounted inside the container. Activating this flag could allow access to locations outside of your workspace by using a symbolic link. By default symlinks are not mounted.\\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* container_dns:\\nSet custom DNS servers for the Lambda container. This parameter can be passed multiple times to specify multiple DNS servers. Example: --container-dns 8.8.8.8 --container-dns 1.1.1.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* no_memory_limit:\\nRemoves the Memory limit during emulation. With this parameter, the underlying container will run without a --memory parameter\\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.\",\n+              \"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* runtime:\\nLambda runtime used to invoke the function.\\n\\nRuntimes: dotnet10, dotnet8, dotnet6, go1.x, java25, java21, java17, java11, java8.al2, nodejs24.x, nodejs22.x, nodejs20.x, nodejs18.x, nodejs16.x, provided, provided.al2, provided.al2023, python3.9, python3.8, python3.14, python3.13, python3.12, python3.11, python3.10, ruby4.0, ruby3.4, ruby3.3, ruby3.2\\n* tenant_id:\\nTenant ID for multi-tenant Lambda functions. Used to ensure compute isolation between different tenants. Must be 1-256 characters, the allowed characters are a-z and A-Z, numbers, spaces, and the characters _ . : / = + - @\\n* durable_execution_name:\\nName for the durable execution (for durable functions only).\\n* mount_symlinks:\\nSpecify if symlinks at the top level of the code should be mounted inside the container. Activating this flag could allow access to locations outside of your workspace by using a symbolic link. By default symlinks are not mounted.\\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* container_dns:\\nSet custom DNS servers for the Lambda container. This parameter can be passed multiple times to specify multiple DNS servers. Example: --container-dns 8.8.8.8 --container-dns 1.1.1.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* no_memory_limit:\\nRemoves the Memory limit during emulation. With this parameter, the underlying container will run without a --memory parameter\\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.\",\n               \"type\": \"object\",\n               \"properties\": {\n                 \"terraform_plan_file\": {\n@@ -530,7 +532,7 @@\n                 \"runtime\": {\n                   \"title\": \"runtime\",\n                   \"type\": \"string\",\n-                  \"description\": \"Lambda runtime used to invoke the function.\\n\\nRuntimes: dotnet10, dotnet8, dotnet6, go1.x, java25, java21, java17, java11, java8.al2, nodejs24.x, nodejs22.x, nodejs20.x, nodejs18.x, nodejs16.x, provided, provided.al2, provided.al2023, python3.9, python3.8, python3.14, python3.13, python3.12, python3.11, python3.10, ruby3.4, ruby3.3, ruby3.2\",\n+                  \"description\": \"Lambda runtime used to invoke the function.\\n\\nRuntimes: dotnet10, dotnet8, dotnet6, go1.x, java25, java21, java17, java11, java8.al2, nodejs24.x, nodejs22.x, nodejs20.x, nodejs18.x, nodejs16.x, provided, provided.al2, provided.al2023, python3.9, python3.8, python3.14, python3.13, python3.12, python3.11, python3.10, ruby4.0, ruby3.4, ruby3.3, ruby3.2\",\n                   \"enum\": [\n                     \"dotnet10\",\n                     \"dotnet6\",\n@@ -558,7 +560,8 @@\n                     \"python3.9\",\n                     \"ruby3.2\",\n                     \"ruby3.3\",\n-                    \"ruby3.4\"\n+                    \"ruby3.4\",\n+                    \"ruby4.0\"\n                   ]\n                 },\n                 \"tenant_id\": {"
    },
    {
      "sha": "cc65e75c2908d9b910bb46124c67e6d7f23c65be",
      "filename": "tests/integration/buildcmd/test_build_cmd.py",
      "status": "modified",
      "additions": 1,
      "deletions": 1,
      "changes": 2,
      "blob_url": "https://github.com/aws/aws-sam-cli/blob/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/tests%2Fintegration%2Fbuildcmd%2Ftest_build_cmd.py",
      "raw_url": "https://github.com/aws/aws-sam-cli/raw/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/tests%2Fintegration%2Fbuildcmd%2Ftest_build_cmd.py",
      "contents_url": "https://api.github.com/repos/aws/aws-sam-cli/contents/tests%2Fintegration%2Fbuildcmd%2Ftest_build_cmd.py?ref=f18b9ca21c823a009d55fb504cd7d610e9a3cb70",
      "patch": "@@ -395,7 +395,7 @@ def _prepare_application_environment(self, runtime):\n         └── template.yaml\n         \"\"\"\n         # copy .ruby-version to the root of the project\n-        ruby_runtime_path = runtime.replace(\".\", \"\").title()  # ruby3.X to Ruby3X\n+        ruby_runtime_path = runtime.replace(\".\", \"\").title()  # rubyX.Y to RubyXY\n         shutil.copyfile(\n             Path(self.template_path).parent.joinpath(ruby_runtime_path, \".ruby-version\"),\n             Path(self.working_dir).joinpath(\".ruby-version\"),"
    },
    {
      "sha": "3031890d98bb71d21298e007b2164bf5d836dca1",
      "filename": "tests/unit/lib/build_module/test_workflow_config.py",
      "status": "modified",
      "additions": 1,
      "deletions": 1,
      "changes": 2,
      "blob_url": "https://github.com/aws/aws-sam-cli/blob/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/tests%2Funit%2Flib%2Fbuild_module%2Ftest_workflow_config.py",
      "raw_url": "https://github.com/aws/aws-sam-cli/raw/f18b9ca21c823a009d55fb504cd7d610e9a3cb70/tests%2Funit%2Flib%2Fbuild_module%2Ftest_workflow_config.py",
      "contents_url": "https://api.github.com/repos/aws/aws-sam-cli/contents/tests%2Funit%2Flib%2Fbuild_module%2Ftest_workflow_config.py?ref=f18b9ca21c823a009d55fb504cd7d610e9a3cb70",
      "patch": "@@ -121,7 +121,7 @@ def test_raise_exception_for_bad_specified_workflow(self, runtime):\n         with self.assertRaises(UnsupportedBuilderException):\n             get_workflow_config(runtime, self.code_dir, self.project_dir, specified_workflow=\"Wrong\")\n \n-    @parameterized.expand([(\"ruby3.2\",), (\"ruby3.3\",), (\"ruby3.4\",)])\n+    @parameterized.expand([(\"ruby3.2\",), (\"ruby3.3\",), (\"ruby3.4\",), (\"ruby4.0\",)])\n     def test_must_work_for_ruby(self, runtime):\n         result = get_workflow_config(runtime, self.code_dir, self.project_dir)\n         self.assertEqual(result.language, \"ruby\")"
    }
  ]
}
