From 1cbc9b5c585c3439e94009db9c90140ac3f299cd Mon Sep 17 00:00:00 2001 From: Jeff Bryner Date: Sat, 19 Jul 2025 13:03:22 -0700 Subject: [PATCH 1/3] Add required parameters with defaults if missing https://github.com/google/adk-python/issues/2053 --- .../tools/openapi_tool/openapi_spec_parser/rest_api_tool.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py b/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py index 0df9461b9d..84a94de7f9 100644 --- a/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py +++ b/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py @@ -377,6 +377,12 @@ async def call( # Attach parameters from auth into main parameters list api_params, api_args = self._operation_parser.get_parameters().copy(), args + + # add any required arguments that are missing and have defaults: + for api_param in api_params: + if api_param.required and api_param.param_schema.default: + api_args[api_param.py_name]=api_param.param_schema.default + if auth_credential: # Attach parameters from auth into main parameters list auth_param, auth_args = self._prepare_auth_request_params( From 14e64f28692c850113edbaadefdac0bf7026b653 Mon Sep 17 00:00:00 2001 From: Jeff Bryner Date: Sun, 20 Jul 2025 15:07:36 -0700 Subject: [PATCH 2/3] only add parameter if missing --- .../tools/openapi_tool/openapi_spec_parser/rest_api_tool.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py b/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py index 84a94de7f9..b041aafe04 100644 --- a/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py +++ b/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py @@ -380,8 +380,9 @@ async def call( # add any required arguments that are missing and have defaults: for api_param in api_params: - if api_param.required and api_param.param_schema.default: - api_args[api_param.py_name]=api_param.param_schema.default + if api_param.py_name not in api_args: + if api_param.required and api_param.param_schema.default: + api_args[api_param.py_name]=api_param.param_schema.default if auth_credential: # Attach parameters from auth into main parameters list From c60dd4e4bcc6d1988a95c02759c0b957d30fb621 Mon Sep 17 00:00:00 2001 From: Jeff Bryner Date: Sat, 26 Jul 2025 15:31:55 -0700 Subject: [PATCH 3/3] fix: add required parameters if missing --- .../adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py b/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py index b041aafe04..ed6f3861f1 100644 --- a/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py +++ b/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py @@ -382,7 +382,7 @@ async def call( for api_param in api_params: if api_param.py_name not in api_args: if api_param.required and api_param.param_schema.default: - api_args[api_param.py_name]=api_param.param_schema.default + api_args[api_param.py_name] = api_param.param_schema.default if auth_credential: # Attach parameters from auth into main parameters list