private void ensureFunctionDeclarationsIsMutable() {
      if (!((bitField0_ & 0x00000001) != 0)) {
        functionDeclarations_ =
            new java.util.ArrayList<com.google.cloud.vertexai.api.FunctionDeclaration>(
                functionDeclarations_);
        bitField0_ |= 0x00000001;
      }
    }
<pre>
Tool details that the model may use to generate response.

A `Tool` is a piece of code that enables the system to interact with
external systems to perform an action, or set of actions, outside of
knowledge and scope of the model. A Tool object should contain exactly
one type of Tool (e.g FunctionDeclaration, Retrieval or
GoogleSearchRetrieval).
</pre>

Protobuf type {@code google.cloud.vertexai.v1.Tool}
java-vertexai/proto-google-cloud-vertexai-v1/src/main/java/com/google/cloud/vertexai/api/Tool.java