@@ -234,13 +234,51 @@ message FunctionDeclaration {
234234// representing the [FunctionDeclaration.name] and a structured JSON object
235235// containing the parameters and their values.
236236message FunctionCall {
237- //Required . The name of the function to call.
237+ //Optional . The name of the function to call.
238238// Matches [FunctionDeclaration.name].
239- string name = 1 [(google.api.field_behavior ) =REQUIRED ];
239+ string name = 1 [(google.api.field_behavior ) =OPTIONAL ];
240240
241- // Optional.Required. The function parameters and values in JSON object
242- //format. See [FunctionDeclaration.parameters] for parameter details.
241+ // Optional. The function parameters and values in JSON object format.
242+ // See [FunctionDeclaration.parameters] for parameter details.
243243google.protobuf.Struct args = 2 [(google.api.field_behavior ) =OPTIONAL ];
244+
245+ // Optional. The partial argument value of the function call.
246+ // If provided, represents the arguments/fields that are streamed
247+ // incrementally.
248+ repeated PartialArg partial_args = 4 [(google.api.field_behavior ) =OPTIONAL ];
249+
250+ // Optional. Whether this is the last part of the FunctionCall.
251+ // If true, another partial message for the current FunctionCall is expected
252+ // to follow.
253+ bool will_continue = 5 [(google.api.field_behavior ) =OPTIONAL ];
254+ }
255+
256+ // Partial argument value of the function call.
257+ message PartialArg {
258+ // The delta of field value being streamed.
259+ oneof delta {
260+ // Optional. Represents a null value.
261+ google.protobuf.NullValue null_value = 2
262+ [(google.api.field_behavior ) =OPTIONAL ];
263+
264+ // Optional. Represents a double value.
265+ double number_value = 3 [(google.api.field_behavior ) =OPTIONAL ];
266+
267+ // Optional. Represents a string value.
268+ string string_value = 4 [(google.api.field_behavior ) =OPTIONAL ];
269+
270+ // Optional. Represents a boolean value.
271+ bool bool_value = 5 [(google.api.field_behavior ) =OPTIONAL ];
272+ }
273+
274+ // Required. A JSON Path (RFC 9535) to the argument being streamed.
275+ // https://datatracker.ietf.org/doc/html/rfc9535. e.g. "$.foo.bar[0].data".
276+ string json_path = 1 [(google.api.field_behavior ) =REQUIRED ];
277+
278+ // Optional. Whether this is not the last part of the same json_path.
279+ // If true, another PartialArg message for the current json_path is expected
280+ // to follow.
281+ bool will_continue = 6 [(google.api.field_behavior ) =OPTIONAL ];
244282}
245283
246284// A datatype containing media that is part of a `FunctionResponse` message.
@@ -558,6 +596,12 @@ message FunctionCallingConfig {
558596// will predict a function call from the set of function names provided.
559597repeated string allowed_function_names = 2
560598 [(google.api.field_behavior ) =OPTIONAL ];
599+
600+ // Optional. When set to true, arguments of a single function call will be
601+ // streamed out in multiple parts/contents/responses. Partial parameter
602+ // results will be returned in the [FunctionCall.partial_args] field.
603+ bool stream_function_call_arguments = 4
604+ [(google.api.field_behavior ) =OPTIONAL ];
561605}
562606
563607// Retrieval config.