Class FunctionDeclaration

java.lang.Object
com.google.genai.JsonSerializable
com.google.genai.types.FunctionDeclaration

public abstract class FunctionDeclaration extends JsonSerializable
Defines a function that the model can generate JSON inputs for.

The inputs are based on `OpenAPI 3.0 specifications <https://spec.openapis.org/oas/v3.0.3>`_.

  • Constructor Details

    • FunctionDeclaration

      public FunctionDeclaration()
  • Method Details

    • behavior

      public abstract Optional<Behavior> behavior()
      Defines the function behavior.
    • description

      public abstract Optional<String> description()
      Optional. Description and purpose of the function. Model uses it to decide how and whether to call the function.
    • name

      public abstract Optional<String> name()
      Required. 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 and dashes, with a maximum length of 64.
    • parameters

      public abstract Optional<Schema> 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
    • parametersJsonSchema

      public abstract Optional<Object> 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`.
    • response

      public abstract Optional<Schema> 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.
    • responseJsonSchema

      public abstract Optional<Object> 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`.
    • builder

      public static FunctionDeclaration.Builder builder()
      Instantiates a builder for FunctionDeclaration.
    • toBuilder

      public abstract FunctionDeclaration.Builder toBuilder()
      Creates a builder with the same values as this instance.
    • fromJson

      public static FunctionDeclaration fromJson(String jsonString)
      Deserializes a JSON string to a FunctionDeclaration object.
    • fromMethod

      public static FunctionDeclaration fromMethod(Method method, String... orderedParameterNames)
      Creates a FunctionDeclaration instance from a Method instance.
      Parameters:
      method - The Method instance to be parsed into the FunctionDeclaration instance. Only static method is supported.
      orderedParameterNames - Optional ordered parameter names. If not provided, parameter names will be retrieved via reflection.
      Returns:
      A FunctionDeclaration instance.
    • fromMethod

      public static FunctionDeclaration fromMethod(String functionDescription, Method method, String... orderedParameterNames)
      Creates a FunctionDeclaration instance from a Method instance.
      Parameters:
      functionDescription - Description of the function.
      method - The Method instance to be parsed into the FunctionDeclaration instance. Only static method is supported.
      orderedParameterNames - Optional ordered parameter names. If not provided, parameter names will be retrieved via reflection.
      Returns:
      A FunctionDeclaration instance.