Table of Contents

Class FunctionDeclaration

Namespace
Google.GenAI.Types
Assembly
Google.GenAI.dll

Structured representation of a function declaration as defined by the OpenAPI 3.0 specification (https://spec.openapis.org/oas/v3.0.3). Included in this declaration are the function name, description, parameters and response type. This FunctionDeclaration is a representation of a block of code that can be used as a Tool by the model and executed by the client.

public record FunctionDeclaration : IEquatable<FunctionDeclaration>
Inheritance
FunctionDeclaration
Implements
Inherited Members

Properties

Behavior

Optional. Specifies the function Behavior. Currently only non-blocking functions are supported. If not specified, the system keeps the current function call behavior. This field is currently only supported by the BidiGenerateContent method.

[JsonPropertyName("behavior")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public Behavior? Behavior { get; set; }

Property Value

Behavior?

Description

Optional. Description and purpose of the function. Model uses it to decide how and whether to call the function.

[JsonPropertyName("description")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string? Description { get; set; }

Property Value

string

Name

The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores, dots, colons and dashes, with a maximum length of 128.

[JsonPropertyName("name")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string? Name { get; set; }

Property Value

string

Parameters

Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema Value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1

[JsonPropertyName("parameters")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public Schema? Parameters { get; set; }

Property Value

Schema

ParametersJsonSchema

Optional. Describes the parameters to the function in JSON Schema format. The schema must describe an object where the properties are the parameters to the function. For example: { "type": "object", "properties": { "name": { "type": "string" }, "age": { "type": "integer" } }, "additionalProperties": false, "required": ["name", "age"], "propertyOrdering": ["name", "age"] } This field is mutually exclusive with parameters.

[JsonPropertyName("parametersJsonSchema")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public object? ParametersJsonSchema { get; set; }

Property Value

object

Response

Optional. Describes the output from this function in JSON Schema format. Reflects the Open API 3.03 Response Object. The Schema defines the type used for the response value of the function.

[JsonPropertyName("response")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public Schema? Response { get; set; }

Property Value

Schema

ResponseJsonSchema

Optional. Describes the output from this function in JSON Schema format. The value specified by the schema is the response value of the function. This field is mutually exclusive with response.

[JsonPropertyName("responseJsonSchema")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public object? ResponseJsonSchema { get; set; }

Property Value

object

Methods

FromJson(string, JsonSerializerOptions?)

Deserializes a JSON string to a FunctionDeclaration object.

public static FunctionDeclaration? FromJson(string jsonString, JsonSerializerOptions? options = null)

Parameters

jsonString string

The JSON string to deserialize.

options JsonSerializerOptions

Optional JsonSerializerOptions.

Returns

FunctionDeclaration

The deserialized FunctionDeclaration object, or null if deserialization fails.