@java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13:
              {
                temperature_ = input.readFloat();
                bitField0_ |= 0x00000001;
                break;
              } // case 13
            case 21:
              {
                topP_ = input.readFloat();
                bitField0_ |= 0x00000002;
                break;
              } // case 21
            case 29:
              {
                topK_ = input.readFloat();
                bitField0_ |= 0x00000004;
                break;
              } // case 29
            case 32:
              {
                candidateCount_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
            case 40:
              {
                maxOutputTokens_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
            case 50:
              {
                java.lang.String s = input.readStringRequireUtf8();
                ensureStopSequencesIsMutable();
                stopSequences_.add(s);
                break;
              } // case 50
            case 56:
              {
                logprobs_ = input.readInt32();
                bitField0_ |= 0x00000080;
                break;
              } // case 56
            case 69:
              {
                presencePenalty_ = input.readFloat();
                bitField0_ |= 0x00000100;
                break;
              } // case 69
            case 77:
              {
                frequencyPenalty_ = input.readFloat();
                bitField0_ |= 0x00000200;
                break;
              } // case 77
            case 96:
              {
                seed_ = input.readInt32();
                bitField0_ |= 0x00000400;
                break;
              } // case 96
            case 106:
              {
                responseMimeType_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000800;
                break;
              } // case 106
            case 130:
              {
                input.readMessage(getResponseSchemaFieldBuilder().getBuilder(), extensionRegistry);
                bitField0_ |= 0x00001000;
                break;
              } // case 130
            case 138:
              {
                input.readMessage(getRoutingConfigFieldBuilder().getBuilder(), extensionRegistry);
                bitField0_ |= 0x00002000;
                break;
              } // case 138
            case 144:
              {
                responseLogprobs_ = input.readBool();
                bitField0_ |= 0x00000040;
                break;
              } // case 144
            default:
              {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
          } // switch (tag)
        } // while (!done)
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.unwrapIOException();
      } finally {
        onChanged();
      } // finally
      return this;
    }
<pre>
Generation config.
</pre>

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