private void buildPartial0(com.google.cloud.vertexai.api.Tool result) {
      int from_bitField0_ = bitField0_;
      int to_bitField0_ = 0;
      if (((from_bitField0_ & 0x00000002) != 0)) {
        result.retrieval_ = retrievalBuilder_ == null ? retrieval_ : retrievalBuilder_.build();
        to_bitField0_ |= 0x00000001;
      }
      if (((from_bitField0_ & 0x00000004) != 0)) {
        result.googleSearch_ =
            googleSearchBuilder_ == null ? googleSearch_ : googleSearchBuilder_.build();
        to_bitField0_ |= 0x00000002;
      }
      if (((from_bitField0_ & 0x00000008) != 0)) {
        result.googleSearchRetrieval_ =
            googleSearchRetrievalBuilder_ == null
                ? googleSearchRetrieval_
                : googleSearchRetrievalBuilder_.build();
        to_bitField0_ |= 0x00000004;
      }
      if (((from_bitField0_ & 0x00000010) != 0)) {
        result.enterpriseWebSearch_ =
            enterpriseWebSearchBuilder_ == null
                ? enterpriseWebSearch_
                : enterpriseWebSearchBuilder_.build();
        to_bitField0_ |= 0x00000008;
      }
      if (((from_bitField0_ & 0x00000020) != 0)) {
        result.codeExecution_ =
            codeExecutionBuilder_ == null ? codeExecution_ : codeExecutionBuilder_.build();
        to_bitField0_ |= 0x00000010;
      }
      result.bitField0_ |= to_bitField0_;
    }
<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