@java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PROMPT_TOKEN_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getPromptTokenCount();
      hash = (37 * hash) + CANDIDATES_TOKEN_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getCandidatesTokenCount();
      hash = (37 * hash) + TOTAL_TOKEN_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getTotalTokenCount();
      hash = (37 * hash) + CACHED_CONTENT_TOKEN_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getCachedContentTokenCount();
      if (getPromptTokensDetailsCount() > 0) {
        hash = (37 * hash) + PROMPT_TOKENS_DETAILS_FIELD_NUMBER;
        hash = (53 * hash) + getPromptTokensDetailsList().hashCode();
      }
      if (getCacheTokensDetailsCount() > 0) {
        hash = (37 * hash) + CACHE_TOKENS_DETAILS_FIELD_NUMBER;
        hash = (53 * hash) + getCacheTokensDetailsList().hashCode();
      }
      if (getCandidatesTokensDetailsCount() > 0) {
        hash = (37 * hash) + CANDIDATES_TOKENS_DETAILS_FIELD_NUMBER;
        hash = (53 * hash) + getCandidatesTokensDetailsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }
<pre>
Output only. List of modalities that were returned in the response.
</pre>

<code>
repeated .google.cloud.vertexai.v1.ModalityTokenCount candidates_tokens_details = 11 [(.google.api.field_behavior) = OUTPUT_ONLY];
</code>
java-vertexai/proto-google-cloud-vertexai-v1/src/main/java/com/google/cloud/vertexai/api/GenerateContentResponse.java