Class FunctionDeclaration
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
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
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
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
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
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
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
Methods
FromJson(string, JsonSerializerOptions?)
Deserializes a JSON string to a FunctionDeclaration object.
public static FunctionDeclaration? FromJson(string jsonString, JsonSerializerOptions? options = null)
Parameters
jsonStringstringThe JSON string to deserialize.
optionsJsonSerializerOptionsOptional JsonSerializerOptions.
Returns
- FunctionDeclaration
The deserialized FunctionDeclaration object, or null if deserialization fails.