google-genai 1.53.0__py3-none-any.whl → 1.55.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. google/genai/__init__.py +1 -0
  2. google/genai/_api_client.py +6 -6
  3. google/genai/_interactions/__init__.py +117 -0
  4. google/genai/_interactions/_base_client.py +2019 -0
  5. google/genai/_interactions/_client.py +511 -0
  6. google/genai/_interactions/_compat.py +234 -0
  7. google/genai/_interactions/_constants.py +29 -0
  8. google/genai/_interactions/_exceptions.py +122 -0
  9. google/genai/_interactions/_files.py +139 -0
  10. google/genai/_interactions/_models.py +873 -0
  11. google/genai/_interactions/_qs.py +165 -0
  12. google/genai/_interactions/_resource.py +58 -0
  13. google/genai/_interactions/_response.py +847 -0
  14. google/genai/_interactions/_streaming.py +354 -0
  15. google/genai/_interactions/_types.py +276 -0
  16. google/genai/_interactions/_utils/__init__.py +79 -0
  17. google/genai/_interactions/_utils/_compat.py +61 -0
  18. google/genai/_interactions/_utils/_datetime_parse.py +151 -0
  19. google/genai/_interactions/_utils/_logs.py +40 -0
  20. google/genai/_interactions/_utils/_proxy.py +80 -0
  21. google/genai/_interactions/_utils/_reflection.py +57 -0
  22. google/genai/_interactions/_utils/_resources_proxy.py +39 -0
  23. google/genai/_interactions/_utils/_streams.py +27 -0
  24. google/genai/_interactions/_utils/_sync.py +73 -0
  25. google/genai/_interactions/_utils/_transform.py +472 -0
  26. google/genai/_interactions/_utils/_typing.py +172 -0
  27. google/genai/_interactions/_utils/_utils.py +437 -0
  28. google/genai/_interactions/_version.py +18 -0
  29. google/genai/_interactions/resources/__init__.py +34 -0
  30. google/genai/_interactions/resources/interactions.py +1350 -0
  31. google/genai/_interactions/types/__init__.py +107 -0
  32. google/genai/_interactions/types/allowed_tools.py +33 -0
  33. google/genai/_interactions/types/allowed_tools_param.py +35 -0
  34. google/genai/_interactions/types/annotation.py +42 -0
  35. google/genai/_interactions/types/annotation_param.py +42 -0
  36. google/genai/_interactions/types/audio_content.py +38 -0
  37. google/genai/_interactions/types/audio_content_param.py +45 -0
  38. google/genai/_interactions/types/audio_mime_type.py +25 -0
  39. google/genai/_interactions/types/audio_mime_type_param.py +27 -0
  40. google/genai/_interactions/types/code_execution_call_arguments.py +33 -0
  41. google/genai/_interactions/types/code_execution_call_arguments_param.py +32 -0
  42. google/genai/_interactions/types/code_execution_call_content.py +37 -0
  43. google/genai/_interactions/types/code_execution_call_content_param.py +37 -0
  44. google/genai/_interactions/types/code_execution_result_content.py +42 -0
  45. google/genai/_interactions/types/code_execution_result_content_param.py +41 -0
  46. google/genai/_interactions/types/content_delta.py +358 -0
  47. google/genai/_interactions/types/content_start.py +79 -0
  48. google/genai/_interactions/types/content_stop.py +35 -0
  49. google/genai/_interactions/types/deep_research_agent_config.py +33 -0
  50. google/genai/_interactions/types/deep_research_agent_config_param.py +32 -0
  51. google/genai/_interactions/types/document_content.py +36 -0
  52. google/genai/_interactions/types/document_content_param.py +43 -0
  53. google/genai/_interactions/types/dynamic_agent_config.py +44 -0
  54. google/genai/_interactions/types/dynamic_agent_config_param.py +33 -0
  55. google/genai/_interactions/types/error_event.py +46 -0
  56. google/genai/_interactions/types/file_search_result_content.py +46 -0
  57. google/genai/_interactions/types/file_search_result_content_param.py +46 -0
  58. google/genai/_interactions/types/function.py +38 -0
  59. google/genai/_interactions/types/function_call_content.py +39 -0
  60. google/genai/_interactions/types/function_call_content_param.py +39 -0
  61. google/genai/_interactions/types/function_param.py +37 -0
  62. google/genai/_interactions/types/function_result_content.py +52 -0
  63. google/genai/_interactions/types/function_result_content_param.py +54 -0
  64. google/genai/_interactions/types/generation_config.py +57 -0
  65. google/genai/_interactions/types/generation_config_param.py +59 -0
  66. google/genai/_interactions/types/google_search_call_arguments.py +29 -0
  67. google/genai/_interactions/types/google_search_call_arguments_param.py +31 -0
  68. google/genai/_interactions/types/google_search_call_content.py +37 -0
  69. google/genai/_interactions/types/google_search_call_content_param.py +37 -0
  70. google/genai/_interactions/types/google_search_result.py +35 -0
  71. google/genai/_interactions/types/google_search_result_content.py +43 -0
  72. google/genai/_interactions/types/google_search_result_content_param.py +44 -0
  73. google/genai/_interactions/types/google_search_result_param.py +35 -0
  74. google/genai/_interactions/types/image_content.py +41 -0
  75. google/genai/_interactions/types/image_content_param.py +48 -0
  76. google/genai/_interactions/types/image_mime_type.py +23 -0
  77. google/genai/_interactions/types/image_mime_type_param.py +25 -0
  78. google/genai/_interactions/types/interaction.py +165 -0
  79. google/genai/_interactions/types/interaction_create_params.py +212 -0
  80. google/genai/_interactions/types/interaction_event.py +37 -0
  81. google/genai/_interactions/types/interaction_get_params.py +46 -0
  82. google/genai/_interactions/types/interaction_sse_event.py +32 -0
  83. google/genai/_interactions/types/interaction_status_update.py +37 -0
  84. google/genai/_interactions/types/mcp_server_tool_call_content.py +42 -0
  85. google/genai/_interactions/types/mcp_server_tool_call_content_param.py +42 -0
  86. google/genai/_interactions/types/mcp_server_tool_result_content.py +52 -0
  87. google/genai/_interactions/types/mcp_server_tool_result_content_param.py +54 -0
  88. google/genai/_interactions/types/model.py +36 -0
  89. google/genai/_interactions/types/model_param.py +38 -0
  90. google/genai/_interactions/types/speech_config.py +35 -0
  91. google/genai/_interactions/types/speech_config_param.py +35 -0
  92. google/genai/_interactions/types/text_content.py +37 -0
  93. google/genai/_interactions/types/text_content_param.py +38 -0
  94. google/genai/_interactions/types/thinking_level.py +22 -0
  95. google/genai/_interactions/types/thought_content.py +41 -0
  96. google/genai/_interactions/types/thought_content_param.py +47 -0
  97. google/genai/_interactions/types/tool.py +100 -0
  98. google/genai/_interactions/types/tool_choice.py +26 -0
  99. google/genai/_interactions/types/tool_choice_config.py +28 -0
  100. google/genai/_interactions/types/tool_choice_config_param.py +29 -0
  101. google/genai/_interactions/types/tool_choice_param.py +28 -0
  102. google/genai/_interactions/types/tool_choice_type.py +22 -0
  103. google/genai/_interactions/types/tool_param.py +97 -0
  104. google/genai/_interactions/types/turn.py +76 -0
  105. google/genai/_interactions/types/turn_param.py +73 -0
  106. google/genai/_interactions/types/url_context_call_arguments.py +29 -0
  107. google/genai/_interactions/types/url_context_call_arguments_param.py +31 -0
  108. google/genai/_interactions/types/url_context_call_content.py +37 -0
  109. google/genai/_interactions/types/url_context_call_content_param.py +37 -0
  110. google/genai/_interactions/types/url_context_result.py +33 -0
  111. google/genai/_interactions/types/url_context_result_content.py +43 -0
  112. google/genai/_interactions/types/url_context_result_content_param.py +44 -0
  113. google/genai/_interactions/types/url_context_result_param.py +32 -0
  114. google/genai/_interactions/types/usage.py +106 -0
  115. google/genai/_interactions/types/usage_param.py +106 -0
  116. google/genai/_interactions/types/video_content.py +41 -0
  117. google/genai/_interactions/types/video_content_param.py +48 -0
  118. google/genai/_interactions/types/video_mime_type.py +36 -0
  119. google/genai/_interactions/types/video_mime_type_param.py +38 -0
  120. google/genai/_live_converters.py +34 -3
  121. google/genai/_tokens_converters.py +5 -0
  122. google/genai/batches.py +62 -55
  123. google/genai/client.py +223 -0
  124. google/genai/errors.py +16 -1
  125. google/genai/file_search_stores.py +60 -60
  126. google/genai/files.py +56 -56
  127. google/genai/interactions.py +17 -0
  128. google/genai/live.py +4 -3
  129. google/genai/models.py +15 -3
  130. google/genai/tests/__init__.py +21 -0
  131. google/genai/tests/afc/__init__.py +21 -0
  132. google/genai/tests/afc/test_convert_if_exist_pydantic_model.py +309 -0
  133. google/genai/tests/afc/test_convert_number_values_for_function_call_args.py +63 -0
  134. google/genai/tests/afc/test_find_afc_incompatible_tool_indexes.py +240 -0
  135. google/genai/tests/afc/test_generate_content_stream_afc.py +530 -0
  136. google/genai/tests/afc/test_generate_content_stream_afc_thoughts.py +77 -0
  137. google/genai/tests/afc/test_get_function_map.py +176 -0
  138. google/genai/tests/afc/test_get_function_response_parts.py +277 -0
  139. google/genai/tests/afc/test_get_max_remote_calls_for_afc.py +130 -0
  140. google/genai/tests/afc/test_invoke_function_from_dict_args.py +241 -0
  141. google/genai/tests/afc/test_raise_error_for_afc_incompatible_config.py +159 -0
  142. google/genai/tests/afc/test_should_append_afc_history.py +53 -0
  143. google/genai/tests/afc/test_should_disable_afc.py +214 -0
  144. google/genai/tests/batches/__init__.py +17 -0
  145. google/genai/tests/batches/test_cancel.py +77 -0
  146. google/genai/tests/batches/test_create.py +78 -0
  147. google/genai/tests/batches/test_create_with_bigquery.py +113 -0
  148. google/genai/tests/batches/test_create_with_file.py +82 -0
  149. google/genai/tests/batches/test_create_with_gcs.py +125 -0
  150. google/genai/tests/batches/test_create_with_inlined_requests.py +255 -0
  151. google/genai/tests/batches/test_delete.py +86 -0
  152. google/genai/tests/batches/test_embedding.py +157 -0
  153. google/genai/tests/batches/test_get.py +78 -0
  154. google/genai/tests/batches/test_list.py +79 -0
  155. google/genai/tests/caches/__init__.py +17 -0
  156. google/genai/tests/caches/constants.py +29 -0
  157. google/genai/tests/caches/test_create.py +210 -0
  158. google/genai/tests/caches/test_create_custom_url.py +105 -0
  159. google/genai/tests/caches/test_delete.py +54 -0
  160. google/genai/tests/caches/test_delete_custom_url.py +52 -0
  161. google/genai/tests/caches/test_get.py +94 -0
  162. google/genai/tests/caches/test_get_custom_url.py +52 -0
  163. google/genai/tests/caches/test_list.py +68 -0
  164. google/genai/tests/caches/test_update.py +70 -0
  165. google/genai/tests/caches/test_update_custom_url.py +58 -0
  166. google/genai/tests/chats/__init__.py +1 -0
  167. google/genai/tests/chats/test_get_history.py +597 -0
  168. google/genai/tests/chats/test_send_message.py +844 -0
  169. google/genai/tests/chats/test_validate_response.py +90 -0
  170. google/genai/tests/client/__init__.py +17 -0
  171. google/genai/tests/client/test_async_stream.py +427 -0
  172. google/genai/tests/client/test_client_close.py +197 -0
  173. google/genai/tests/client/test_client_initialization.py +1687 -0
  174. google/genai/tests/client/test_client_requests.py +355 -0
  175. google/genai/tests/client/test_custom_client.py +77 -0
  176. google/genai/tests/client/test_http_options.py +178 -0
  177. google/genai/tests/client/test_replay_client_equality.py +168 -0
  178. google/genai/tests/client/test_retries.py +846 -0
  179. google/genai/tests/client/test_upload_errors.py +136 -0
  180. google/genai/tests/common/__init__.py +17 -0
  181. google/genai/tests/common/test_common.py +954 -0
  182. google/genai/tests/conftest.py +162 -0
  183. google/genai/tests/documents/__init__.py +17 -0
  184. google/genai/tests/documents/test_delete.py +51 -0
  185. google/genai/tests/documents/test_get.py +85 -0
  186. google/genai/tests/documents/test_list.py +72 -0
  187. google/genai/tests/errors/__init__.py +1 -0
  188. google/genai/tests/errors/test_api_error.py +417 -0
  189. google/genai/tests/file_search_stores/__init__.py +17 -0
  190. google/genai/tests/file_search_stores/test_create.py +66 -0
  191. google/genai/tests/file_search_stores/test_delete.py +64 -0
  192. google/genai/tests/file_search_stores/test_get.py +94 -0
  193. google/genai/tests/file_search_stores/test_import_file.py +112 -0
  194. google/genai/tests/file_search_stores/test_list.py +57 -0
  195. google/genai/tests/file_search_stores/test_upload_to_file_search_store.py +141 -0
  196. google/genai/tests/files/__init__.py +17 -0
  197. google/genai/tests/files/test_delete.py +46 -0
  198. google/genai/tests/files/test_download.py +85 -0
  199. google/genai/tests/files/test_get.py +46 -0
  200. google/genai/tests/files/test_list.py +72 -0
  201. google/genai/tests/files/test_upload.py +255 -0
  202. google/genai/tests/imports/test_no_optional_imports.py +28 -0
  203. google/genai/tests/interactions/__init__.py +0 -0
  204. google/genai/tests/interactions/test_integration.py +80 -0
  205. google/genai/tests/live/__init__.py +16 -0
  206. google/genai/tests/live/test_live.py +2177 -0
  207. google/genai/tests/live/test_live_music.py +362 -0
  208. google/genai/tests/live/test_live_response.py +163 -0
  209. google/genai/tests/live/test_send_client_content.py +147 -0
  210. google/genai/tests/live/test_send_realtime_input.py +268 -0
  211. google/genai/tests/live/test_send_tool_response.py +222 -0
  212. google/genai/tests/local_tokenizer/__init__.py +17 -0
  213. google/genai/tests/local_tokenizer/test_local_tokenizer.py +343 -0
  214. google/genai/tests/local_tokenizer/test_local_tokenizer_loader.py +235 -0
  215. google/genai/tests/mcp/__init__.py +17 -0
  216. google/genai/tests/mcp/test_has_mcp_tool_usage.py +89 -0
  217. google/genai/tests/mcp/test_mcp_to_gemini_tools.py +191 -0
  218. google/genai/tests/mcp/test_parse_config_for_mcp_sessions.py +201 -0
  219. google/genai/tests/mcp/test_parse_config_for_mcp_usage.py +130 -0
  220. google/genai/tests/mcp/test_set_mcp_usage_header.py +72 -0
  221. google/genai/tests/models/__init__.py +17 -0
  222. google/genai/tests/models/constants.py +8 -0
  223. google/genai/tests/models/test_compute_tokens.py +120 -0
  224. google/genai/tests/models/test_count_tokens.py +159 -0
  225. google/genai/tests/models/test_delete.py +107 -0
  226. google/genai/tests/models/test_edit_image.py +264 -0
  227. google/genai/tests/models/test_embed_content.py +94 -0
  228. google/genai/tests/models/test_function_call_streaming.py +442 -0
  229. google/genai/tests/models/test_generate_content.py +2502 -0
  230. google/genai/tests/models/test_generate_content_cached_content.py +132 -0
  231. google/genai/tests/models/test_generate_content_config_zero_value.py +103 -0
  232. google/genai/tests/models/test_generate_content_from_apikey.py +44 -0
  233. google/genai/tests/models/test_generate_content_http_options.py +40 -0
  234. google/genai/tests/models/test_generate_content_image_generation.py +143 -0
  235. google/genai/tests/models/test_generate_content_mcp.py +343 -0
  236. google/genai/tests/models/test_generate_content_media_resolution.py +97 -0
  237. google/genai/tests/models/test_generate_content_model.py +139 -0
  238. google/genai/tests/models/test_generate_content_part.py +821 -0
  239. google/genai/tests/models/test_generate_content_thought.py +76 -0
  240. google/genai/tests/models/test_generate_content_tools.py +1761 -0
  241. google/genai/tests/models/test_generate_images.py +191 -0
  242. google/genai/tests/models/test_generate_videos.py +759 -0
  243. google/genai/tests/models/test_get.py +104 -0
  244. google/genai/tests/models/test_list.py +233 -0
  245. google/genai/tests/models/test_recontext_image.py +189 -0
  246. google/genai/tests/models/test_segment_image.py +148 -0
  247. google/genai/tests/models/test_update.py +95 -0
  248. google/genai/tests/models/test_upscale_image.py +157 -0
  249. google/genai/tests/operations/__init__.py +17 -0
  250. google/genai/tests/operations/test_get.py +38 -0
  251. google/genai/tests/public_samples/__init__.py +17 -0
  252. google/genai/tests/public_samples/test_gemini_text_only.py +34 -0
  253. google/genai/tests/pytest_helper.py +229 -0
  254. google/genai/tests/shared/__init__.py +16 -0
  255. google/genai/tests/shared/batches/__init__.py +14 -0
  256. google/genai/tests/shared/batches/test_create_delete.py +57 -0
  257. google/genai/tests/shared/batches/test_create_get_cancel.py +56 -0
  258. google/genai/tests/shared/batches/test_list.py +40 -0
  259. google/genai/tests/shared/caches/__init__.py +14 -0
  260. google/genai/tests/shared/caches/test_create_get_delete.py +67 -0
  261. google/genai/tests/shared/caches/test_create_update_get.py +71 -0
  262. google/genai/tests/shared/caches/test_list.py +40 -0
  263. google/genai/tests/shared/chats/__init__.py +14 -0
  264. google/genai/tests/shared/chats/test_send_message.py +48 -0
  265. google/genai/tests/shared/chats/test_send_message_stream.py +50 -0
  266. google/genai/tests/shared/files/__init__.py +14 -0
  267. google/genai/tests/shared/files/test_list.py +41 -0
  268. google/genai/tests/shared/files/test_upload_get_delete.py +54 -0
  269. google/genai/tests/shared/models/__init__.py +14 -0
  270. google/genai/tests/shared/models/test_compute_tokens.py +41 -0
  271. google/genai/tests/shared/models/test_count_tokens.py +40 -0
  272. google/genai/tests/shared/models/test_edit_image.py +67 -0
  273. google/genai/tests/shared/models/test_embed.py +40 -0
  274. google/genai/tests/shared/models/test_generate_content.py +39 -0
  275. google/genai/tests/shared/models/test_generate_content_stream.py +54 -0
  276. google/genai/tests/shared/models/test_generate_images.py +40 -0
  277. google/genai/tests/shared/models/test_generate_videos.py +38 -0
  278. google/genai/tests/shared/models/test_list.py +37 -0
  279. google/genai/tests/shared/models/test_recontext_image.py +55 -0
  280. google/genai/tests/shared/models/test_segment_image.py +52 -0
  281. google/genai/tests/shared/models/test_upscale_image.py +52 -0
  282. google/genai/tests/shared/tunings/__init__.py +16 -0
  283. google/genai/tests/shared/tunings/test_create.py +46 -0
  284. google/genai/tests/shared/tunings/test_create_get_cancel.py +56 -0
  285. google/genai/tests/shared/tunings/test_list.py +39 -0
  286. google/genai/tests/tokens/__init__.py +16 -0
  287. google/genai/tests/tokens/test_create.py +154 -0
  288. google/genai/tests/transformers/__init__.py +17 -0
  289. google/genai/tests/transformers/test_blobs.py +71 -0
  290. google/genai/tests/transformers/test_bytes.py +15 -0
  291. google/genai/tests/transformers/test_duck_type.py +96 -0
  292. google/genai/tests/transformers/test_function_responses.py +72 -0
  293. google/genai/tests/transformers/test_schema.py +653 -0
  294. google/genai/tests/transformers/test_t_batch.py +286 -0
  295. google/genai/tests/transformers/test_t_content.py +160 -0
  296. google/genai/tests/transformers/test_t_contents.py +398 -0
  297. google/genai/tests/transformers/test_t_part.py +85 -0
  298. google/genai/tests/transformers/test_t_parts.py +87 -0
  299. google/genai/tests/transformers/test_t_tool.py +157 -0
  300. google/genai/tests/transformers/test_t_tools.py +195 -0
  301. google/genai/tests/tunings/__init__.py +16 -0
  302. google/genai/tests/tunings/test_cancel.py +39 -0
  303. google/genai/tests/tunings/test_end_to_end.py +106 -0
  304. google/genai/tests/tunings/test_get.py +67 -0
  305. google/genai/tests/tunings/test_list.py +75 -0
  306. google/genai/tests/tunings/test_tune.py +268 -0
  307. google/genai/tests/types/__init__.py +16 -0
  308. google/genai/tests/types/test_bytes_internal.py +271 -0
  309. google/genai/tests/types/test_bytes_type.py +152 -0
  310. google/genai/tests/types/test_future.py +101 -0
  311. google/genai/tests/types/test_optional_types.py +36 -0
  312. google/genai/tests/types/test_part_type.py +616 -0
  313. google/genai/tests/types/test_schema_from_json_schema.py +417 -0
  314. google/genai/tests/types/test_schema_json_schema.py +468 -0
  315. google/genai/tests/types/test_types.py +2903 -0
  316. google/genai/tunings.py +57 -57
  317. google/genai/types.py +229 -121
  318. google/genai/version.py +1 -1
  319. {google_genai-1.53.0.dist-info → google_genai-1.55.0.dist-info}/METADATA +4 -2
  320. google_genai-1.55.0.dist-info/RECORD +345 -0
  321. google_genai-1.53.0.dist-info/RECORD +0 -41
  322. {google_genai-1.53.0.dist-info → google_genai-1.55.0.dist-info}/WHEEL +0 -0
  323. {google_genai-1.53.0.dist-info → google_genai-1.55.0.dist-info}/licenses/LICENSE +0 -0
  324. {google_genai-1.53.0.dist-info → google_genai-1.55.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,212 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
17
+
18
+ from __future__ import annotations
19
+
20
+ from typing import List, Union, Iterable
21
+ from typing_extensions import Literal, Required, TypeAlias, TypedDict
22
+
23
+ from .tool_param import ToolParam
24
+ from .turn_param import TurnParam
25
+ from .model_param import ModelParam
26
+ from .text_content_param import TextContentParam
27
+ from .audio_content_param import AudioContentParam
28
+ from .image_content_param import ImageContentParam
29
+ from .video_content_param import VideoContentParam
30
+ from .thought_content_param import ThoughtContentParam
31
+ from .document_content_param import DocumentContentParam
32
+ from .generation_config_param import GenerationConfigParam
33
+ from .dynamic_agent_config_param import DynamicAgentConfigParam
34
+ from .function_call_content_param import FunctionCallContentParam
35
+ from .function_result_content_param import FunctionResultContentParam
36
+ from .url_context_call_content_param import URLContextCallContentParam
37
+ from .deep_research_agent_config_param import DeepResearchAgentConfigParam
38
+ from .file_search_result_content_param import FileSearchResultContentParam
39
+ from .google_search_call_content_param import GoogleSearchCallContentParam
40
+ from .url_context_result_content_param import URLContextResultContentParam
41
+ from .code_execution_call_content_param import CodeExecutionCallContentParam
42
+ from .google_search_result_content_param import GoogleSearchResultContentParam
43
+ from .mcp_server_tool_call_content_param import MCPServerToolCallContentParam
44
+ from .code_execution_result_content_param import CodeExecutionResultContentParam
45
+ from .mcp_server_tool_result_content_param import MCPServerToolResultContentParam
46
+
47
+ __all__ = [
48
+ "BaseCreateModelInteractionParams",
49
+ "Input",
50
+ "ContentList",
51
+ "BaseCreateAgentInteractionParams",
52
+ "AgentConfig",
53
+ "CreateModelInteractionParamsNonStreaming",
54
+ "CreateModelInteractionParamsStreaming",
55
+ "CreateAgentInteractionParamsNonStreaming",
56
+ "CreateAgentInteractionParamsStreaming",
57
+ ]
58
+
59
+
60
+ class BaseCreateModelInteractionParams(TypedDict, total=False):
61
+ input: Required[Input]
62
+ """The inputs for the interaction."""
63
+
64
+ model: Required[ModelParam]
65
+ """The name of the `Model` used for generating the interaction."""
66
+
67
+ api_version: str
68
+
69
+ background: bool
70
+ """Whether to run the model interaction in the background."""
71
+
72
+ generation_config: GenerationConfigParam
73
+ """Input only. Configuration parameters for the model interaction."""
74
+
75
+ previous_interaction_id: str
76
+ """The ID of the previous interaction, if any."""
77
+
78
+ response_format: object
79
+ """
80
+ Enforces that the generated response is a JSON object that complies with
81
+ the JSON schema specified in this field.
82
+ """
83
+
84
+ response_mime_type: str
85
+ """The mime type of the response. This is required if response_format is set."""
86
+
87
+ response_modalities: List[Literal["text", "image", "audio"]]
88
+ """The requested modalities of the response (TEXT, IMAGE, AUDIO)."""
89
+
90
+ store: bool
91
+ """Input only. Whether to store the response and request for later retrieval."""
92
+
93
+ system_instruction: str
94
+ """System instruction for the interaction."""
95
+
96
+ tools: Iterable[ToolParam]
97
+ """A list of tool declarations the model may call during interaction."""
98
+
99
+
100
+ ContentList: TypeAlias = Union[
101
+ TextContentParam,
102
+ ImageContentParam,
103
+ AudioContentParam,
104
+ DocumentContentParam,
105
+ VideoContentParam,
106
+ ThoughtContentParam,
107
+ FunctionCallContentParam,
108
+ FunctionResultContentParam,
109
+ CodeExecutionCallContentParam,
110
+ CodeExecutionResultContentParam,
111
+ URLContextCallContentParam,
112
+ URLContextResultContentParam,
113
+ GoogleSearchCallContentParam,
114
+ GoogleSearchResultContentParam,
115
+ MCPServerToolCallContentParam,
116
+ MCPServerToolResultContentParam,
117
+ FileSearchResultContentParam,
118
+ ]
119
+
120
+ Input: TypeAlias = Union[
121
+ str,
122
+ Iterable[ContentList],
123
+ Iterable[TurnParam],
124
+ TextContentParam,
125
+ ImageContentParam,
126
+ AudioContentParam,
127
+ DocumentContentParam,
128
+ VideoContentParam,
129
+ ThoughtContentParam,
130
+ FunctionCallContentParam,
131
+ FunctionResultContentParam,
132
+ CodeExecutionCallContentParam,
133
+ CodeExecutionResultContentParam,
134
+ URLContextCallContentParam,
135
+ URLContextResultContentParam,
136
+ GoogleSearchCallContentParam,
137
+ GoogleSearchResultContentParam,
138
+ MCPServerToolCallContentParam,
139
+ MCPServerToolResultContentParam,
140
+ FileSearchResultContentParam,
141
+ ]
142
+
143
+
144
+ class BaseCreateAgentInteractionParams(TypedDict, total=False):
145
+ agent: Required[Union[str, Literal["deep-research-pro-preview-12-2025"]]]
146
+ """The name of the `Agent` used for generating the interaction."""
147
+
148
+ input: Required[Input]
149
+ """The inputs for the interaction."""
150
+
151
+ api_version: str
152
+
153
+ agent_config: AgentConfig
154
+ """Configuration for the agent."""
155
+
156
+ background: bool
157
+ """Whether to run the model interaction in the background."""
158
+
159
+ previous_interaction_id: str
160
+ """The ID of the previous interaction, if any."""
161
+
162
+ response_format: object
163
+ """
164
+ Enforces that the generated response is a JSON object that complies with
165
+ the JSON schema specified in this field.
166
+ """
167
+
168
+ response_mime_type: str
169
+ """The mime type of the response. This is required if response_format is set."""
170
+
171
+ response_modalities: List[Literal["text", "image", "audio"]]
172
+ """The requested modalities of the response (TEXT, IMAGE, AUDIO)."""
173
+
174
+ store: bool
175
+ """Input only. Whether to store the response and request for later retrieval."""
176
+
177
+ system_instruction: str
178
+ """System instruction for the interaction."""
179
+
180
+ tools: Iterable[ToolParam]
181
+ """A list of tool declarations the model may call during interaction."""
182
+
183
+
184
+ AgentConfig: TypeAlias = Union[DynamicAgentConfigParam, DeepResearchAgentConfigParam]
185
+
186
+
187
+ class CreateModelInteractionParamsNonStreaming(BaseCreateModelInteractionParams, total=False):
188
+ stream: Literal[False]
189
+ """Input only. Whether the interaction will be streamed."""
190
+
191
+
192
+ class CreateModelInteractionParamsStreaming(BaseCreateModelInteractionParams):
193
+ stream: Required[Literal[True]]
194
+ """Input only. Whether the interaction will be streamed."""
195
+
196
+
197
+ class CreateAgentInteractionParamsNonStreaming(BaseCreateAgentInteractionParams, total=False):
198
+ stream: Literal[False]
199
+ """Input only. Whether the interaction will be streamed."""
200
+
201
+
202
+ class CreateAgentInteractionParamsStreaming(BaseCreateAgentInteractionParams):
203
+ stream: Required[Literal[True]]
204
+ """Input only. Whether the interaction will be streamed."""
205
+
206
+
207
+ InteractionCreateParams = Union[
208
+ CreateModelInteractionParamsNonStreaming,
209
+ CreateModelInteractionParamsStreaming,
210
+ CreateAgentInteractionParamsNonStreaming,
211
+ CreateAgentInteractionParamsStreaming,
212
+ ]
@@ -0,0 +1,37 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
17
+
18
+ from typing import Optional
19
+ from typing_extensions import Literal
20
+
21
+ from .._models import BaseModel
22
+ from .interaction import Interaction
23
+
24
+ __all__ = ["InteractionEvent"]
25
+
26
+
27
+ class InteractionEvent(BaseModel):
28
+ event_id: Optional[str] = None
29
+ """
30
+ The event_id token to be used to resume the interaction stream, from
31
+ this event.
32
+ """
33
+
34
+ event_type: Optional[Literal["interaction.start", "interaction.complete"]] = None
35
+
36
+ interaction: Optional[Interaction] = None
37
+ """The Interaction resource."""
@@ -0,0 +1,46 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
17
+
18
+ from __future__ import annotations
19
+
20
+ from typing import Union
21
+ from typing_extensions import Literal, Required, TypedDict
22
+
23
+ __all__ = ["InteractionGetParamsBase", "InteractionGetParamsNonStreaming", "InteractionGetParamsStreaming"]
24
+
25
+
26
+ class InteractionGetParamsBase(TypedDict, total=False):
27
+ api_version: str
28
+
29
+ last_event_id: str
30
+ """Optional.
31
+
32
+ If set, resumes the interaction stream from the next chunk after the event marked by the event id. Can only be used if `stream` is true.
33
+ """
34
+
35
+
36
+ class InteractionGetParamsNonStreaming(InteractionGetParamsBase, total=False):
37
+ stream: Literal[False]
38
+ """If set to true, the generated content will be streamed incrementally."""
39
+
40
+
41
+ class InteractionGetParamsStreaming(InteractionGetParamsBase):
42
+ stream: Required[Literal[True]]
43
+ """If set to true, the generated content will be streamed incrementally."""
44
+
45
+
46
+ InteractionGetParams = Union[InteractionGetParamsNonStreaming, InteractionGetParamsStreaming]
@@ -0,0 +1,32 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
17
+
18
+ from typing import Union
19
+ from typing_extensions import TypeAlias
20
+
21
+ from .error_event import ErrorEvent
22
+ from .content_stop import ContentStop
23
+ from .content_delta import ContentDelta
24
+ from .content_start import ContentStart
25
+ from .interaction_event import InteractionEvent
26
+ from .interaction_status_update import InteractionStatusUpdate
27
+
28
+ __all__ = ["InteractionSSEEvent"]
29
+
30
+ InteractionSSEEvent: TypeAlias = Union[
31
+ InteractionEvent, InteractionStatusUpdate, ContentStart, ContentDelta, ContentStop, ErrorEvent
32
+ ]
@@ -0,0 +1,37 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
17
+
18
+ from typing import Optional
19
+ from typing_extensions import Literal
20
+
21
+ from .._models import BaseModel
22
+
23
+ __all__ = ["InteractionStatusUpdate"]
24
+
25
+
26
+ class InteractionStatusUpdate(BaseModel):
27
+ event_id: Optional[str] = None
28
+ """
29
+ The event_id token to be used to resume the interaction stream, from
30
+ this event.
31
+ """
32
+
33
+ event_type: Optional[Literal["interaction.status_update"]] = None
34
+
35
+ interaction_id: Optional[str] = None
36
+
37
+ status: Optional[Literal["in_progress", "requires_action", "completed", "failed", "cancelled"]] = None
@@ -0,0 +1,42 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
17
+
18
+ from typing import Dict
19
+ from typing_extensions import Literal
20
+
21
+ from .._models import BaseModel
22
+
23
+ __all__ = ["MCPServerToolCallContent"]
24
+
25
+
26
+ class MCPServerToolCallContent(BaseModel):
27
+ """MCPServer tool call content."""
28
+
29
+ id: str
30
+ """A unique ID for this specific tool call."""
31
+
32
+ arguments: Dict[str, object]
33
+ """The JSON object of arguments for the function."""
34
+
35
+ name: str
36
+ """The name of the tool which was called."""
37
+
38
+ server_name: str
39
+ """The name of the used MCP server."""
40
+
41
+ type: Literal["mcp_server_tool_call"]
42
+ """Used as the OpenAPI type discriminator for the content oneof."""
@@ -0,0 +1,42 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
17
+
18
+ from __future__ import annotations
19
+
20
+ from typing import Dict
21
+ from typing_extensions import Literal, Required, TypedDict
22
+
23
+ __all__ = ["MCPServerToolCallContentParam"]
24
+
25
+
26
+ class MCPServerToolCallContentParam(TypedDict, total=False):
27
+ """MCPServer tool call content."""
28
+
29
+ id: Required[str]
30
+ """A unique ID for this specific tool call."""
31
+
32
+ arguments: Required[Dict[str, object]]
33
+ """The JSON object of arguments for the function."""
34
+
35
+ name: Required[str]
36
+ """The name of the tool which was called."""
37
+
38
+ server_name: Required[str]
39
+ """The name of the used MCP server."""
40
+
41
+ type: Required[Literal["mcp_server_tool_call"]]
42
+ """Used as the OpenAPI type discriminator for the content oneof."""
@@ -0,0 +1,52 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
17
+
18
+ from typing import List, Union, Optional
19
+ from typing_extensions import Literal, TypeAlias
20
+
21
+ from .._models import BaseModel
22
+ from .image_content import ImageContent
23
+
24
+ __all__ = ["MCPServerToolResultContent", "Result", "ResultItems", "ResultItemsItem"]
25
+
26
+ ResultItemsItem: TypeAlias = Union[str, ImageContent]
27
+
28
+
29
+ class ResultItems(BaseModel):
30
+ items: Optional[List[ResultItemsItem]] = None
31
+
32
+
33
+ Result: TypeAlias = Union[ResultItems, str, object]
34
+
35
+
36
+ class MCPServerToolResultContent(BaseModel):
37
+ """MCPServer tool result content."""
38
+
39
+ call_id: str
40
+ """ID to match the ID from the MCP server tool call block."""
41
+
42
+ result: Result
43
+ """The result of the tool call."""
44
+
45
+ type: Literal["mcp_server_tool_result"]
46
+ """Used as the OpenAPI type discriminator for the content oneof."""
47
+
48
+ name: Optional[str] = None
49
+ """Name of the tool which is called for this specific tool call."""
50
+
51
+ server_name: Optional[str] = None
52
+ """The name of the used MCP server."""
@@ -0,0 +1,54 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
17
+
18
+ from __future__ import annotations
19
+
20
+ from typing import Union
21
+ from typing_extensions import Literal, Required, TypeAlias, TypedDict
22
+
23
+ from .._types import SequenceNotStr
24
+ from .image_content_param import ImageContentParam
25
+
26
+ __all__ = ["MCPServerToolResultContentParam", "Result", "ResultItems", "ResultItemsItem"]
27
+
28
+ ResultItemsItem: TypeAlias = Union[str, ImageContentParam]
29
+
30
+
31
+ class ResultItems(TypedDict, total=False):
32
+ items: SequenceNotStr[ResultItemsItem]
33
+
34
+
35
+ Result: TypeAlias = Union[ResultItems, str, object]
36
+
37
+
38
+ class MCPServerToolResultContentParam(TypedDict, total=False):
39
+ """MCPServer tool result content."""
40
+
41
+ call_id: Required[str]
42
+ """ID to match the ID from the MCP server tool call block."""
43
+
44
+ result: Required[Result]
45
+ """The result of the tool call."""
46
+
47
+ type: Required[Literal["mcp_server_tool_result"]]
48
+ """Used as the OpenAPI type discriminator for the content oneof."""
49
+
50
+ name: str
51
+ """Name of the tool which is called for this specific tool call."""
52
+
53
+ server_name: str
54
+ """The name of the used MCP server."""
@@ -0,0 +1,36 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
17
+
18
+ from typing import Union
19
+ from typing_extensions import Literal, TypeAlias
20
+
21
+ __all__ = ["Model"]
22
+
23
+ Model: TypeAlias = Union[
24
+ Literal[
25
+ "gemini-2.5-pro",
26
+ "gemini-2.5-flash",
27
+ "gemini-2.5-flash-preview-09-2025",
28
+ "gemini-2.5-flash-lite",
29
+ "gemini-2.5-flash-lite-preview-09-2025",
30
+ "gemini-2.5-flash-preview-native-audio-dialog",
31
+ "gemini-2.5-flash-image-preview",
32
+ "gemini-2.5-pro-preview-tts",
33
+ "gemini-3-pro-preview",
34
+ ],
35
+ str,
36
+ ]
@@ -0,0 +1,38 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
17
+
18
+ from __future__ import annotations
19
+
20
+ from typing import Union
21
+ from typing_extensions import Literal, TypeAlias
22
+
23
+ __all__ = ["ModelParam"]
24
+
25
+ ModelParam: TypeAlias = Union[
26
+ Literal[
27
+ "gemini-2.5-pro",
28
+ "gemini-2.5-flash",
29
+ "gemini-2.5-flash-preview-09-2025",
30
+ "gemini-2.5-flash-lite",
31
+ "gemini-2.5-flash-lite-preview-09-2025",
32
+ "gemini-2.5-flash-preview-native-audio-dialog",
33
+ "gemini-2.5-flash-image-preview",
34
+ "gemini-2.5-pro-preview-tts",
35
+ "gemini-3-pro-preview",
36
+ ],
37
+ str,
38
+ ]
@@ -0,0 +1,35 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
17
+
18
+ from typing import Optional
19
+
20
+ from .._models import BaseModel
21
+
22
+ __all__ = ["SpeechConfig"]
23
+
24
+
25
+ class SpeechConfig(BaseModel):
26
+ """The configuration for speech interaction."""
27
+
28
+ language: Optional[str] = None
29
+ """The language of the speech."""
30
+
31
+ speaker: Optional[str] = None
32
+ """The speaker's name, it should match the speaker name given in the prompt."""
33
+
34
+ voice: Optional[str] = None
35
+ """The voice of the speaker."""