public Builder mergeFrom(
          com.google.cloud.vertexai.api.GenerateContentResponse.UsageMetadata other) {
        if (other
            == com.google.cloud.vertexai.api.GenerateContentResponse.UsageMetadata
                .getDefaultInstance()) return this;
        if (other.getPromptTokenCount() != 0) {
          setPromptTokenCount(other.getPromptTokenCount());
        }
        if (other.getCandidatesTokenCount() != 0) {
          setCandidatesTokenCount(other.getCandidatesTokenCount());
        }
        if (other.getTotalTokenCount() != 0) {
          setTotalTokenCount(other.getTotalTokenCount());
        }
        if (other.getCachedContentTokenCount() != 0) {
          setCachedContentTokenCount(other.getCachedContentTokenCount());
        }
        if (promptTokensDetailsBuilder_ == null) {
          if (!other.promptTokensDetails_.isEmpty()) {
            if (promptTokensDetails_.isEmpty()) {
              promptTokensDetails_ = other.promptTokensDetails_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensurePromptTokensDetailsIsMutable();
              promptTokensDetails_.addAll(other.promptTokensDetails_);
            }
            onChanged();
          }
        } else {
          if (!other.promptTokensDetails_.isEmpty()) {
            if (promptTokensDetailsBuilder_.isEmpty()) {
              promptTokensDetailsBuilder_.dispose();
              promptTokensDetailsBuilder_ = null;
              promptTokensDetails_ = other.promptTokensDetails_;
              bitField0_ = (bitField0_ & ~0x00000010);
              promptTokensDetailsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getPromptTokensDetailsFieldBuilder()
                      : null;
            } else {
              promptTokensDetailsBuilder_.addAllMessages(other.promptTokensDetails_);
            }
          }
        }
        if (cacheTokensDetailsBuilder_ == null) {
          if (!other.cacheTokensDetails_.isEmpty()) {
            if (cacheTokensDetails_.isEmpty()) {
              cacheTokensDetails_ = other.cacheTokensDetails_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureCacheTokensDetailsIsMutable();
              cacheTokensDetails_.addAll(other.cacheTokensDetails_);
            }
            onChanged();
          }
        } else {
          if (!other.cacheTokensDetails_.isEmpty()) {
            if (cacheTokensDetailsBuilder_.isEmpty()) {
              cacheTokensDetailsBuilder_.dispose();
              cacheTokensDetailsBuilder_ = null;
              cacheTokensDetails_ = other.cacheTokensDetails_;
              bitField0_ = (bitField0_ & ~0x00000020);
              cacheTokensDetailsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getCacheTokensDetailsFieldBuilder()
                      : null;
            } else {
              cacheTokensDetailsBuilder_.addAllMessages(other.cacheTokensDetails_);
            }
          }
        }
        if (candidatesTokensDetailsBuilder_ == null) {
          if (!other.candidatesTokensDetails_.isEmpty()) {
            if (candidatesTokensDetails_.isEmpty()) {
              candidatesTokensDetails_ = other.candidatesTokensDetails_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureCandidatesTokensDetailsIsMutable();
              candidatesTokensDetails_.addAll(other.candidatesTokensDetails_);
            }
            onChanged();
          }
        } else {
          if (!other.candidatesTokensDetails_.isEmpty()) {
            if (candidatesTokensDetailsBuilder_.isEmpty()) {
              candidatesTokensDetailsBuilder_.dispose();
              candidatesTokensDetailsBuilder_ = null;
              candidatesTokensDetails_ = other.candidatesTokensDetails_;
              bitField0_ = (bitField0_ & ~0x00000040);
              candidatesTokensDetailsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getCandidatesTokensDetailsFieldBuilder()
                      : null;
            } else {
              candidatesTokensDetailsBuilder_.addAllMessages(other.candidatesTokensDetails_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }
<pre>
Usage metadata about response(s).
</pre>

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