@java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj instanceof com.google.cloud.vertexai.api.GenerationConfig)) {
      return super.equals(obj);
    }
    com.google.cloud.vertexai.api.GenerationConfig other =
        (com.google.cloud.vertexai.api.GenerationConfig) obj;

    if (hasTemperature() != other.hasTemperature()) return false;
    if (hasTemperature()) {
      if (java.lang.Float.floatToIntBits(getTemperature())
          != java.lang.Float.floatToIntBits(other.getTemperature())) return false;
    }
    if (hasTopP() != other.hasTopP()) return false;
    if (hasTopP()) {
      if (java.lang.Float.floatToIntBits(getTopP())
          != java.lang.Float.floatToIntBits(other.getTopP())) return false;
    }
    if (hasTopK() != other.hasTopK()) return false;
    if (hasTopK()) {
      if (java.lang.Float.floatToIntBits(getTopK())
          != java.lang.Float.floatToIntBits(other.getTopK())) return false;
    }
    if (hasCandidateCount() != other.hasCandidateCount()) return false;
    if (hasCandidateCount()) {
      if (getCandidateCount() != other.getCandidateCount()) return false;
    }
    if (hasMaxOutputTokens() != other.hasMaxOutputTokens()) return false;
    if (hasMaxOutputTokens()) {
      if (getMaxOutputTokens() != other.getMaxOutputTokens()) return false;
    }
    if (!getStopSequencesList().equals(other.getStopSequencesList())) return false;
    if (hasResponseLogprobs() != other.hasResponseLogprobs()) return false;
    if (hasResponseLogprobs()) {
      if (getResponseLogprobs() != other.getResponseLogprobs()) return false;
    }
    if (hasLogprobs() != other.hasLogprobs()) return false;
    if (hasLogprobs()) {
      if (getLogprobs() != other.getLogprobs()) return false;
    }
    if (hasPresencePenalty() != other.hasPresencePenalty()) return false;
    if (hasPresencePenalty()) {
      if (java.lang.Float.floatToIntBits(getPresencePenalty())
          != java.lang.Float.floatToIntBits(other.getPresencePenalty())) return false;
    }
    if (hasFrequencyPenalty() != other.hasFrequencyPenalty()) return false;
    if (hasFrequencyPenalty()) {
      if (java.lang.Float.floatToIntBits(getFrequencyPenalty())
          != java.lang.Float.floatToIntBits(other.getFrequencyPenalty())) return false;
    }
    if (hasSeed() != other.hasSeed()) return false;
    if (hasSeed()) {
      if (getSeed() != other.getSeed()) return false;
    }
    if (!getResponseMimeType().equals(other.getResponseMimeType())) return false;
    if (hasResponseSchema() != other.hasResponseSchema()) return false;
    if (hasResponseSchema()) {
      if (!getResponseSchema().equals(other.getResponseSchema())) return false;
    }
    if (hasRoutingConfig() != other.hasRoutingConfig()) return false;
    if (hasRoutingConfig()) {
      if (!getRoutingConfig().equals(other.getRoutingConfig())) return false;
    }
    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
    return true;
  }
<pre>
Optional. Routing configuration.
</pre>

<code>
optional .google.cloud.vertexai.v1.GenerationConfig.RoutingConfig routing_config = 17 [(.google.api.field_behavior) = OPTIONAL];
</code>
java-vertexai/proto-google-cloud-vertexai-v1/src/main/java/com/google/cloud/vertexai/api/GenerationConfig.java