diff --git a/WORKSPACE b/WORKSPACE index 3a39f8d4f3..62b8ff6d3b 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -6,13 +6,9 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") # gapic-generator-java dependencies to match the order in googleapis repository, # which in its turn, prioritizes actual generated clients runtime dependencies # over the generator dependencies. - -_gax_java_version = "2.19.0" - -http_archive( - name = "com_google_api_gax_java", - strip_prefix = "gax-java-%s" % _gax_java_version, - urls = ["https://github.com/googleapis/gax-java/archive/v%s.zip" % _gax_java_version], +local_repository( + name = "com_google_api_gax_java", + path = "gax-java", ) load("@com_google_api_gax_java//:repository_rules.bzl", "com_google_api_gax_java_properties") diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/AttemptSequenceRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/AttemptSequenceRequest.java index c3c458a4dc..d565a71b42 100644 --- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/AttemptSequenceRequest.java +++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/AttemptSequenceRequest.java @@ -31,51 +31,6 @@ protected java.lang.Object newInstance( getUnknownFields() { return this.unknownFields; } - private AttemptSequenceRequest( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - java.lang.String s = input.readStringRequireUtf8(); - - name_ = s; - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.showcase.v1beta1.SequenceOuterClass.internal_static_google_showcase_v1beta1_AttemptSequenceRequest_descriptor; @@ -90,7 +45,8 @@ private AttemptSequenceRequest( } public static final int NAME_FIELD_NUMBER = 1; - private volatile java.lang.Object name_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } * @return The name. @@ -144,7 +100,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -156,7 +112,7 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -173,7 +129,7 @@ public boolean equals(final java.lang.Object obj) { if (!getName() .equals(other.getName())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -186,7 +142,7 @@ public int hashCode() { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -303,24 +259,19 @@ public static final class Builder extends // Construct using com.google.showcase.v1beta1.AttemptSequenceRequest.newBuilder() private Builder() { - maybeForceBuilderInitialization(); + } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } + } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; name_ = ""; - return this; } @@ -347,11 +298,18 @@ public com.google.showcase.v1beta1.AttemptSequenceRequest build() { @java.lang.Override public com.google.showcase.v1beta1.AttemptSequenceRequest buildPartial() { com.google.showcase.v1beta1.AttemptSequenceRequest result = new com.google.showcase.v1beta1.AttemptSequenceRequest(this); - result.name_ = name_; + if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } + private void buildPartial0(com.google.showcase.v1beta1.AttemptSequenceRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + } + @java.lang.Override public Builder clone() { return super.clone(); @@ -398,9 +356,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.AttemptSequenceRequest othe if (other == com.google.showcase.v1beta1.AttemptSequenceRequest.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; + bitField0_ |= 0x00000001; onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -415,19 +374,38 @@ public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - com.google.showcase.v1beta1.AttemptSequenceRequest parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + 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) { - parsedMessage = (com.google.showcase.v1beta1.AttemptSequenceRequest) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } + onChanged(); + } // finally return this; } + private int bitField0_; private java.lang.Object name_ = ""; /** @@ -470,11 +448,9 @@ public java.lang.String getName() { */ public Builder setName( java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - + if (value == null) { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -483,8 +459,8 @@ public Builder setName( * @return This builder for chaining. */ public Builder clearName() { - name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } @@ -495,12 +471,10 @@ public Builder clearName() { */ public Builder setNameBytes( com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); name_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -537,7 +511,18 @@ public AttemptSequenceRequest parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new AttemptSequenceRequest(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/BlockRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/BlockRequest.java index 3e4863a3be..7cffb63983 100644 --- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/BlockRequest.java +++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/BlockRequest.java @@ -34,86 +34,6 @@ protected java.lang.Object newInstance( getUnknownFields() { return this.unknownFields; } - private BlockRequest( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - com.google.protobuf.Duration.Builder subBuilder = null; - if (responseDelay_ != null) { - subBuilder = responseDelay_.toBuilder(); - } - responseDelay_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(responseDelay_); - responseDelay_ = subBuilder.buildPartial(); - } - - break; - } - case 18: { - com.google.rpc.Status.Builder subBuilder = null; - if (responseCase_ == 2) { - subBuilder = ((com.google.rpc.Status) response_).toBuilder(); - } - response_ = - input.readMessage(com.google.rpc.Status.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((com.google.rpc.Status) response_); - response_ = subBuilder.buildPartial(); - } - responseCase_ = 2; - break; - } - case 26: { - com.google.showcase.v1beta1.BlockResponse.Builder subBuilder = null; - if (responseCase_ == 3) { - subBuilder = ((com.google.showcase.v1beta1.BlockResponse) response_).toBuilder(); - } - response_ = - input.readMessage(com.google.showcase.v1beta1.BlockResponse.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((com.google.showcase.v1beta1.BlockResponse) response_); - response_ = subBuilder.buildPartial(); - } - responseCase_ = 3; - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_BlockRequest_descriptor; @@ -203,7 +123,7 @@ public com.google.protobuf.Duration getResponseDelay() { */ @java.lang.Override public com.google.protobuf.DurationOrBuilder getResponseDelayOrBuilder() { - return getResponseDelay(); + return responseDelay_ == null ? com.google.protobuf.Duration.getDefaultInstance() : responseDelay_; } public static final int ERROR_FIELD_NUMBER = 2; @@ -318,7 +238,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (responseCase_ == 3) { output.writeMessage(3, (com.google.showcase.v1beta1.BlockResponse) response_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -339,7 +259,7 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, (com.google.showcase.v1beta1.BlockResponse) response_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -372,7 +292,7 @@ public boolean equals(final java.lang.Object obj) { case 0: default: } - if (!unknownFields.equals(other.unknownFields)) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -399,7 +319,7 @@ public int hashCode() { case 0: default: } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -520,28 +440,29 @@ public static final class Builder extends // Construct using com.google.showcase.v1beta1.BlockRequest.newBuilder() private Builder() { - maybeForceBuilderInitialization(); + } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } + } @java.lang.Override public Builder clear() { super.clear(); - if (responseDelayBuilder_ == null) { - responseDelay_ = null; - } else { - responseDelay_ = null; + bitField0_ = 0; + responseDelay_ = null; + if (responseDelayBuilder_ != null) { + responseDelayBuilder_.dispose(); responseDelayBuilder_ = null; } + if (errorBuilder_ != null) { + errorBuilder_.clear(); + } + if (successBuilder_ != null) { + successBuilder_.clear(); + } responseCase_ = 0; response_ = null; return this; @@ -570,28 +491,32 @@ public com.google.showcase.v1beta1.BlockRequest build() { @java.lang.Override public com.google.showcase.v1beta1.BlockRequest buildPartial() { com.google.showcase.v1beta1.BlockRequest result = new com.google.showcase.v1beta1.BlockRequest(this); - if (responseDelayBuilder_ == null) { - result.responseDelay_ = responseDelay_; - } else { - result.responseDelay_ = responseDelayBuilder_.build(); + if (bitField0_ != 0) { buildPartial0(result); } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(com.google.showcase.v1beta1.BlockRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.responseDelay_ = responseDelayBuilder_ == null + ? responseDelay_ + : responseDelayBuilder_.build(); } - if (responseCase_ == 2) { - if (errorBuilder_ == null) { - result.response_ = response_; - } else { - result.response_ = errorBuilder_.build(); - } + } + + private void buildPartialOneofs(com.google.showcase.v1beta1.BlockRequest result) { + result.responseCase_ = responseCase_; + result.response_ = this.response_; + if (responseCase_ == 2 && + errorBuilder_ != null) { + result.response_ = errorBuilder_.build(); } - if (responseCase_ == 3) { - if (successBuilder_ == null) { - result.response_ = response_; - } else { - result.response_ = successBuilder_.build(); - } + if (responseCase_ == 3 && + successBuilder_ != null) { + result.response_ = successBuilder_.build(); } - result.responseCase_ = responseCase_; - onBuilt(); - return result; } @java.lang.Override @@ -654,7 +579,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.BlockRequest other) { break; } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -669,17 +594,51 @@ public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - com.google.showcase.v1beta1.BlockRequest parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getResponseDelayFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getErrorFieldBuilder().getBuilder(), + extensionRegistry); + responseCase_ = 2; + break; + } // case 18 + case 26: { + input.readMessage( + getSuccessFieldBuilder().getBuilder(), + extensionRegistry); + responseCase_ = 3; + break; + } // case 26 + 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) { - parsedMessage = (com.google.showcase.v1beta1.BlockRequest) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } + onChanged(); + } // finally return this; } private int responseCase_ = 0; @@ -697,6 +656,7 @@ public Builder clearResponse() { return this; } + private int bitField0_; private com.google.protobuf.Duration responseDelay_; private com.google.protobuf.SingleFieldBuilderV3< @@ -710,7 +670,7 @@ public Builder clearResponse() { * @return Whether the responseDelay field is set. */ public boolean hasResponseDelay() { - return responseDelayBuilder_ != null || responseDelay_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** *
@@ -740,11 +700,11 @@ public Builder setResponseDelay(com.google.protobuf.Duration value) {
           throw new NullPointerException();
         }
         responseDelay_ = value;
-        onChanged();
       } else {
         responseDelayBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -758,11 +718,11 @@ public Builder setResponseDelay(
         com.google.protobuf.Duration.Builder builderForValue) {
       if (responseDelayBuilder_ == null) {
         responseDelay_ = builderForValue.build();
-        onChanged();
       } else {
         responseDelayBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -774,17 +734,18 @@ public Builder setResponseDelay(
      */
     public Builder mergeResponseDelay(com.google.protobuf.Duration value) {
       if (responseDelayBuilder_ == null) {
-        if (responseDelay_ != null) {
-          responseDelay_ =
-            com.google.protobuf.Duration.newBuilder(responseDelay_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          responseDelay_ != null &&
+          responseDelay_ != com.google.protobuf.Duration.getDefaultInstance()) {
+          getResponseDelayBuilder().mergeFrom(value);
         } else {
           responseDelay_ = value;
         }
-        onChanged();
       } else {
         responseDelayBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -795,14 +756,13 @@ public Builder mergeResponseDelay(com.google.protobuf.Duration value) {
      * .google.protobuf.Duration response_delay = 1;
      */
     public Builder clearResponseDelay() {
-      if (responseDelayBuilder_ == null) {
-        responseDelay_ = null;
-        onChanged();
-      } else {
-        responseDelay_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      responseDelay_ = null;
+      if (responseDelayBuilder_ != null) {
+        responseDelayBuilder_.dispose();
         responseDelayBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -813,7 +773,7 @@ public Builder clearResponseDelay() {
      * .google.protobuf.Duration response_delay = 1;
      */
     public com.google.protobuf.Duration.Builder getResponseDelayBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getResponseDelayFieldBuilder().getBuilder();
     }
@@ -1036,7 +996,7 @@ public com.google.rpc.StatusOrBuilder getErrorOrBuilder() {
         response_ = null;
       }
       responseCase_ = 2;
-      onChanged();;
+      onChanged();
       return errorBuilder_;
     }
 
@@ -1214,7 +1174,7 @@ public com.google.showcase.v1beta1.BlockResponseOrBuilder getSuccessOrBuilder()
         response_ = null;
       }
       responseCase_ = 3;
-      onChanged();;
+      onChanged();
       return successBuilder_;
     }
     @java.lang.Override
@@ -1250,7 +1210,18 @@ public BlockRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new BlockRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/BlockResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/BlockResponse.java
index 880c46c04f..ada08eb4fb 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/BlockResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/BlockResponse.java
@@ -35,51 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private BlockResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            content_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_BlockResponse_descriptor;
@@ -94,7 +49,8 @@ private BlockResponse(
   }
 
   public static final int CONTENT_FIELD_NUMBER = 1;
-  private volatile java.lang.Object content_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object content_ = "";
   /**
    * 
    * This content can contain anything, the server will not depend on a value
@@ -158,7 +114,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, content_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -170,7 +126,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, content_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -187,7 +143,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getContent()
         .equals(other.getContent())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -200,7 +156,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + CONTENT_FIELD_NUMBER;
     hash = (53 * hash) + getContent().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -321,24 +277,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.BlockResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       content_ = "";
-
       return this;
     }
 
@@ -365,11 +316,18 @@ public com.google.showcase.v1beta1.BlockResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.BlockResponse buildPartial() {
       com.google.showcase.v1beta1.BlockResponse result = new com.google.showcase.v1beta1.BlockResponse(this);
-      result.content_ = content_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.BlockResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.content_ = content_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -416,9 +374,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.BlockResponse other) {
       if (other == com.google.showcase.v1beta1.BlockResponse.getDefaultInstance()) return this;
       if (!other.getContent().isEmpty()) {
         content_ = other.content_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -433,19 +392,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.BlockResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              content_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.BlockResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object content_ = "";
     /**
@@ -503,11 +481,9 @@ public java.lang.String getContent() {
      */
     public Builder setContent(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       content_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -521,8 +497,8 @@ public Builder setContent(
      * @return This builder for chaining.
      */
     public Builder clearContent() {
-      
       content_ = getDefaultInstance().getContent();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -538,12 +514,10 @@ public Builder clearContent() {
      */
     public Builder setContentBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       content_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -580,7 +554,18 @@ public BlockResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new BlockResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Blurb.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Blurb.java
index 8417d72fde..2e76160603 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Blurb.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Blurb.java
@@ -37,106 +37,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private Blurb(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            user_ = s;
-            break;
-          }
-          case 26: {
-            java.lang.String s = input.readStringRequireUtf8();
-            contentCase_ = 3;
-            content_ = s;
-            break;
-          }
-          case 34: {
-            content_ = input.readBytes();
-            contentCase_ = 4;
-            break;
-          }
-          case 42: {
-            com.google.protobuf.Timestamp.Builder subBuilder = null;
-            if (createTime_ != null) {
-              subBuilder = createTime_.toBuilder();
-            }
-            createTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(createTime_);
-              createTime_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 50: {
-            com.google.protobuf.Timestamp.Builder subBuilder = null;
-            if (updateTime_ != null) {
-              subBuilder = updateTime_.toBuilder();
-            }
-            updateTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(updateTime_);
-              updateTime_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 58: {
-            java.lang.String s = input.readStringRequireUtf8();
-            legacyIdCase_ = 7;
-            legacyId_ = s;
-            break;
-          }
-          case 66: {
-            java.lang.String s = input.readStringRequireUtf8();
-            legacyIdCase_ = 8;
-            legacyId_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_Blurb_descriptor;
@@ -233,7 +133,8 @@ public int getNumber() {
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The resource name of the chat room.
@@ -279,7 +180,8 @@ public java.lang.String getName() {
   }
 
   public static final int USER_FIELD_NUMBER = 2;
-  private volatile java.lang.Object user_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object user_ = "";
   /**
    * 
    * The resource name of the blurb's author.
@@ -452,7 +354,7 @@ public com.google.protobuf.Timestamp getCreateTime() {
    */
   @java.lang.Override
   public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
-    return getCreateTime();
+    return createTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : createTime_;
   }
 
   public static final int UPDATE_TIME_FIELD_NUMBER = 6;
@@ -490,7 +392,7 @@ public com.google.protobuf.Timestamp getUpdateTime() {
    */
   @java.lang.Override
   public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
-    return getUpdateTime();
+    return updateTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : updateTime_;
   }
 
   public static final int LEGACY_ROOM_ID_FIELD_NUMBER = 7;
@@ -672,7 +574,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (legacyIdCase_ == 8) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 8, legacyId_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -709,7 +611,7 @@ public int getSerializedSize() {
     if (legacyIdCase_ == 8) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, legacyId_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -764,7 +666,7 @@ public boolean equals(final java.lang.Object obj) {
       case 0:
       default:
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -811,7 +713,7 @@ public int hashCode() {
       case 0:
       default:
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -933,36 +835,28 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.Blurb.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       user_ = "";
-
-      if (createTimeBuilder_ == null) {
-        createTime_ = null;
-      } else {
-        createTime_ = null;
+      createTime_ = null;
+      if (createTimeBuilder_ != null) {
+        createTimeBuilder_.dispose();
         createTimeBuilder_ = null;
       }
-      if (updateTimeBuilder_ == null) {
-        updateTime_ = null;
-      } else {
-        updateTime_ = null;
+      updateTime_ = null;
+      if (updateTimeBuilder_ != null) {
+        updateTimeBuilder_.dispose();
         updateTimeBuilder_ = null;
       }
       contentCase_ = 0;
@@ -995,34 +889,37 @@ public com.google.showcase.v1beta1.Blurb build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.Blurb buildPartial() {
       com.google.showcase.v1beta1.Blurb result = new com.google.showcase.v1beta1.Blurb(this);
-      result.name_ = name_;
-      result.user_ = user_;
-      if (contentCase_ == 3) {
-        result.content_ = content_;
-      }
-      if (contentCase_ == 4) {
-        result.content_ = content_;
+      if (bitField0_ != 0) { buildPartial0(result); }
+      buildPartialOneofs(result);
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.Blurb result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
       }
-      if (createTimeBuilder_ == null) {
-        result.createTime_ = createTime_;
-      } else {
-        result.createTime_ = createTimeBuilder_.build();
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.user_ = user_;
       }
-      if (updateTimeBuilder_ == null) {
-        result.updateTime_ = updateTime_;
-      } else {
-        result.updateTime_ = updateTimeBuilder_.build();
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.createTime_ = createTimeBuilder_ == null
+            ? createTime_
+            : createTimeBuilder_.build();
       }
-      if (legacyIdCase_ == 7) {
-        result.legacyId_ = legacyId_;
-      }
-      if (legacyIdCase_ == 8) {
-        result.legacyId_ = legacyId_;
+      if (((from_bitField0_ & 0x00000020) != 0)) {
+        result.updateTime_ = updateTimeBuilder_ == null
+            ? updateTime_
+            : updateTimeBuilder_.build();
       }
+    }
+
+    private void buildPartialOneofs(com.google.showcase.v1beta1.Blurb result) {
       result.contentCase_ = contentCase_;
+      result.content_ = this.content_;
       result.legacyIdCase_ = legacyIdCase_;
-      onBuilt();
-      return result;
+      result.legacyId_ = this.legacyId_;
     }
 
     @java.lang.Override
@@ -1071,10 +968,12 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Blurb other) {
       if (other == com.google.showcase.v1beta1.Blurb.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (!other.getUser().isEmpty()) {
         user_ = other.user_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
       if (other.hasCreateTime()) {
@@ -1115,7 +1014,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Blurb other) {
           break;
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -1130,17 +1029,77 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.Blurb parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              user_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+              contentCase_ = 3;
+              content_ = s;
+              break;
+            } // case 26
+            case 34: {
+              content_ = input.readBytes();
+              contentCase_ = 4;
+              break;
+            } // case 34
+            case 42: {
+              input.readMessage(
+                  getCreateTimeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000010;
+              break;
+            } // case 42
+            case 50: {
+              input.readMessage(
+                  getUpdateTimeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000020;
+              break;
+            } // case 50
+            case 58: {
+              java.lang.String s = input.readStringRequireUtf8();
+              legacyIdCase_ = 7;
+              legacyId_ = s;
+              break;
+            } // case 58
+            case 66: {
+              java.lang.String s = input.readStringRequireUtf8();
+              legacyIdCase_ = 8;
+              legacyId_ = s;
+              break;
+            } // case 66
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.Blurb) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int contentCase_ = 0;
@@ -1173,6 +1132,7 @@ public Builder clearLegacyId() {
       return this;
     }
 
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -1227,11 +1187,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -1244,8 +1202,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -1260,12 +1218,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -1323,11 +1279,9 @@ public java.lang.String getUser() {
      */
     public Builder setUser(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       user_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1340,8 +1294,8 @@ public Builder setUser(
      * @return This builder for chaining.
      */
     public Builder clearUser() {
-      
       user_ = getDefaultInstance().getUser();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -1356,12 +1310,10 @@ public Builder clearUser() {
      */
     public Builder setUserBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       user_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1442,10 +1394,8 @@ public java.lang.String getText() {
      */
     public Builder setText(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  contentCase_ = 3;
+      if (value == null) { throw new NullPointerException(); }
+      contentCase_ = 3;
       content_ = value;
       onChanged();
       return this;
@@ -1477,10 +1427,8 @@ public Builder clearText() {
      */
     public Builder setTextBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       contentCase_ = 3;
       content_ = value;
       onChanged();
@@ -1522,10 +1470,8 @@ public com.google.protobuf.ByteString getImage() {
      * @return This builder for chaining.
      */
     public Builder setImage(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  contentCase_ = 4;
+      if (value == null) { throw new NullPointerException(); }
+      contentCase_ = 4;
       content_ = value;
       onChanged();
       return this;
@@ -1559,7 +1505,7 @@ public Builder clearImage() {
      * @return Whether the createTime field is set.
      */
     public boolean hasCreateTime() {
-      return createTimeBuilder_ != null || createTime_ != null;
+      return ((bitField0_ & 0x00000010) != 0);
     }
     /**
      * 
@@ -1589,11 +1535,11 @@ public Builder setCreateTime(com.google.protobuf.Timestamp value) {
           throw new NullPointerException();
         }
         createTime_ = value;
-        onChanged();
       } else {
         createTimeBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000010;
+      onChanged();
       return this;
     }
     /**
@@ -1607,11 +1553,11 @@ public Builder setCreateTime(
         com.google.protobuf.Timestamp.Builder builderForValue) {
       if (createTimeBuilder_ == null) {
         createTime_ = builderForValue.build();
-        onChanged();
       } else {
         createTimeBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000010;
+      onChanged();
       return this;
     }
     /**
@@ -1623,17 +1569,18 @@ public Builder setCreateTime(
      */
     public Builder mergeCreateTime(com.google.protobuf.Timestamp value) {
       if (createTimeBuilder_ == null) {
-        if (createTime_ != null) {
-          createTime_ =
-            com.google.protobuf.Timestamp.newBuilder(createTime_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000010) != 0) &&
+          createTime_ != null &&
+          createTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+          getCreateTimeBuilder().mergeFrom(value);
         } else {
           createTime_ = value;
         }
-        onChanged();
       } else {
         createTimeBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000010;
+      onChanged();
       return this;
     }
     /**
@@ -1644,14 +1591,13 @@ public Builder mergeCreateTime(com.google.protobuf.Timestamp value) {
      * .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
      */
     public Builder clearCreateTime() {
-      if (createTimeBuilder_ == null) {
-        createTime_ = null;
-        onChanged();
-      } else {
-        createTime_ = null;
+      bitField0_ = (bitField0_ & ~0x00000010);
+      createTime_ = null;
+      if (createTimeBuilder_ != null) {
+        createTimeBuilder_.dispose();
         createTimeBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -1662,7 +1608,7 @@ public Builder clearCreateTime() {
      * .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
      */
     public com.google.protobuf.Timestamp.Builder getCreateTimeBuilder() {
-      
+      bitField0_ |= 0x00000010;
       onChanged();
       return getCreateTimeFieldBuilder().getBuilder();
     }
@@ -1714,7 +1660,7 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
      * @return Whether the updateTime field is set.
      */
     public boolean hasUpdateTime() {
-      return updateTimeBuilder_ != null || updateTime_ != null;
+      return ((bitField0_ & 0x00000020) != 0);
     }
     /**
      * 
@@ -1744,11 +1690,11 @@ public Builder setUpdateTime(com.google.protobuf.Timestamp value) {
           throw new NullPointerException();
         }
         updateTime_ = value;
-        onChanged();
       } else {
         updateTimeBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000020;
+      onChanged();
       return this;
     }
     /**
@@ -1762,11 +1708,11 @@ public Builder setUpdateTime(
         com.google.protobuf.Timestamp.Builder builderForValue) {
       if (updateTimeBuilder_ == null) {
         updateTime_ = builderForValue.build();
-        onChanged();
       } else {
         updateTimeBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000020;
+      onChanged();
       return this;
     }
     /**
@@ -1778,17 +1724,18 @@ public Builder setUpdateTime(
      */
     public Builder mergeUpdateTime(com.google.protobuf.Timestamp value) {
       if (updateTimeBuilder_ == null) {
-        if (updateTime_ != null) {
-          updateTime_ =
-            com.google.protobuf.Timestamp.newBuilder(updateTime_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000020) != 0) &&
+          updateTime_ != null &&
+          updateTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+          getUpdateTimeBuilder().mergeFrom(value);
         } else {
           updateTime_ = value;
         }
-        onChanged();
       } else {
         updateTimeBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000020;
+      onChanged();
       return this;
     }
     /**
@@ -1799,14 +1746,13 @@ public Builder mergeUpdateTime(com.google.protobuf.Timestamp value) {
      * .google.protobuf.Timestamp update_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
      */
     public Builder clearUpdateTime() {
-      if (updateTimeBuilder_ == null) {
-        updateTime_ = null;
-        onChanged();
-      } else {
-        updateTime_ = null;
+      bitField0_ = (bitField0_ & ~0x00000020);
+      updateTime_ = null;
+      if (updateTimeBuilder_ != null) {
+        updateTimeBuilder_.dispose();
         updateTimeBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -1817,7 +1763,7 @@ public Builder clearUpdateTime() {
      * .google.protobuf.Timestamp update_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
      */
     public com.google.protobuf.Timestamp.Builder getUpdateTimeBuilder() {
-      
+      bitField0_ |= 0x00000020;
       onChanged();
       return getUpdateTimeFieldBuilder().getBuilder();
     }
@@ -1941,10 +1887,8 @@ public java.lang.String getLegacyRoomId() {
      */
     public Builder setLegacyRoomId(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  legacyIdCase_ = 7;
+      if (value == null) { throw new NullPointerException(); }
+      legacyIdCase_ = 7;
       legacyId_ = value;
       onChanged();
       return this;
@@ -1980,10 +1924,8 @@ public Builder clearLegacyRoomId() {
      */
     public Builder setLegacyRoomIdBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       legacyIdCase_ = 7;
       legacyId_ = value;
       onChanged();
@@ -2074,10 +2016,8 @@ public java.lang.String getLegacyUserId() {
      */
     public Builder setLegacyUserId(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  legacyIdCase_ = 8;
+      if (value == null) { throw new NullPointerException(); }
+      legacyIdCase_ = 8;
       legacyId_ = value;
       onChanged();
       return this;
@@ -2113,10 +2053,8 @@ public Builder clearLegacyUserId() {
      */
     public Builder setLegacyUserIdBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       legacyIdCase_ = 8;
       legacyId_ = value;
       onChanged();
@@ -2155,7 +2093,18 @@ public Blurb parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new Blurb(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceData.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceData.java
index 3d5de37762..44e04e8ad0 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceData.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceData.java
@@ -40,181 +40,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ComplianceData(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            fString_ = s;
-            break;
-          }
-          case 16: {
-
-            fInt32_ = input.readInt32();
-            break;
-          }
-          case 24: {
-
-            fSint32_ = input.readSInt32();
-            break;
-          }
-          case 37: {
-
-            fSfixed32_ = input.readSFixed32();
-            break;
-          }
-          case 40: {
-
-            fUint32_ = input.readUInt32();
-            break;
-          }
-          case 53: {
-
-            fFixed32_ = input.readFixed32();
-            break;
-          }
-          case 56: {
-
-            fInt64_ = input.readInt64();
-            break;
-          }
-          case 64: {
-
-            fSint64_ = input.readSInt64();
-            break;
-          }
-          case 73: {
-
-            fSfixed64_ = input.readSFixed64();
-            break;
-          }
-          case 80: {
-
-            fUint64_ = input.readUInt64();
-            break;
-          }
-          case 89: {
-
-            fFixed64_ = input.readFixed64();
-            break;
-          }
-          case 97: {
-
-            fDouble_ = input.readDouble();
-            break;
-          }
-          case 109: {
-
-            fFloat_ = input.readFloat();
-            break;
-          }
-          case 112: {
-
-            fBool_ = input.readBool();
-            break;
-          }
-          case 122: {
-
-            fBytes_ = input.readBytes();
-            break;
-          }
-          case 130: {
-            com.google.showcase.v1beta1.ComplianceDataChild.Builder subBuilder = null;
-            if (fChild_ != null) {
-              subBuilder = fChild_.toBuilder();
-            }
-            fChild_ = input.readMessage(com.google.showcase.v1beta1.ComplianceDataChild.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(fChild_);
-              fChild_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 138: {
-            java.lang.String s = input.readStringRequireUtf8();
-            bitField0_ |= 0x00000001;
-            pString_ = s;
-            break;
-          }
-          case 144: {
-            bitField0_ |= 0x00000002;
-            pInt32_ = input.readInt32();
-            break;
-          }
-          case 153: {
-            bitField0_ |= 0x00000004;
-            pDouble_ = input.readDouble();
-            break;
-          }
-          case 160: {
-            bitField0_ |= 0x00000008;
-            pBool_ = input.readBool();
-            break;
-          }
-          case 170: {
-            com.google.showcase.v1beta1.ComplianceDataChild.Builder subBuilder = null;
-            if (((bitField0_ & 0x00000020) != 0)) {
-              subBuilder = pChild_.toBuilder();
-            }
-            pChild_ = input.readMessage(com.google.showcase.v1beta1.ComplianceDataChild.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(pChild_);
-              pChild_ = subBuilder.buildPartial();
-            }
-            bitField0_ |= 0x00000020;
-            break;
-          }
-          case 176: {
-            int rawValue = input.readEnum();
-
-            fKingdom_ = rawValue;
-            break;
-          }
-          case 184: {
-            int rawValue = input.readEnum();
-            bitField0_ |= 0x00000010;
-            pKingdom_ = rawValue;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.ComplianceOuterClass.internal_static_google_showcase_v1beta1_ComplianceData_descriptor;
@@ -383,7 +208,8 @@ private LifeKingdom(int value) {
 
   private int bitField0_;
   public static final int F_STRING_FIELD_NUMBER = 1;
-  private volatile java.lang.Object fString_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object fString_ = "";
   /**
    * string f_string = 1;
    * @return The fString.
@@ -421,7 +247,7 @@ public java.lang.String getFString() {
   }
 
   public static final int F_INT32_FIELD_NUMBER = 2;
-  private int fInt32_;
+  private int fInt32_ = 0;
   /**
    * int32 f_int32 = 2;
    * @return The fInt32.
@@ -432,7 +258,7 @@ public int getFInt32() {
   }
 
   public static final int F_SINT32_FIELD_NUMBER = 3;
-  private int fSint32_;
+  private int fSint32_ = 0;
   /**
    * sint32 f_sint32 = 3;
    * @return The fSint32.
@@ -443,7 +269,7 @@ public int getFSint32() {
   }
 
   public static final int F_SFIXED32_FIELD_NUMBER = 4;
-  private int fSfixed32_;
+  private int fSfixed32_ = 0;
   /**
    * sfixed32 f_sfixed32 = 4;
    * @return The fSfixed32.
@@ -454,7 +280,7 @@ public int getFSfixed32() {
   }
 
   public static final int F_UINT32_FIELD_NUMBER = 5;
-  private int fUint32_;
+  private int fUint32_ = 0;
   /**
    * uint32 f_uint32 = 5;
    * @return The fUint32.
@@ -465,7 +291,7 @@ public int getFUint32() {
   }
 
   public static final int F_FIXED32_FIELD_NUMBER = 6;
-  private int fFixed32_;
+  private int fFixed32_ = 0;
   /**
    * fixed32 f_fixed32 = 6;
    * @return The fFixed32.
@@ -476,7 +302,7 @@ public int getFFixed32() {
   }
 
   public static final int F_INT64_FIELD_NUMBER = 7;
-  private long fInt64_;
+  private long fInt64_ = 0L;
   /**
    * int64 f_int64 = 7;
    * @return The fInt64.
@@ -487,7 +313,7 @@ public long getFInt64() {
   }
 
   public static final int F_SINT64_FIELD_NUMBER = 8;
-  private long fSint64_;
+  private long fSint64_ = 0L;
   /**
    * sint64 f_sint64 = 8;
    * @return The fSint64.
@@ -498,7 +324,7 @@ public long getFSint64() {
   }
 
   public static final int F_SFIXED64_FIELD_NUMBER = 9;
-  private long fSfixed64_;
+  private long fSfixed64_ = 0L;
   /**
    * sfixed64 f_sfixed64 = 9;
    * @return The fSfixed64.
@@ -509,7 +335,7 @@ public long getFSfixed64() {
   }
 
   public static final int F_UINT64_FIELD_NUMBER = 10;
-  private long fUint64_;
+  private long fUint64_ = 0L;
   /**
    * uint64 f_uint64 = 10;
    * @return The fUint64.
@@ -520,7 +346,7 @@ public long getFUint64() {
   }
 
   public static final int F_FIXED64_FIELD_NUMBER = 11;
-  private long fFixed64_;
+  private long fFixed64_ = 0L;
   /**
    * fixed64 f_fixed64 = 11;
    * @return The fFixed64.
@@ -531,7 +357,7 @@ public long getFFixed64() {
   }
 
   public static final int F_DOUBLE_FIELD_NUMBER = 12;
-  private double fDouble_;
+  private double fDouble_ = 0D;
   /**
    * double f_double = 12;
    * @return The fDouble.
@@ -542,7 +368,7 @@ public double getFDouble() {
   }
 
   public static final int F_FLOAT_FIELD_NUMBER = 13;
-  private float fFloat_;
+  private float fFloat_ = 0F;
   /**
    * float f_float = 13;
    * @return The fFloat.
@@ -553,7 +379,7 @@ public float getFFloat() {
   }
 
   public static final int F_BOOL_FIELD_NUMBER = 14;
-  private boolean fBool_;
+  private boolean fBool_ = false;
   /**
    * bool f_bool = 14;
    * @return The fBool.
@@ -564,7 +390,7 @@ public boolean getFBool() {
   }
 
   public static final int F_BYTES_FIELD_NUMBER = 15;
-  private com.google.protobuf.ByteString fBytes_;
+  private com.google.protobuf.ByteString fBytes_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * bytes f_bytes = 15;
    * @return The fBytes.
@@ -575,7 +401,7 @@ public com.google.protobuf.ByteString getFBytes() {
   }
 
   public static final int F_KINGDOM_FIELD_NUMBER = 22;
-  private int fKingdom_;
+  private int fKingdom_ = 0;
   /**
    * .google.showcase.v1beta1.ComplianceData.LifeKingdom f_kingdom = 22;
    * @return The enum numeric value on the wire for fKingdom.
@@ -588,8 +414,7 @@ public com.google.protobuf.ByteString getFBytes() {
    * @return The fKingdom.
    */
   @java.lang.Override public com.google.showcase.v1beta1.ComplianceData.LifeKingdom getFKingdom() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.ComplianceData.LifeKingdom result = com.google.showcase.v1beta1.ComplianceData.LifeKingdom.valueOf(fKingdom_);
+    com.google.showcase.v1beta1.ComplianceData.LifeKingdom result = com.google.showcase.v1beta1.ComplianceData.LifeKingdom.forNumber(fKingdom_);
     return result == null ? com.google.showcase.v1beta1.ComplianceData.LifeKingdom.UNRECOGNIZED : result;
   }
 
@@ -616,11 +441,12 @@ public com.google.showcase.v1beta1.ComplianceDataChild getFChild() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.ComplianceDataChildOrBuilder getFChildOrBuilder() {
-    return getFChild();
+    return fChild_ == null ? com.google.showcase.v1beta1.ComplianceDataChild.getDefaultInstance() : fChild_;
   }
 
   public static final int P_STRING_FIELD_NUMBER = 17;
-  private volatile java.lang.Object pString_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object pString_ = "";
   /**
    * optional string p_string = 17;
    * @return Whether the pString field is set.
@@ -666,7 +492,7 @@ public java.lang.String getPString() {
   }
 
   public static final int P_INT32_FIELD_NUMBER = 18;
-  private int pInt32_;
+  private int pInt32_ = 0;
   /**
    * optional int32 p_int32 = 18;
    * @return Whether the pInt32 field is set.
@@ -685,7 +511,7 @@ public int getPInt32() {
   }
 
   public static final int P_DOUBLE_FIELD_NUMBER = 19;
-  private double pDouble_;
+  private double pDouble_ = 0D;
   /**
    * optional double p_double = 19;
    * @return Whether the pDouble field is set.
@@ -704,7 +530,7 @@ public double getPDouble() {
   }
 
   public static final int P_BOOL_FIELD_NUMBER = 20;
-  private boolean pBool_;
+  private boolean pBool_ = false;
   /**
    * optional bool p_bool = 20;
    * @return Whether the pBool field is set.
@@ -723,7 +549,7 @@ public boolean getPBool() {
   }
 
   public static final int P_KINGDOM_FIELD_NUMBER = 23;
-  private int pKingdom_;
+  private int pKingdom_ = 0;
   /**
    * optional .google.showcase.v1beta1.ComplianceData.LifeKingdom p_kingdom = 23;
    * @return Whether the pKingdom field is set.
@@ -743,8 +569,7 @@ public boolean getPBool() {
    * @return The pKingdom.
    */
   @java.lang.Override public com.google.showcase.v1beta1.ComplianceData.LifeKingdom getPKingdom() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.ComplianceData.LifeKingdom result = com.google.showcase.v1beta1.ComplianceData.LifeKingdom.valueOf(pKingdom_);
+    com.google.showcase.v1beta1.ComplianceData.LifeKingdom result = com.google.showcase.v1beta1.ComplianceData.LifeKingdom.forNumber(pKingdom_);
     return result == null ? com.google.showcase.v1beta1.ComplianceData.LifeKingdom.UNRECOGNIZED : result;
   }
 
@@ -857,7 +682,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (((bitField0_ & 0x00000010) != 0)) {
       output.writeEnum(23, pKingdom_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -956,7 +781,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(23, pKingdom_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -1039,7 +864,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getPChild()
           .equals(other.getPChild())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -1120,7 +945,7 @@ public int hashCode() {
       hash = (37 * hash) + P_CHILD_FIELD_NUMBER;
       hash = (53 * hash) + getPChild().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -1253,66 +1078,45 @@ private Builder(
     private void maybeForceBuilderInitialization() {
       if (com.google.protobuf.GeneratedMessageV3
               .alwaysUseFieldBuilders) {
+        getFChildFieldBuilder();
         getPChildFieldBuilder();
       }
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       fString_ = "";
-
       fInt32_ = 0;
-
       fSint32_ = 0;
-
       fSfixed32_ = 0;
-
       fUint32_ = 0;
-
       fFixed32_ = 0;
-
       fInt64_ = 0L;
-
       fSint64_ = 0L;
-
       fSfixed64_ = 0L;
-
       fUint64_ = 0L;
-
       fFixed64_ = 0L;
-
       fDouble_ = 0D;
-
       fFloat_ = 0F;
-
       fBool_ = false;
-
       fBytes_ = com.google.protobuf.ByteString.EMPTY;
-
       fKingdom_ = 0;
-
-      if (fChildBuilder_ == null) {
-        fChild_ = null;
-      } else {
-        fChild_ = null;
+      fChild_ = null;
+      if (fChildBuilder_ != null) {
+        fChildBuilder_.dispose();
         fChildBuilder_ = null;
       }
       pString_ = "";
-      bitField0_ = (bitField0_ & ~0x00000001);
       pInt32_ = 0;
-      bitField0_ = (bitField0_ & ~0x00000002);
       pDouble_ = 0D;
-      bitField0_ = (bitField0_ & ~0x00000004);
       pBool_ = false;
-      bitField0_ = (bitField0_ & ~0x00000008);
       pKingdom_ = 0;
-      bitField0_ = (bitField0_ & ~0x00000010);
-      if (pChildBuilder_ == null) {
-        pChild_ = null;
-      } else {
-        pChildBuilder_.clear();
+      pChild_ = null;
+      if (pChildBuilder_ != null) {
+        pChildBuilder_.dispose();
+        pChildBuilder_ = null;
       }
-      bitField0_ = (bitField0_ & ~0x00000020);
       return this;
     }
 
@@ -1339,60 +1143,94 @@ public com.google.showcase.v1beta1.ComplianceData build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ComplianceData buildPartial() {
       com.google.showcase.v1beta1.ComplianceData result = new com.google.showcase.v1beta1.ComplianceData(this);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.ComplianceData result) {
       int from_bitField0_ = bitField0_;
-      int to_bitField0_ = 0;
-      result.fString_ = fString_;
-      result.fInt32_ = fInt32_;
-      result.fSint32_ = fSint32_;
-      result.fSfixed32_ = fSfixed32_;
-      result.fUint32_ = fUint32_;
-      result.fFixed32_ = fFixed32_;
-      result.fInt64_ = fInt64_;
-      result.fSint64_ = fSint64_;
-      result.fSfixed64_ = fSfixed64_;
-      result.fUint64_ = fUint64_;
-      result.fFixed64_ = fFixed64_;
-      result.fDouble_ = fDouble_;
-      result.fFloat_ = fFloat_;
-      result.fBool_ = fBool_;
-      result.fBytes_ = fBytes_;
-      result.fKingdom_ = fKingdom_;
-      if (fChildBuilder_ == null) {
-        result.fChild_ = fChild_;
-      } else {
-        result.fChild_ = fChildBuilder_.build();
-      }
       if (((from_bitField0_ & 0x00000001) != 0)) {
-        to_bitField0_ |= 0x00000001;
+        result.fString_ = fString_;
       }
-      result.pString_ = pString_;
       if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.fInt32_ = fInt32_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.fSint32_ = fSint32_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.fSfixed32_ = fSfixed32_;
+      }
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.fUint32_ = fUint32_;
+      }
+      if (((from_bitField0_ & 0x00000020) != 0)) {
+        result.fFixed32_ = fFixed32_;
+      }
+      if (((from_bitField0_ & 0x00000040) != 0)) {
+        result.fInt64_ = fInt64_;
+      }
+      if (((from_bitField0_ & 0x00000080) != 0)) {
+        result.fSint64_ = fSint64_;
+      }
+      if (((from_bitField0_ & 0x00000100) != 0)) {
+        result.fSfixed64_ = fSfixed64_;
+      }
+      if (((from_bitField0_ & 0x00000200) != 0)) {
+        result.fUint64_ = fUint64_;
+      }
+      if (((from_bitField0_ & 0x00000400) != 0)) {
+        result.fFixed64_ = fFixed64_;
+      }
+      if (((from_bitField0_ & 0x00000800) != 0)) {
+        result.fDouble_ = fDouble_;
+      }
+      if (((from_bitField0_ & 0x00001000) != 0)) {
+        result.fFloat_ = fFloat_;
+      }
+      if (((from_bitField0_ & 0x00002000) != 0)) {
+        result.fBool_ = fBool_;
+      }
+      if (((from_bitField0_ & 0x00004000) != 0)) {
+        result.fBytes_ = fBytes_;
+      }
+      if (((from_bitField0_ & 0x00008000) != 0)) {
+        result.fKingdom_ = fKingdom_;
+      }
+      if (((from_bitField0_ & 0x00010000) != 0)) {
+        result.fChild_ = fChildBuilder_ == null
+            ? fChild_
+            : fChildBuilder_.build();
+      }
+      int to_bitField0_ = 0;
+      if (((from_bitField0_ & 0x00020000) != 0)) {
+        result.pString_ = pString_;
+        to_bitField0_ |= 0x00000001;
+      }
+      if (((from_bitField0_ & 0x00040000) != 0)) {
         result.pInt32_ = pInt32_;
         to_bitField0_ |= 0x00000002;
       }
-      if (((from_bitField0_ & 0x00000004) != 0)) {
+      if (((from_bitField0_ & 0x00080000) != 0)) {
         result.pDouble_ = pDouble_;
         to_bitField0_ |= 0x00000004;
       }
-      if (((from_bitField0_ & 0x00000008) != 0)) {
+      if (((from_bitField0_ & 0x00100000) != 0)) {
         result.pBool_ = pBool_;
         to_bitField0_ |= 0x00000008;
       }
-      if (((from_bitField0_ & 0x00000010) != 0)) {
+      if (((from_bitField0_ & 0x00200000) != 0)) {
+        result.pKingdom_ = pKingdom_;
         to_bitField0_ |= 0x00000010;
       }
-      result.pKingdom_ = pKingdom_;
-      if (((from_bitField0_ & 0x00000020) != 0)) {
-        if (pChildBuilder_ == null) {
-          result.pChild_ = pChild_;
-        } else {
-          result.pChild_ = pChildBuilder_.build();
-        }
+      if (((from_bitField0_ & 0x00400000) != 0)) {
+        result.pChild_ = pChildBuilder_ == null
+            ? pChild_
+            : pChildBuilder_.build();
         to_bitField0_ |= 0x00000020;
       }
-      result.bitField0_ = to_bitField0_;
-      onBuilt();
-      return result;
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1441,6 +1279,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceData other) {
       if (other == com.google.showcase.v1beta1.ComplianceData.getDefaultInstance()) return this;
       if (!other.getFString().isEmpty()) {
         fString_ = other.fString_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.getFInt32() != 0) {
@@ -1492,8 +1331,8 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceData other) {
         mergeFChild(other.getFChild());
       }
       if (other.hasPString()) {
-        bitField0_ |= 0x00000001;
         pString_ = other.pString_;
+        bitField0_ |= 0x00020000;
         onChanged();
       }
       if (other.hasPInt32()) {
@@ -1511,7 +1350,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceData other) {
       if (other.hasPChild()) {
         mergePChild(other.getPChild());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -1526,17 +1365,149 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ComplianceData parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              fString_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              fInt32_ = input.readInt32();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 24: {
+              fSint32_ = input.readSInt32();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 37: {
+              fSfixed32_ = input.readSFixed32();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 37
+            case 40: {
+              fUint32_ = input.readUInt32();
+              bitField0_ |= 0x00000010;
+              break;
+            } // case 40
+            case 53: {
+              fFixed32_ = input.readFixed32();
+              bitField0_ |= 0x00000020;
+              break;
+            } // case 53
+            case 56: {
+              fInt64_ = input.readInt64();
+              bitField0_ |= 0x00000040;
+              break;
+            } // case 56
+            case 64: {
+              fSint64_ = input.readSInt64();
+              bitField0_ |= 0x00000080;
+              break;
+            } // case 64
+            case 73: {
+              fSfixed64_ = input.readSFixed64();
+              bitField0_ |= 0x00000100;
+              break;
+            } // case 73
+            case 80: {
+              fUint64_ = input.readUInt64();
+              bitField0_ |= 0x00000200;
+              break;
+            } // case 80
+            case 89: {
+              fFixed64_ = input.readFixed64();
+              bitField0_ |= 0x00000400;
+              break;
+            } // case 89
+            case 97: {
+              fDouble_ = input.readDouble();
+              bitField0_ |= 0x00000800;
+              break;
+            } // case 97
+            case 109: {
+              fFloat_ = input.readFloat();
+              bitField0_ |= 0x00001000;
+              break;
+            } // case 109
+            case 112: {
+              fBool_ = input.readBool();
+              bitField0_ |= 0x00002000;
+              break;
+            } // case 112
+            case 122: {
+              fBytes_ = input.readBytes();
+              bitField0_ |= 0x00004000;
+              break;
+            } // case 122
+            case 130: {
+              input.readMessage(
+                  getFChildFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00010000;
+              break;
+            } // case 130
+            case 138: {
+              pString_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00020000;
+              break;
+            } // case 138
+            case 144: {
+              pInt32_ = input.readInt32();
+              bitField0_ |= 0x00040000;
+              break;
+            } // case 144
+            case 153: {
+              pDouble_ = input.readDouble();
+              bitField0_ |= 0x00080000;
+              break;
+            } // case 153
+            case 160: {
+              pBool_ = input.readBool();
+              bitField0_ |= 0x00100000;
+              break;
+            } // case 160
+            case 170: {
+              input.readMessage(
+                  getPChildFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00400000;
+              break;
+            } // case 170
+            case 176: {
+              fKingdom_ = input.readEnum();
+              bitField0_ |= 0x00008000;
+              break;
+            } // case 176
+            case 184: {
+              pKingdom_ = input.readEnum();
+              bitField0_ |= 0x00200000;
+              break;
+            } // case 184
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ComplianceData) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -1582,11 +1553,9 @@ public java.lang.String getFString() {
      */
     public Builder setFString(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       fString_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -1595,8 +1564,8 @@ public Builder setFString(
      * @return This builder for chaining.
      */
     public Builder clearFString() {
-      
       fString_ = getDefaultInstance().getFString();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -1607,12 +1576,10 @@ public Builder clearFString() {
      */
     public Builder setFStringBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       fString_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -1634,6 +1601,7 @@ public int getFInt32() {
     public Builder setFInt32(int value) {
       
       fInt32_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1642,7 +1610,7 @@ public Builder setFInt32(int value) {
      * @return This builder for chaining.
      */
     public Builder clearFInt32() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       fInt32_ = 0;
       onChanged();
       return this;
@@ -1665,6 +1633,7 @@ public int getFSint32() {
     public Builder setFSint32(int value) {
       
       fSint32_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1673,7 +1642,7 @@ public Builder setFSint32(int value) {
      * @return This builder for chaining.
      */
     public Builder clearFSint32() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       fSint32_ = 0;
       onChanged();
       return this;
@@ -1696,6 +1665,7 @@ public int getFSfixed32() {
     public Builder setFSfixed32(int value) {
       
       fSfixed32_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1704,7 +1674,7 @@ public Builder setFSfixed32(int value) {
      * @return This builder for chaining.
      */
     public Builder clearFSfixed32() {
-      
+      bitField0_ = (bitField0_ & ~0x00000008);
       fSfixed32_ = 0;
       onChanged();
       return this;
@@ -1727,6 +1697,7 @@ public int getFUint32() {
     public Builder setFUint32(int value) {
       
       fUint32_ = value;
+      bitField0_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -1735,7 +1706,7 @@ public Builder setFUint32(int value) {
      * @return This builder for chaining.
      */
     public Builder clearFUint32() {
-      
+      bitField0_ = (bitField0_ & ~0x00000010);
       fUint32_ = 0;
       onChanged();
       return this;
@@ -1758,6 +1729,7 @@ public int getFFixed32() {
     public Builder setFFixed32(int value) {
       
       fFixed32_ = value;
+      bitField0_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -1766,7 +1738,7 @@ public Builder setFFixed32(int value) {
      * @return This builder for chaining.
      */
     public Builder clearFFixed32() {
-      
+      bitField0_ = (bitField0_ & ~0x00000020);
       fFixed32_ = 0;
       onChanged();
       return this;
@@ -1789,6 +1761,7 @@ public long getFInt64() {
     public Builder setFInt64(long value) {
       
       fInt64_ = value;
+      bitField0_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -1797,7 +1770,7 @@ public Builder setFInt64(long value) {
      * @return This builder for chaining.
      */
     public Builder clearFInt64() {
-      
+      bitField0_ = (bitField0_ & ~0x00000040);
       fInt64_ = 0L;
       onChanged();
       return this;
@@ -1820,6 +1793,7 @@ public long getFSint64() {
     public Builder setFSint64(long value) {
       
       fSint64_ = value;
+      bitField0_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -1828,7 +1802,7 @@ public Builder setFSint64(long value) {
      * @return This builder for chaining.
      */
     public Builder clearFSint64() {
-      
+      bitField0_ = (bitField0_ & ~0x00000080);
       fSint64_ = 0L;
       onChanged();
       return this;
@@ -1851,6 +1825,7 @@ public long getFSfixed64() {
     public Builder setFSfixed64(long value) {
       
       fSfixed64_ = value;
+      bitField0_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -1859,7 +1834,7 @@ public Builder setFSfixed64(long value) {
      * @return This builder for chaining.
      */
     public Builder clearFSfixed64() {
-      
+      bitField0_ = (bitField0_ & ~0x00000100);
       fSfixed64_ = 0L;
       onChanged();
       return this;
@@ -1882,6 +1857,7 @@ public long getFUint64() {
     public Builder setFUint64(long value) {
       
       fUint64_ = value;
+      bitField0_ |= 0x00000200;
       onChanged();
       return this;
     }
@@ -1890,7 +1866,7 @@ public Builder setFUint64(long value) {
      * @return This builder for chaining.
      */
     public Builder clearFUint64() {
-      
+      bitField0_ = (bitField0_ & ~0x00000200);
       fUint64_ = 0L;
       onChanged();
       return this;
@@ -1913,6 +1889,7 @@ public long getFFixed64() {
     public Builder setFFixed64(long value) {
       
       fFixed64_ = value;
+      bitField0_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -1921,7 +1898,7 @@ public Builder setFFixed64(long value) {
      * @return This builder for chaining.
      */
     public Builder clearFFixed64() {
-      
+      bitField0_ = (bitField0_ & ~0x00000400);
       fFixed64_ = 0L;
       onChanged();
       return this;
@@ -1944,6 +1921,7 @@ public double getFDouble() {
     public Builder setFDouble(double value) {
       
       fDouble_ = value;
+      bitField0_ |= 0x00000800;
       onChanged();
       return this;
     }
@@ -1952,7 +1930,7 @@ public Builder setFDouble(double value) {
      * @return This builder for chaining.
      */
     public Builder clearFDouble() {
-      
+      bitField0_ = (bitField0_ & ~0x00000800);
       fDouble_ = 0D;
       onChanged();
       return this;
@@ -1975,6 +1953,7 @@ public float getFFloat() {
     public Builder setFFloat(float value) {
       
       fFloat_ = value;
+      bitField0_ |= 0x00001000;
       onChanged();
       return this;
     }
@@ -1983,7 +1962,7 @@ public Builder setFFloat(float value) {
      * @return This builder for chaining.
      */
     public Builder clearFFloat() {
-      
+      bitField0_ = (bitField0_ & ~0x00001000);
       fFloat_ = 0F;
       onChanged();
       return this;
@@ -2006,6 +1985,7 @@ public boolean getFBool() {
     public Builder setFBool(boolean value) {
       
       fBool_ = value;
+      bitField0_ |= 0x00002000;
       onChanged();
       return this;
     }
@@ -2014,7 +1994,7 @@ public Builder setFBool(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearFBool() {
-      
+      bitField0_ = (bitField0_ & ~0x00002000);
       fBool_ = false;
       onChanged();
       return this;
@@ -2035,11 +2015,9 @@ public com.google.protobuf.ByteString getFBytes() {
      * @return This builder for chaining.
      */
     public Builder setFBytes(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       fBytes_ = value;
+      bitField0_ |= 0x00004000;
       onChanged();
       return this;
     }
@@ -2048,7 +2026,7 @@ public Builder setFBytes(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearFBytes() {
-      
+      bitField0_ = (bitField0_ & ~0x00004000);
       fBytes_ = getDefaultInstance().getFBytes();
       onChanged();
       return this;
@@ -2068,8 +2046,8 @@ public Builder clearFBytes() {
      * @return This builder for chaining.
      */
     public Builder setFKingdomValue(int value) {
-      
       fKingdom_ = value;
+      bitField0_ |= 0x00008000;
       onChanged();
       return this;
     }
@@ -2079,8 +2057,7 @@ public Builder setFKingdomValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.ComplianceData.LifeKingdom getFKingdom() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.ComplianceData.LifeKingdom result = com.google.showcase.v1beta1.ComplianceData.LifeKingdom.valueOf(fKingdom_);
+      com.google.showcase.v1beta1.ComplianceData.LifeKingdom result = com.google.showcase.v1beta1.ComplianceData.LifeKingdom.forNumber(fKingdom_);
       return result == null ? com.google.showcase.v1beta1.ComplianceData.LifeKingdom.UNRECOGNIZED : result;
     }
     /**
@@ -2092,7 +2069,7 @@ public Builder setFKingdom(com.google.showcase.v1beta1.ComplianceData.LifeKingdo
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00008000;
       fKingdom_ = value.getNumber();
       onChanged();
       return this;
@@ -2102,7 +2079,7 @@ public Builder setFKingdom(com.google.showcase.v1beta1.ComplianceData.LifeKingdo
      * @return This builder for chaining.
      */
     public Builder clearFKingdom() {
-      
+      bitField0_ = (bitField0_ & ~0x00008000);
       fKingdom_ = 0;
       onChanged();
       return this;
@@ -2116,7 +2093,7 @@ public Builder clearFKingdom() {
      * @return Whether the fChild field is set.
      */
     public boolean hasFChild() {
-      return fChildBuilder_ != null || fChild_ != null;
+      return ((bitField0_ & 0x00010000) != 0);
     }
     /**
      * .google.showcase.v1beta1.ComplianceDataChild f_child = 16;
@@ -2138,11 +2115,11 @@ public Builder setFChild(com.google.showcase.v1beta1.ComplianceDataChild value)
           throw new NullPointerException();
         }
         fChild_ = value;
-        onChanged();
       } else {
         fChildBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00010000;
+      onChanged();
       return this;
     }
     /**
@@ -2152,11 +2129,11 @@ public Builder setFChild(
         com.google.showcase.v1beta1.ComplianceDataChild.Builder builderForValue) {
       if (fChildBuilder_ == null) {
         fChild_ = builderForValue.build();
-        onChanged();
       } else {
         fChildBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00010000;
+      onChanged();
       return this;
     }
     /**
@@ -2164,38 +2141,38 @@ public Builder setFChild(
      */
     public Builder mergeFChild(com.google.showcase.v1beta1.ComplianceDataChild value) {
       if (fChildBuilder_ == null) {
-        if (fChild_ != null) {
-          fChild_ =
-            com.google.showcase.v1beta1.ComplianceDataChild.newBuilder(fChild_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00010000) != 0) &&
+          fChild_ != null &&
+          fChild_ != com.google.showcase.v1beta1.ComplianceDataChild.getDefaultInstance()) {
+          getFChildBuilder().mergeFrom(value);
         } else {
           fChild_ = value;
         }
-        onChanged();
       } else {
         fChildBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00010000;
+      onChanged();
       return this;
     }
     /**
      * .google.showcase.v1beta1.ComplianceDataChild f_child = 16;
      */
     public Builder clearFChild() {
-      if (fChildBuilder_ == null) {
-        fChild_ = null;
-        onChanged();
-      } else {
-        fChild_ = null;
+      bitField0_ = (bitField0_ & ~0x00010000);
+      fChild_ = null;
+      if (fChildBuilder_ != null) {
+        fChildBuilder_.dispose();
         fChildBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .google.showcase.v1beta1.ComplianceDataChild f_child = 16;
      */
     public com.google.showcase.v1beta1.ComplianceDataChild.Builder getFChildBuilder() {
-      
+      bitField0_ |= 0x00010000;
       onChanged();
       return getFChildFieldBuilder().getBuilder();
     }
@@ -2233,7 +2210,7 @@ public com.google.showcase.v1beta1.ComplianceDataChildOrBuilder getFChildOrBuild
      * @return Whether the pString field is set.
      */
     public boolean hasPString() {
-      return ((bitField0_ & 0x00000001) != 0);
+      return ((bitField0_ & 0x00020000) != 0);
     }
     /**
      * optional string p_string = 17;
@@ -2275,11 +2252,9 @@ public java.lang.String getPString() {
      */
     public Builder setPString(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
+      if (value == null) { throw new NullPointerException(); }
       pString_ = value;
+      bitField0_ |= 0x00020000;
       onChanged();
       return this;
     }
@@ -2288,8 +2263,8 @@ public Builder setPString(
      * @return This builder for chaining.
      */
     public Builder clearPString() {
-      bitField0_ = (bitField0_ & ~0x00000001);
       pString_ = getDefaultInstance().getPString();
+      bitField0_ = (bitField0_ & ~0x00020000);
       onChanged();
       return this;
     }
@@ -2300,12 +2275,10 @@ public Builder clearPString() {
      */
     public Builder setPStringBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      bitField0_ |= 0x00000001;
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       pString_ = value;
+      bitField0_ |= 0x00020000;
       onChanged();
       return this;
     }
@@ -2317,7 +2290,7 @@ public Builder setPStringBytes(
      */
     @java.lang.Override
     public boolean hasPInt32() {
-      return ((bitField0_ & 0x00000002) != 0);
+      return ((bitField0_ & 0x00040000) != 0);
     }
     /**
      * optional int32 p_int32 = 18;
@@ -2333,8 +2306,9 @@ public int getPInt32() {
      * @return This builder for chaining.
      */
     public Builder setPInt32(int value) {
-      bitField0_ |= 0x00000002;
+      
       pInt32_ = value;
+      bitField0_ |= 0x00040000;
       onChanged();
       return this;
     }
@@ -2343,7 +2317,7 @@ public Builder setPInt32(int value) {
      * @return This builder for chaining.
      */
     public Builder clearPInt32() {
-      bitField0_ = (bitField0_ & ~0x00000002);
+      bitField0_ = (bitField0_ & ~0x00040000);
       pInt32_ = 0;
       onChanged();
       return this;
@@ -2356,7 +2330,7 @@ public Builder clearPInt32() {
      */
     @java.lang.Override
     public boolean hasPDouble() {
-      return ((bitField0_ & 0x00000004) != 0);
+      return ((bitField0_ & 0x00080000) != 0);
     }
     /**
      * optional double p_double = 19;
@@ -2372,8 +2346,9 @@ public double getPDouble() {
      * @return This builder for chaining.
      */
     public Builder setPDouble(double value) {
-      bitField0_ |= 0x00000004;
+      
       pDouble_ = value;
+      bitField0_ |= 0x00080000;
       onChanged();
       return this;
     }
@@ -2382,7 +2357,7 @@ public Builder setPDouble(double value) {
      * @return This builder for chaining.
      */
     public Builder clearPDouble() {
-      bitField0_ = (bitField0_ & ~0x00000004);
+      bitField0_ = (bitField0_ & ~0x00080000);
       pDouble_ = 0D;
       onChanged();
       return this;
@@ -2395,7 +2370,7 @@ public Builder clearPDouble() {
      */
     @java.lang.Override
     public boolean hasPBool() {
-      return ((bitField0_ & 0x00000008) != 0);
+      return ((bitField0_ & 0x00100000) != 0);
     }
     /**
      * optional bool p_bool = 20;
@@ -2411,8 +2386,9 @@ public boolean getPBool() {
      * @return This builder for chaining.
      */
     public Builder setPBool(boolean value) {
-      bitField0_ |= 0x00000008;
+      
       pBool_ = value;
+      bitField0_ |= 0x00100000;
       onChanged();
       return this;
     }
@@ -2421,7 +2397,7 @@ public Builder setPBool(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearPBool() {
-      bitField0_ = (bitField0_ & ~0x00000008);
+      bitField0_ = (bitField0_ & ~0x00100000);
       pBool_ = false;
       onChanged();
       return this;
@@ -2433,7 +2409,7 @@ public Builder clearPBool() {
      * @return Whether the pKingdom field is set.
      */
     @java.lang.Override public boolean hasPKingdom() {
-      return ((bitField0_ & 0x00000010) != 0);
+      return ((bitField0_ & 0x00200000) != 0);
     }
     /**
      * optional .google.showcase.v1beta1.ComplianceData.LifeKingdom p_kingdom = 23;
@@ -2448,8 +2424,8 @@ public Builder clearPBool() {
      * @return This builder for chaining.
      */
     public Builder setPKingdomValue(int value) {
-      bitField0_ |= 0x00000010;
       pKingdom_ = value;
+      bitField0_ |= 0x00200000;
       onChanged();
       return this;
     }
@@ -2459,8 +2435,7 @@ public Builder setPKingdomValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.ComplianceData.LifeKingdom getPKingdom() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.ComplianceData.LifeKingdom result = com.google.showcase.v1beta1.ComplianceData.LifeKingdom.valueOf(pKingdom_);
+      com.google.showcase.v1beta1.ComplianceData.LifeKingdom result = com.google.showcase.v1beta1.ComplianceData.LifeKingdom.forNumber(pKingdom_);
       return result == null ? com.google.showcase.v1beta1.ComplianceData.LifeKingdom.UNRECOGNIZED : result;
     }
     /**
@@ -2472,7 +2447,7 @@ public Builder setPKingdom(com.google.showcase.v1beta1.ComplianceData.LifeKingdo
       if (value == null) {
         throw new NullPointerException();
       }
-      bitField0_ |= 0x00000010;
+      bitField0_ |= 0x00200000;
       pKingdom_ = value.getNumber();
       onChanged();
       return this;
@@ -2482,7 +2457,7 @@ public Builder setPKingdom(com.google.showcase.v1beta1.ComplianceData.LifeKingdo
      * @return This builder for chaining.
      */
     public Builder clearPKingdom() {
-      bitField0_ = (bitField0_ & ~0x00000010);
+      bitField0_ = (bitField0_ & ~0x00200000);
       pKingdom_ = 0;
       onChanged();
       return this;
@@ -2496,7 +2471,7 @@ public Builder clearPKingdom() {
      * @return Whether the pChild field is set.
      */
     public boolean hasPChild() {
-      return ((bitField0_ & 0x00000020) != 0);
+      return ((bitField0_ & 0x00400000) != 0);
     }
     /**
      * optional .google.showcase.v1beta1.ComplianceDataChild p_child = 21;
@@ -2518,11 +2493,11 @@ public Builder setPChild(com.google.showcase.v1beta1.ComplianceDataChild value)
           throw new NullPointerException();
         }
         pChild_ = value;
-        onChanged();
       } else {
         pChildBuilder_.setMessage(value);
       }
-      bitField0_ |= 0x00000020;
+      bitField0_ |= 0x00400000;
+      onChanged();
       return this;
     }
     /**
@@ -2532,11 +2507,11 @@ public Builder setPChild(
         com.google.showcase.v1beta1.ComplianceDataChild.Builder builderForValue) {
       if (pChildBuilder_ == null) {
         pChild_ = builderForValue.build();
-        onChanged();
       } else {
         pChildBuilder_.setMessage(builderForValue.build());
       }
-      bitField0_ |= 0x00000020;
+      bitField0_ |= 0x00400000;
+      onChanged();
       return this;
     }
     /**
@@ -2544,39 +2519,38 @@ public Builder setPChild(
      */
     public Builder mergePChild(com.google.showcase.v1beta1.ComplianceDataChild value) {
       if (pChildBuilder_ == null) {
-        if (((bitField0_ & 0x00000020) != 0) &&
-            pChild_ != null &&
-            pChild_ != com.google.showcase.v1beta1.ComplianceDataChild.getDefaultInstance()) {
-          pChild_ =
-            com.google.showcase.v1beta1.ComplianceDataChild.newBuilder(pChild_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00400000) != 0) &&
+          pChild_ != null &&
+          pChild_ != com.google.showcase.v1beta1.ComplianceDataChild.getDefaultInstance()) {
+          getPChildBuilder().mergeFrom(value);
         } else {
           pChild_ = value;
         }
-        onChanged();
       } else {
         pChildBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000020;
+      bitField0_ |= 0x00400000;
+      onChanged();
       return this;
     }
     /**
      * optional .google.showcase.v1beta1.ComplianceDataChild p_child = 21;
      */
     public Builder clearPChild() {
-      if (pChildBuilder_ == null) {
-        pChild_ = null;
-        onChanged();
-      } else {
-        pChildBuilder_.clear();
+      bitField0_ = (bitField0_ & ~0x00400000);
+      pChild_ = null;
+      if (pChildBuilder_ != null) {
+        pChildBuilder_.dispose();
+        pChildBuilder_ = null;
       }
-      bitField0_ = (bitField0_ & ~0x00000020);
+      onChanged();
       return this;
     }
     /**
      * optional .google.showcase.v1beta1.ComplianceDataChild p_child = 21;
      */
     public com.google.showcase.v1beta1.ComplianceDataChild.Builder getPChildBuilder() {
-      bitField0_ |= 0x00000020;
+      bitField0_ |= 0x00400000;
       onChanged();
       return getPChildFieldBuilder().getBuilder();
     }
@@ -2640,7 +2614,18 @@ public ComplianceData parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ComplianceData(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceDataChild.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceDataChild.java
index 0533611a6a..4c7b7b1642 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceDataChild.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceDataChild.java
@@ -34,126 +34,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ComplianceDataChild(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            fString_ = s;
-            break;
-          }
-          case 21: {
-
-            fFloat_ = input.readFloat();
-            break;
-          }
-          case 25: {
-
-            fDouble_ = input.readDouble();
-            break;
-          }
-          case 32: {
-
-            fBool_ = input.readBool();
-            break;
-          }
-          case 42: {
-            com.google.showcase.v1beta1.ComplianceDataGrandchild.Builder subBuilder = null;
-            if (fChild_ != null) {
-              subBuilder = fChild_.toBuilder();
-            }
-            fChild_ = input.readMessage(com.google.showcase.v1beta1.ComplianceDataGrandchild.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(fChild_);
-              fChild_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 50: {
-            java.lang.String s = input.readStringRequireUtf8();
-            bitField0_ |= 0x00000001;
-            pString_ = s;
-            break;
-          }
-          case 61: {
-            bitField0_ |= 0x00000002;
-            pFloat_ = input.readFloat();
-            break;
-          }
-          case 65: {
-            bitField0_ |= 0x00000004;
-            pDouble_ = input.readDouble();
-            break;
-          }
-          case 72: {
-            bitField0_ |= 0x00000008;
-            pBool_ = input.readBool();
-            break;
-          }
-          case 82: {
-            com.google.showcase.v1beta1.ComplianceDataGrandchild.Builder subBuilder = null;
-            if (((bitField0_ & 0x00000010) != 0)) {
-              subBuilder = pChild_.toBuilder();
-            }
-            pChild_ = input.readMessage(com.google.showcase.v1beta1.ComplianceDataGrandchild.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(pChild_);
-              pChild_ = subBuilder.buildPartial();
-            }
-            bitField0_ |= 0x00000010;
-            break;
-          }
-          case 88: {
-            int rawValue = input.readEnum();
-
-            fContinent_ = rawValue;
-            break;
-          }
-          case 96: {
-            int rawValue = input.readEnum();
-
-            pContinent_ = rawValue;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.ComplianceOuterClass.internal_static_google_showcase_v1beta1_ComplianceDataChild_descriptor;
@@ -169,7 +49,8 @@ private ComplianceDataChild(
 
   private int bitField0_;
   public static final int F_STRING_FIELD_NUMBER = 1;
-  private volatile java.lang.Object fString_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object fString_ = "";
   /**
    * string f_string = 1;
    * @return The fString.
@@ -207,7 +88,7 @@ public java.lang.String getFString() {
   }
 
   public static final int F_FLOAT_FIELD_NUMBER = 2;
-  private float fFloat_;
+  private float fFloat_ = 0F;
   /**
    * float f_float = 2;
    * @return The fFloat.
@@ -218,7 +99,7 @@ public float getFFloat() {
   }
 
   public static final int F_DOUBLE_FIELD_NUMBER = 3;
-  private double fDouble_;
+  private double fDouble_ = 0D;
   /**
    * double f_double = 3;
    * @return The fDouble.
@@ -229,7 +110,7 @@ public double getFDouble() {
   }
 
   public static final int F_BOOL_FIELD_NUMBER = 4;
-  private boolean fBool_;
+  private boolean fBool_ = false;
   /**
    * bool f_bool = 4;
    * @return The fBool.
@@ -240,7 +121,7 @@ public boolean getFBool() {
   }
 
   public static final int F_CONTINENT_FIELD_NUMBER = 11;
-  private int fContinent_;
+  private int fContinent_ = 0;
   /**
    * .google.showcase.v1beta1.Continent f_continent = 11;
    * @return The enum numeric value on the wire for fContinent.
@@ -253,8 +134,7 @@ public boolean getFBool() {
    * @return The fContinent.
    */
   @java.lang.Override public com.google.showcase.v1beta1.Continent getFContinent() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.Continent result = com.google.showcase.v1beta1.Continent.valueOf(fContinent_);
+    com.google.showcase.v1beta1.Continent result = com.google.showcase.v1beta1.Continent.forNumber(fContinent_);
     return result == null ? com.google.showcase.v1beta1.Continent.UNRECOGNIZED : result;
   }
 
@@ -281,11 +161,12 @@ public com.google.showcase.v1beta1.ComplianceDataGrandchild getFChild() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.ComplianceDataGrandchildOrBuilder getFChildOrBuilder() {
-    return getFChild();
+    return fChild_ == null ? com.google.showcase.v1beta1.ComplianceDataGrandchild.getDefaultInstance() : fChild_;
   }
 
   public static final int P_STRING_FIELD_NUMBER = 6;
-  private volatile java.lang.Object pString_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object pString_ = "";
   /**
    * optional string p_string = 6;
    * @return Whether the pString field is set.
@@ -331,7 +212,7 @@ public java.lang.String getPString() {
   }
 
   public static final int P_FLOAT_FIELD_NUMBER = 7;
-  private float pFloat_;
+  private float pFloat_ = 0F;
   /**
    * optional float p_float = 7;
    * @return Whether the pFloat field is set.
@@ -350,7 +231,7 @@ public float getPFloat() {
   }
 
   public static final int P_DOUBLE_FIELD_NUMBER = 8;
-  private double pDouble_;
+  private double pDouble_ = 0D;
   /**
    * optional double p_double = 8;
    * @return Whether the pDouble field is set.
@@ -369,7 +250,7 @@ public double getPDouble() {
   }
 
   public static final int P_BOOL_FIELD_NUMBER = 9;
-  private boolean pBool_;
+  private boolean pBool_ = false;
   /**
    * optional bool p_bool = 9;
    * @return Whether the pBool field is set.
@@ -388,7 +269,7 @@ public boolean getPBool() {
   }
 
   public static final int P_CONTINENT_FIELD_NUMBER = 12;
-  private int pContinent_;
+  private int pContinent_ = 0;
   /**
    * .google.showcase.v1beta1.Continent p_continent = 12;
    * @return The enum numeric value on the wire for pContinent.
@@ -401,8 +282,7 @@ public boolean getPBool() {
    * @return The pContinent.
    */
   @java.lang.Override public com.google.showcase.v1beta1.Continent getPContinent() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.Continent result = com.google.showcase.v1beta1.Continent.valueOf(pContinent_);
+    com.google.showcase.v1beta1.Continent result = com.google.showcase.v1beta1.Continent.forNumber(pContinent_);
     return result == null ? com.google.showcase.v1beta1.Continent.UNRECOGNIZED : result;
   }
 
@@ -482,7 +362,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (pContinent_ != com.google.showcase.v1beta1.Continent.CONTINENT_UNSPECIFIED.getNumber()) {
       output.writeEnum(12, pContinent_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -537,7 +417,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(12, pContinent_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -596,7 +476,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getPChild()
           .equals(other.getPChild())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -649,7 +529,7 @@ public int hashCode() {
       hash = (37 * hash) + P_CHILD_FIELD_NUMBER;
       hash = (53 * hash) + getPChild().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -777,44 +657,34 @@ private Builder(
     private void maybeForceBuilderInitialization() {
       if (com.google.protobuf.GeneratedMessageV3
               .alwaysUseFieldBuilders) {
+        getFChildFieldBuilder();
         getPChildFieldBuilder();
       }
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       fString_ = "";
-
       fFloat_ = 0F;
-
       fDouble_ = 0D;
-
       fBool_ = false;
-
       fContinent_ = 0;
-
-      if (fChildBuilder_ == null) {
-        fChild_ = null;
-      } else {
-        fChild_ = null;
+      fChild_ = null;
+      if (fChildBuilder_ != null) {
+        fChildBuilder_.dispose();
         fChildBuilder_ = null;
       }
       pString_ = "";
-      bitField0_ = (bitField0_ & ~0x00000001);
       pFloat_ = 0F;
-      bitField0_ = (bitField0_ & ~0x00000002);
       pDouble_ = 0D;
-      bitField0_ = (bitField0_ & ~0x00000004);
       pBool_ = false;
-      bitField0_ = (bitField0_ & ~0x00000008);
       pContinent_ = 0;
-
-      if (pChildBuilder_ == null) {
-        pChild_ = null;
-      } else {
-        pChildBuilder_.clear();
+      pChild_ = null;
+      if (pChildBuilder_ != null) {
+        pChildBuilder_.dispose();
+        pChildBuilder_ = null;
       }
-      bitField0_ = (bitField0_ & ~0x00000010);
       return this;
     }
 
@@ -841,46 +711,60 @@ public com.google.showcase.v1beta1.ComplianceDataChild build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ComplianceDataChild buildPartial() {
       com.google.showcase.v1beta1.ComplianceDataChild result = new com.google.showcase.v1beta1.ComplianceDataChild(this);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.ComplianceDataChild result) {
       int from_bitField0_ = bitField0_;
-      int to_bitField0_ = 0;
-      result.fString_ = fString_;
-      result.fFloat_ = fFloat_;
-      result.fDouble_ = fDouble_;
-      result.fBool_ = fBool_;
-      result.fContinent_ = fContinent_;
-      if (fChildBuilder_ == null) {
-        result.fChild_ = fChild_;
-      } else {
-        result.fChild_ = fChildBuilder_.build();
-      }
       if (((from_bitField0_ & 0x00000001) != 0)) {
-        to_bitField0_ |= 0x00000001;
+        result.fString_ = fString_;
       }
-      result.pString_ = pString_;
       if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.fFloat_ = fFloat_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.fDouble_ = fDouble_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.fBool_ = fBool_;
+      }
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.fContinent_ = fContinent_;
+      }
+      if (((from_bitField0_ & 0x00000020) != 0)) {
+        result.fChild_ = fChildBuilder_ == null
+            ? fChild_
+            : fChildBuilder_.build();
+      }
+      int to_bitField0_ = 0;
+      if (((from_bitField0_ & 0x00000040) != 0)) {
+        result.pString_ = pString_;
+        to_bitField0_ |= 0x00000001;
+      }
+      if (((from_bitField0_ & 0x00000080) != 0)) {
         result.pFloat_ = pFloat_;
         to_bitField0_ |= 0x00000002;
       }
-      if (((from_bitField0_ & 0x00000004) != 0)) {
+      if (((from_bitField0_ & 0x00000100) != 0)) {
         result.pDouble_ = pDouble_;
         to_bitField0_ |= 0x00000004;
       }
-      if (((from_bitField0_ & 0x00000008) != 0)) {
+      if (((from_bitField0_ & 0x00000200) != 0)) {
         result.pBool_ = pBool_;
         to_bitField0_ |= 0x00000008;
       }
-      result.pContinent_ = pContinent_;
-      if (((from_bitField0_ & 0x00000010) != 0)) {
-        if (pChildBuilder_ == null) {
-          result.pChild_ = pChild_;
-        } else {
-          result.pChild_ = pChildBuilder_.build();
-        }
+      if (((from_bitField0_ & 0x00000400) != 0)) {
+        result.pContinent_ = pContinent_;
+      }
+      if (((from_bitField0_ & 0x00000800) != 0)) {
+        result.pChild_ = pChildBuilder_ == null
+            ? pChild_
+            : pChildBuilder_.build();
         to_bitField0_ |= 0x00000010;
       }
-      result.bitField0_ = to_bitField0_;
-      onBuilt();
-      return result;
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -929,6 +813,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceDataChild other)
       if (other == com.google.showcase.v1beta1.ComplianceDataChild.getDefaultInstance()) return this;
       if (!other.getFString().isEmpty()) {
         fString_ = other.fString_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.getFFloat() != 0F) {
@@ -947,8 +832,8 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceDataChild other)
         mergeFChild(other.getFChild());
       }
       if (other.hasPString()) {
-        bitField0_ |= 0x00000001;
         pString_ = other.pString_;
+        bitField0_ |= 0x00000040;
         onChanged();
       }
       if (other.hasPFloat()) {
@@ -966,7 +851,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceDataChild other)
       if (other.hasPChild()) {
         mergePChild(other.getPChild());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -981,17 +866,94 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ComplianceDataChild parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              fString_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 21: {
+              fFloat_ = input.readFloat();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 21
+            case 25: {
+              fDouble_ = input.readDouble();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 25
+            case 32: {
+              fBool_ = input.readBool();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 32
+            case 42: {
+              input.readMessage(
+                  getFChildFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000020;
+              break;
+            } // case 42
+            case 50: {
+              pString_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000040;
+              break;
+            } // case 50
+            case 61: {
+              pFloat_ = input.readFloat();
+              bitField0_ |= 0x00000080;
+              break;
+            } // case 61
+            case 65: {
+              pDouble_ = input.readDouble();
+              bitField0_ |= 0x00000100;
+              break;
+            } // case 65
+            case 72: {
+              pBool_ = input.readBool();
+              bitField0_ |= 0x00000200;
+              break;
+            } // case 72
+            case 82: {
+              input.readMessage(
+                  getPChildFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000800;
+              break;
+            } // case 82
+            case 88: {
+              fContinent_ = input.readEnum();
+              bitField0_ |= 0x00000010;
+              break;
+            } // case 88
+            case 96: {
+              pContinent_ = input.readEnum();
+              bitField0_ |= 0x00000400;
+              break;
+            } // case 96
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ComplianceDataChild) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -1037,11 +999,9 @@ public java.lang.String getFString() {
      */
     public Builder setFString(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       fString_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -1050,8 +1010,8 @@ public Builder setFString(
      * @return This builder for chaining.
      */
     public Builder clearFString() {
-      
       fString_ = getDefaultInstance().getFString();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -1062,12 +1022,10 @@ public Builder clearFString() {
      */
     public Builder setFStringBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       fString_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -1089,6 +1047,7 @@ public float getFFloat() {
     public Builder setFFloat(float value) {
       
       fFloat_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1097,7 +1056,7 @@ public Builder setFFloat(float value) {
      * @return This builder for chaining.
      */
     public Builder clearFFloat() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       fFloat_ = 0F;
       onChanged();
       return this;
@@ -1120,6 +1079,7 @@ public double getFDouble() {
     public Builder setFDouble(double value) {
       
       fDouble_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1128,7 +1088,7 @@ public Builder setFDouble(double value) {
      * @return This builder for chaining.
      */
     public Builder clearFDouble() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       fDouble_ = 0D;
       onChanged();
       return this;
@@ -1151,6 +1111,7 @@ public boolean getFBool() {
     public Builder setFBool(boolean value) {
       
       fBool_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1159,7 +1120,7 @@ public Builder setFBool(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearFBool() {
-      
+      bitField0_ = (bitField0_ & ~0x00000008);
       fBool_ = false;
       onChanged();
       return this;
@@ -1179,8 +1140,8 @@ public Builder clearFBool() {
      * @return This builder for chaining.
      */
     public Builder setFContinentValue(int value) {
-      
       fContinent_ = value;
+      bitField0_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -1190,8 +1151,7 @@ public Builder setFContinentValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.Continent getFContinent() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.Continent result = com.google.showcase.v1beta1.Continent.valueOf(fContinent_);
+      com.google.showcase.v1beta1.Continent result = com.google.showcase.v1beta1.Continent.forNumber(fContinent_);
       return result == null ? com.google.showcase.v1beta1.Continent.UNRECOGNIZED : result;
     }
     /**
@@ -1203,7 +1163,7 @@ public Builder setFContinent(com.google.showcase.v1beta1.Continent value) {
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000010;
       fContinent_ = value.getNumber();
       onChanged();
       return this;
@@ -1213,7 +1173,7 @@ public Builder setFContinent(com.google.showcase.v1beta1.Continent value) {
      * @return This builder for chaining.
      */
     public Builder clearFContinent() {
-      
+      bitField0_ = (bitField0_ & ~0x00000010);
       fContinent_ = 0;
       onChanged();
       return this;
@@ -1227,7 +1187,7 @@ public Builder clearFContinent() {
      * @return Whether the fChild field is set.
      */
     public boolean hasFChild() {
-      return fChildBuilder_ != null || fChild_ != null;
+      return ((bitField0_ & 0x00000020) != 0);
     }
     /**
      * .google.showcase.v1beta1.ComplianceDataGrandchild f_child = 5;
@@ -1249,11 +1209,11 @@ public Builder setFChild(com.google.showcase.v1beta1.ComplianceDataGrandchild va
           throw new NullPointerException();
         }
         fChild_ = value;
-        onChanged();
       } else {
         fChildBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000020;
+      onChanged();
       return this;
     }
     /**
@@ -1263,11 +1223,11 @@ public Builder setFChild(
         com.google.showcase.v1beta1.ComplianceDataGrandchild.Builder builderForValue) {
       if (fChildBuilder_ == null) {
         fChild_ = builderForValue.build();
-        onChanged();
       } else {
         fChildBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000020;
+      onChanged();
       return this;
     }
     /**
@@ -1275,38 +1235,38 @@ public Builder setFChild(
      */
     public Builder mergeFChild(com.google.showcase.v1beta1.ComplianceDataGrandchild value) {
       if (fChildBuilder_ == null) {
-        if (fChild_ != null) {
-          fChild_ =
-            com.google.showcase.v1beta1.ComplianceDataGrandchild.newBuilder(fChild_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000020) != 0) &&
+          fChild_ != null &&
+          fChild_ != com.google.showcase.v1beta1.ComplianceDataGrandchild.getDefaultInstance()) {
+          getFChildBuilder().mergeFrom(value);
         } else {
           fChild_ = value;
         }
-        onChanged();
       } else {
         fChildBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000020;
+      onChanged();
       return this;
     }
     /**
      * .google.showcase.v1beta1.ComplianceDataGrandchild f_child = 5;
      */
     public Builder clearFChild() {
-      if (fChildBuilder_ == null) {
-        fChild_ = null;
-        onChanged();
-      } else {
-        fChild_ = null;
+      bitField0_ = (bitField0_ & ~0x00000020);
+      fChild_ = null;
+      if (fChildBuilder_ != null) {
+        fChildBuilder_.dispose();
         fChildBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .google.showcase.v1beta1.ComplianceDataGrandchild f_child = 5;
      */
     public com.google.showcase.v1beta1.ComplianceDataGrandchild.Builder getFChildBuilder() {
-      
+      bitField0_ |= 0x00000020;
       onChanged();
       return getFChildFieldBuilder().getBuilder();
     }
@@ -1344,7 +1304,7 @@ public com.google.showcase.v1beta1.ComplianceDataGrandchildOrBuilder getFChildOr
      * @return Whether the pString field is set.
      */
     public boolean hasPString() {
-      return ((bitField0_ & 0x00000001) != 0);
+      return ((bitField0_ & 0x00000040) != 0);
     }
     /**
      * optional string p_string = 6;
@@ -1386,11 +1346,9 @@ public java.lang.String getPString() {
      */
     public Builder setPString(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
+      if (value == null) { throw new NullPointerException(); }
       pString_ = value;
+      bitField0_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -1399,8 +1357,8 @@ public Builder setPString(
      * @return This builder for chaining.
      */
     public Builder clearPString() {
-      bitField0_ = (bitField0_ & ~0x00000001);
       pString_ = getDefaultInstance().getPString();
+      bitField0_ = (bitField0_ & ~0x00000040);
       onChanged();
       return this;
     }
@@ -1411,12 +1369,10 @@ public Builder clearPString() {
      */
     public Builder setPStringBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      bitField0_ |= 0x00000001;
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       pString_ = value;
+      bitField0_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -1428,7 +1384,7 @@ public Builder setPStringBytes(
      */
     @java.lang.Override
     public boolean hasPFloat() {
-      return ((bitField0_ & 0x00000002) != 0);
+      return ((bitField0_ & 0x00000080) != 0);
     }
     /**
      * optional float p_float = 7;
@@ -1444,8 +1400,9 @@ public float getPFloat() {
      * @return This builder for chaining.
      */
     public Builder setPFloat(float value) {
-      bitField0_ |= 0x00000002;
+      
       pFloat_ = value;
+      bitField0_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -1454,7 +1411,7 @@ public Builder setPFloat(float value) {
      * @return This builder for chaining.
      */
     public Builder clearPFloat() {
-      bitField0_ = (bitField0_ & ~0x00000002);
+      bitField0_ = (bitField0_ & ~0x00000080);
       pFloat_ = 0F;
       onChanged();
       return this;
@@ -1467,7 +1424,7 @@ public Builder clearPFloat() {
      */
     @java.lang.Override
     public boolean hasPDouble() {
-      return ((bitField0_ & 0x00000004) != 0);
+      return ((bitField0_ & 0x00000100) != 0);
     }
     /**
      * optional double p_double = 8;
@@ -1483,8 +1440,9 @@ public double getPDouble() {
      * @return This builder for chaining.
      */
     public Builder setPDouble(double value) {
-      bitField0_ |= 0x00000004;
+      
       pDouble_ = value;
+      bitField0_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -1493,7 +1451,7 @@ public Builder setPDouble(double value) {
      * @return This builder for chaining.
      */
     public Builder clearPDouble() {
-      bitField0_ = (bitField0_ & ~0x00000004);
+      bitField0_ = (bitField0_ & ~0x00000100);
       pDouble_ = 0D;
       onChanged();
       return this;
@@ -1506,7 +1464,7 @@ public Builder clearPDouble() {
      */
     @java.lang.Override
     public boolean hasPBool() {
-      return ((bitField0_ & 0x00000008) != 0);
+      return ((bitField0_ & 0x00000200) != 0);
     }
     /**
      * optional bool p_bool = 9;
@@ -1522,8 +1480,9 @@ public boolean getPBool() {
      * @return This builder for chaining.
      */
     public Builder setPBool(boolean value) {
-      bitField0_ |= 0x00000008;
+      
       pBool_ = value;
+      bitField0_ |= 0x00000200;
       onChanged();
       return this;
     }
@@ -1532,7 +1491,7 @@ public Builder setPBool(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearPBool() {
-      bitField0_ = (bitField0_ & ~0x00000008);
+      bitField0_ = (bitField0_ & ~0x00000200);
       pBool_ = false;
       onChanged();
       return this;
@@ -1552,8 +1511,8 @@ public Builder clearPBool() {
      * @return This builder for chaining.
      */
     public Builder setPContinentValue(int value) {
-      
       pContinent_ = value;
+      bitField0_ |= 0x00000400;
       onChanged();
       return this;
     }
@@ -1563,8 +1522,7 @@ public Builder setPContinentValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.Continent getPContinent() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.Continent result = com.google.showcase.v1beta1.Continent.valueOf(pContinent_);
+      com.google.showcase.v1beta1.Continent result = com.google.showcase.v1beta1.Continent.forNumber(pContinent_);
       return result == null ? com.google.showcase.v1beta1.Continent.UNRECOGNIZED : result;
     }
     /**
@@ -1576,7 +1534,7 @@ public Builder setPContinent(com.google.showcase.v1beta1.Continent value) {
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000400;
       pContinent_ = value.getNumber();
       onChanged();
       return this;
@@ -1586,7 +1544,7 @@ public Builder setPContinent(com.google.showcase.v1beta1.Continent value) {
      * @return This builder for chaining.
      */
     public Builder clearPContinent() {
-      
+      bitField0_ = (bitField0_ & ~0x00000400);
       pContinent_ = 0;
       onChanged();
       return this;
@@ -1600,7 +1558,7 @@ public Builder clearPContinent() {
      * @return Whether the pChild field is set.
      */
     public boolean hasPChild() {
-      return ((bitField0_ & 0x00000010) != 0);
+      return ((bitField0_ & 0x00000800) != 0);
     }
     /**
      * optional .google.showcase.v1beta1.ComplianceDataGrandchild p_child = 10;
@@ -1622,11 +1580,11 @@ public Builder setPChild(com.google.showcase.v1beta1.ComplianceDataGrandchild va
           throw new NullPointerException();
         }
         pChild_ = value;
-        onChanged();
       } else {
         pChildBuilder_.setMessage(value);
       }
-      bitField0_ |= 0x00000010;
+      bitField0_ |= 0x00000800;
+      onChanged();
       return this;
     }
     /**
@@ -1636,11 +1594,11 @@ public Builder setPChild(
         com.google.showcase.v1beta1.ComplianceDataGrandchild.Builder builderForValue) {
       if (pChildBuilder_ == null) {
         pChild_ = builderForValue.build();
-        onChanged();
       } else {
         pChildBuilder_.setMessage(builderForValue.build());
       }
-      bitField0_ |= 0x00000010;
+      bitField0_ |= 0x00000800;
+      onChanged();
       return this;
     }
     /**
@@ -1648,39 +1606,38 @@ public Builder setPChild(
      */
     public Builder mergePChild(com.google.showcase.v1beta1.ComplianceDataGrandchild value) {
       if (pChildBuilder_ == null) {
-        if (((bitField0_ & 0x00000010) != 0) &&
-            pChild_ != null &&
-            pChild_ != com.google.showcase.v1beta1.ComplianceDataGrandchild.getDefaultInstance()) {
-          pChild_ =
-            com.google.showcase.v1beta1.ComplianceDataGrandchild.newBuilder(pChild_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000800) != 0) &&
+          pChild_ != null &&
+          pChild_ != com.google.showcase.v1beta1.ComplianceDataGrandchild.getDefaultInstance()) {
+          getPChildBuilder().mergeFrom(value);
         } else {
           pChild_ = value;
         }
-        onChanged();
       } else {
         pChildBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000010;
+      bitField0_ |= 0x00000800;
+      onChanged();
       return this;
     }
     /**
      * optional .google.showcase.v1beta1.ComplianceDataGrandchild p_child = 10;
      */
     public Builder clearPChild() {
-      if (pChildBuilder_ == null) {
-        pChild_ = null;
-        onChanged();
-      } else {
-        pChildBuilder_.clear();
+      bitField0_ = (bitField0_ & ~0x00000800);
+      pChild_ = null;
+      if (pChildBuilder_ != null) {
+        pChildBuilder_.dispose();
+        pChildBuilder_ = null;
       }
-      bitField0_ = (bitField0_ & ~0x00000010);
+      onChanged();
       return this;
     }
     /**
      * optional .google.showcase.v1beta1.ComplianceDataGrandchild p_child = 10;
      */
     public com.google.showcase.v1beta1.ComplianceDataGrandchild.Builder getPChildBuilder() {
-      bitField0_ |= 0x00000010;
+      bitField0_ |= 0x00000800;
       onChanged();
       return getPChildFieldBuilder().getBuilder();
     }
@@ -1744,7 +1701,18 @@ public ComplianceDataChild parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ComplianceDataChild(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceDataGrandchild.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceDataGrandchild.java
index 87d2d1ab6c..72b11003cb 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceDataGrandchild.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceDataGrandchild.java
@@ -31,61 +31,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ComplianceDataGrandchild(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            fString_ = s;
-            break;
-          }
-          case 17: {
-
-            fDouble_ = input.readDouble();
-            break;
-          }
-          case 24: {
-
-            fBool_ = input.readBool();
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.ComplianceOuterClass.internal_static_google_showcase_v1beta1_ComplianceDataGrandchild_descriptor;
@@ -100,7 +45,8 @@ private ComplianceDataGrandchild(
   }
 
   public static final int F_STRING_FIELD_NUMBER = 1;
-  private volatile java.lang.Object fString_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object fString_ = "";
   /**
    * string f_string = 1;
    * @return The fString.
@@ -138,7 +84,7 @@ public java.lang.String getFString() {
   }
 
   public static final int F_DOUBLE_FIELD_NUMBER = 2;
-  private double fDouble_;
+  private double fDouble_ = 0D;
   /**
    * double f_double = 2;
    * @return The fDouble.
@@ -149,7 +95,7 @@ public double getFDouble() {
   }
 
   public static final int F_BOOL_FIELD_NUMBER = 3;
-  private boolean fBool_;
+  private boolean fBool_ = false;
   /**
    * bool f_bool = 3;
    * @return The fBool.
@@ -182,7 +128,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (fBool_ != false) {
       output.writeBool(3, fBool_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -202,7 +148,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeBoolSize(3, fBool_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -224,7 +170,7 @@ public boolean equals(final java.lang.Object obj) {
             other.getFDouble())) return false;
     if (getFBool()
         != other.getFBool()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -243,7 +189,7 @@ public int hashCode() {
     hash = (37 * hash) + F_BOOL_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
         getFBool());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -360,28 +306,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ComplianceDataGrandchild.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       fString_ = "";
-
       fDouble_ = 0D;
-
       fBool_ = false;
-
       return this;
     }
 
@@ -408,13 +347,24 @@ public com.google.showcase.v1beta1.ComplianceDataGrandchild build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ComplianceDataGrandchild buildPartial() {
       com.google.showcase.v1beta1.ComplianceDataGrandchild result = new com.google.showcase.v1beta1.ComplianceDataGrandchild(this);
-      result.fString_ = fString_;
-      result.fDouble_ = fDouble_;
-      result.fBool_ = fBool_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.ComplianceDataGrandchild result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.fString_ = fString_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.fDouble_ = fDouble_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.fBool_ = fBool_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -461,6 +411,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceDataGrandchild ot
       if (other == com.google.showcase.v1beta1.ComplianceDataGrandchild.getDefaultInstance()) return this;
       if (!other.getFString().isEmpty()) {
         fString_ = other.fString_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.getFDouble() != 0D) {
@@ -469,7 +420,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceDataGrandchild ot
       if (other.getFBool() != false) {
         setFBool(other.getFBool());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -484,19 +435,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ComplianceDataGrandchild parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              fString_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 17: {
+              fDouble_ = input.readDouble();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 17
+            case 24: {
+              fBool_ = input.readBool();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ComplianceDataGrandchild) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object fString_ = "";
     /**
@@ -539,11 +519,9 @@ public java.lang.String getFString() {
      */
     public Builder setFString(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       fString_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -552,8 +530,8 @@ public Builder setFString(
      * @return This builder for chaining.
      */
     public Builder clearFString() {
-      
       fString_ = getDefaultInstance().getFString();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -564,12 +542,10 @@ public Builder clearFString() {
      */
     public Builder setFStringBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       fString_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -591,6 +567,7 @@ public double getFDouble() {
     public Builder setFDouble(double value) {
       
       fDouble_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -599,7 +576,7 @@ public Builder setFDouble(double value) {
      * @return This builder for chaining.
      */
     public Builder clearFDouble() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       fDouble_ = 0D;
       onChanged();
       return this;
@@ -622,6 +599,7 @@ public boolean getFBool() {
     public Builder setFBool(boolean value) {
       
       fBool_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -630,7 +608,7 @@ public Builder setFBool(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearFBool() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       fBool_ = false;
       onChanged();
       return this;
@@ -668,7 +646,18 @@ public ComplianceDataGrandchild parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ComplianceDataGrandchild(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceGroup.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceGroup.java
index 05bf124570..68c1d98408 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceGroup.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceGroup.java
@@ -39,76 +39,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ComplianceGroup(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              rpcs_ = new com.google.protobuf.LazyStringArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            rpcs_.add(s);
-            break;
-          }
-          case 26: {
-            if (!((mutable_bitField0_ & 0x00000002) != 0)) {
-              requests_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000002;
-            }
-            requests_.add(
-                input.readMessage(com.google.showcase.v1beta1.RepeatRequest.parser(), extensionRegistry));
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        rpcs_ = rpcs_.getUnmodifiableView();
-      }
-      if (((mutable_bitField0_ & 0x00000002) != 0)) {
-        requests_ = java.util.Collections.unmodifiableList(requests_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.ComplianceOuterClass.internal_static_google_showcase_v1beta1_ComplianceGroup_descriptor;
@@ -123,7 +53,8 @@ private ComplianceGroup(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * string name = 1;
    * @return The name.
@@ -161,6 +92,7 @@ public java.lang.String getName() {
   }
 
   public static final int RPCS_FIELD_NUMBER = 2;
+  @SuppressWarnings("serial")
   private com.google.protobuf.LazyStringList rpcs_;
   /**
    * repeated string rpcs = 2;
@@ -196,6 +128,7 @@ public java.lang.String getRpcs(int index) {
   }
 
   public static final int REQUESTS_FIELD_NUMBER = 3;
+  @SuppressWarnings("serial")
   private java.util.List requests_;
   /**
    * repeated .google.showcase.v1beta1.RepeatRequest requests = 3;
@@ -258,7 +191,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < requests_.size(); i++) {
       output.writeMessage(3, requests_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -282,7 +215,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(3, requests_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -303,7 +236,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getRpcsList())) return false;
     if (!getRequestsList()
         .equals(other.getRequestsList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -324,7 +257,7 @@ public int hashCode() {
       hash = (37 * hash) + REQUESTS_FIELD_NUMBER;
       hash = (53 * hash) + getRequestsList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -447,33 +380,28 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ComplianceGroup.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getRequestsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       rpcs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      bitField0_ = (bitField0_ & ~0x00000002);
       if (requestsBuilder_ == null) {
         requests_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000002);
       } else {
+        requests_ = null;
         requestsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000004);
       return this;
     }
 
@@ -500,24 +428,34 @@ public com.google.showcase.v1beta1.ComplianceGroup build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ComplianceGroup buildPartial() {
       com.google.showcase.v1beta1.ComplianceGroup result = new com.google.showcase.v1beta1.ComplianceGroup(this);
-      int from_bitField0_ = bitField0_;
-      result.name_ = name_;
-      if (((bitField0_ & 0x00000001) != 0)) {
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.ComplianceGroup result) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         rpcs_ = rpcs_.getUnmodifiableView();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000002);
       }
       result.rpcs_ = rpcs_;
       if (requestsBuilder_ == null) {
-        if (((bitField0_ & 0x00000002) != 0)) {
+        if (((bitField0_ & 0x00000004) != 0)) {
           requests_ = java.util.Collections.unmodifiableList(requests_);
-          bitField0_ = (bitField0_ & ~0x00000002);
+          bitField0_ = (bitField0_ & ~0x00000004);
         }
         result.requests_ = requests_;
       } else {
         result.requests_ = requestsBuilder_.build();
       }
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.ComplianceGroup result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
     }
 
     @java.lang.Override
@@ -566,12 +504,13 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceGroup other) {
       if (other == com.google.showcase.v1beta1.ComplianceGroup.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (!other.rpcs_.isEmpty()) {
         if (rpcs_.isEmpty()) {
           rpcs_ = other.rpcs_;
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000002);
         } else {
           ensureRpcsIsMutable();
           rpcs_.addAll(other.rpcs_);
@@ -582,7 +521,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceGroup other) {
         if (!other.requests_.isEmpty()) {
           if (requests_.isEmpty()) {
             requests_ = other.requests_;
-            bitField0_ = (bitField0_ & ~0x00000002);
+            bitField0_ = (bitField0_ & ~0x00000004);
           } else {
             ensureRequestsIsMutable();
             requests_.addAll(other.requests_);
@@ -595,7 +534,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceGroup other) {
             requestsBuilder_.dispose();
             requestsBuilder_ = null;
             requests_ = other.requests_;
-            bitField0_ = (bitField0_ & ~0x00000002);
+            bitField0_ = (bitField0_ & ~0x00000004);
             requestsBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getRequestsFieldBuilder() : null;
@@ -604,7 +543,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceGroup other) {
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -619,17 +558,54 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ComplianceGroup parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+              ensureRpcsIsMutable();
+              rpcs_.add(s);
+              break;
+            } // case 18
+            case 26: {
+              com.google.showcase.v1beta1.RepeatRequest m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.RepeatRequest.parser(),
+                      extensionRegistry);
+              if (requestsBuilder_ == null) {
+                ensureRequestsIsMutable();
+                requests_.add(m);
+              } else {
+                requestsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 26
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ComplianceGroup) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -675,11 +651,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -688,8 +662,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -700,21 +674,19 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
 
     private com.google.protobuf.LazyStringList rpcs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
     private void ensureRpcsIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000002) != 0)) {
         rpcs_ = new com.google.protobuf.LazyStringArrayList(rpcs_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000002;
        }
     }
     /**
@@ -757,10 +729,8 @@ public java.lang.String getRpcs(int index) {
      */
     public Builder setRpcs(
         int index, java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureRpcsIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureRpcsIsMutable();
       rpcs_.set(index, value);
       onChanged();
       return this;
@@ -772,10 +742,8 @@ public Builder setRpcs(
      */
     public Builder addRpcs(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureRpcsIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureRpcsIsMutable();
       rpcs_.add(value);
       onChanged();
       return this;
@@ -799,7 +767,7 @@ public Builder addAllRpcs(
      */
     public Builder clearRpcs() {
       rpcs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      bitField0_ = (bitField0_ & ~0x00000001);
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -810,10 +778,8 @@ public Builder clearRpcs() {
      */
     public Builder addRpcsBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       ensureRpcsIsMutable();
       rpcs_.add(value);
       onChanged();
@@ -823,9 +789,9 @@ public Builder addRpcsBytes(
     private java.util.List requests_ =
       java.util.Collections.emptyList();
     private void ensureRequestsIsMutable() {
-      if (!((bitField0_ & 0x00000002) != 0)) {
+      if (!((bitField0_ & 0x00000004) != 0)) {
         requests_ = new java.util.ArrayList(requests_);
-        bitField0_ |= 0x00000002;
+        bitField0_ |= 0x00000004;
        }
     }
 
@@ -975,7 +941,7 @@ public Builder addAllRequests(
     public Builder clearRequests() {
       if (requestsBuilder_ == null) {
         requests_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000002);
+        bitField0_ = (bitField0_ & ~0x00000004);
         onChanged();
       } else {
         requestsBuilder_.clear();
@@ -1052,7 +1018,7 @@ public com.google.showcase.v1beta1.RepeatRequest.Builder addRequestsBuilder(
         requestsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             com.google.showcase.v1beta1.RepeatRequest, com.google.showcase.v1beta1.RepeatRequest.Builder, com.google.showcase.v1beta1.RepeatRequestOrBuilder>(
                 requests_,
-                ((bitField0_ & 0x00000002) != 0),
+                ((bitField0_ & 0x00000004) != 0),
                 getParentForChildren(),
                 isClean());
         requests_ = null;
@@ -1092,7 +1058,18 @@ public ComplianceGroup parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ComplianceGroup(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceSuite.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceSuite.java
index e87565b059..58cee3e006 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceSuite.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ComplianceSuite.java
@@ -37,58 +37,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ComplianceSuite(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              group_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            group_.add(
-                input.readMessage(com.google.showcase.v1beta1.ComplianceGroup.parser(), extensionRegistry));
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        group_ = java.util.Collections.unmodifiableList(group_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.ComplianceOuterClass.internal_static_google_showcase_v1beta1_ComplianceSuite_descriptor;
@@ -103,6 +51,7 @@ private ComplianceSuite(
   }
 
   public static final int GROUP_FIELD_NUMBER = 1;
+  @SuppressWarnings("serial")
   private java.util.List group_;
   /**
    * repeated .google.showcase.v1beta1.ComplianceGroup group = 1;
@@ -159,7 +108,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < group_.size(); i++) {
       output.writeMessage(1, group_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -172,7 +121,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, group_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -189,7 +138,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getGroupList()
         .equals(other.getGroupList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -204,7 +153,7 @@ public int hashCode() {
       hash = (37 * hash) + GROUP_FIELD_NUMBER;
       hash = (53 * hash) + getGroupList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -327,29 +276,25 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ComplianceSuite.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getGroupFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       if (groupBuilder_ == null) {
         group_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        group_ = null;
         groupBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000001);
       return this;
     }
 
@@ -376,7 +321,13 @@ public com.google.showcase.v1beta1.ComplianceSuite build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ComplianceSuite buildPartial() {
       com.google.showcase.v1beta1.ComplianceSuite result = new com.google.showcase.v1beta1.ComplianceSuite(this);
-      int from_bitField0_ = bitField0_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.ComplianceSuite result) {
       if (groupBuilder_ == null) {
         if (((bitField0_ & 0x00000001) != 0)) {
           group_ = java.util.Collections.unmodifiableList(group_);
@@ -386,8 +337,10 @@ public com.google.showcase.v1beta1.ComplianceSuite buildPartial() {
       } else {
         result.group_ = groupBuilder_.build();
       }
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.ComplianceSuite result) {
+      int from_bitField0_ = bitField0_;
     }
 
     @java.lang.Override
@@ -460,7 +413,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ComplianceSuite other) {
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -475,17 +428,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ComplianceSuite parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              com.google.showcase.v1beta1.ComplianceGroup m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.ComplianceGroup.parser(),
+                      extensionRegistry);
+              if (groupBuilder_ == null) {
+                ensureGroupIsMutable();
+                group_.add(m);
+              } else {
+                groupBuilder_.addMessage(m);
+              }
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ComplianceSuite) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -762,7 +741,18 @@ public ComplianceSuite parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ComplianceSuite(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ConnectRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ConnectRequest.java
index ee58d0f26a..0826ff499e 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ConnectRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ConnectRequest.java
@@ -35,73 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ConnectRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.showcase.v1beta1.ConnectRequest.ConnectConfig.Builder subBuilder = null;
-            if (requestCase_ == 1) {
-              subBuilder = ((com.google.showcase.v1beta1.ConnectRequest.ConnectConfig) request_).toBuilder();
-            }
-            request_ =
-                input.readMessage(com.google.showcase.v1beta1.ConnectRequest.ConnectConfig.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((com.google.showcase.v1beta1.ConnectRequest.ConnectConfig) request_);
-              request_ = subBuilder.buildPartial();
-            }
-            requestCase_ = 1;
-            break;
-          }
-          case 18: {
-            com.google.showcase.v1beta1.Blurb.Builder subBuilder = null;
-            if (requestCase_ == 2) {
-              subBuilder = ((com.google.showcase.v1beta1.Blurb) request_).toBuilder();
-            }
-            request_ =
-                input.readMessage(com.google.showcase.v1beta1.Blurb.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((com.google.showcase.v1beta1.Blurb) request_);
-              request_ = subBuilder.buildPartial();
-            }
-            requestCase_ = 2;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_ConnectRequest_descriptor;
@@ -167,51 +100,6 @@ protected java.lang.Object newInstance(
     getUnknownFields() {
       return this.unknownFields;
     }
-    private ConnectConfig(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 10: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              parent_ = s;
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (com.google.protobuf.UninitializedMessageException e) {
-        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_ConnectRequest_ConnectConfig_descriptor;
@@ -226,7 +114,8 @@ private ConnectConfig(
     }
 
     public static final int PARENT_FIELD_NUMBER = 1;
-    private volatile java.lang.Object parent_;
+    @SuppressWarnings("serial")
+    private volatile java.lang.Object parent_ = "";
     /**
      * 
      * The room or profile to follow and create messages for.
@@ -288,7 +177,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) {
         com.google.protobuf.GeneratedMessageV3.writeString(output, 1, parent_);
       }
-      unknownFields.writeTo(output);
+      getUnknownFields().writeTo(output);
     }
 
     @java.lang.Override
@@ -300,7 +189,7 @@ public int getSerializedSize() {
       if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) {
         size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, parent_);
       }
-      size += unknownFields.getSerializedSize();
+      size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -317,7 +206,7 @@ public boolean equals(final java.lang.Object obj) {
 
       if (!getParent()
           .equals(other.getParent())) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
+      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
       return true;
     }
 
@@ -330,7 +219,7 @@ public int hashCode() {
       hash = (19 * hash) + getDescriptor().hashCode();
       hash = (37 * hash) + PARENT_FIELD_NUMBER;
       hash = (53 * hash) + getParent().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
+      hash = (29 * hash) + getUnknownFields().hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -447,24 +336,19 @@ public static final class Builder extends
 
       // Construct using com.google.showcase.v1beta1.ConnectRequest.ConnectConfig.newBuilder()
       private Builder() {
-        maybeForceBuilderInitialization();
+
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
+
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        bitField0_ = 0;
         parent_ = "";
-
         return this;
       }
 
@@ -491,11 +375,18 @@ public com.google.showcase.v1beta1.ConnectRequest.ConnectConfig build() {
       @java.lang.Override
       public com.google.showcase.v1beta1.ConnectRequest.ConnectConfig buildPartial() {
         com.google.showcase.v1beta1.ConnectRequest.ConnectConfig result = new com.google.showcase.v1beta1.ConnectRequest.ConnectConfig(this);
-        result.parent_ = parent_;
+        if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
+      private void buildPartial0(com.google.showcase.v1beta1.ConnectRequest.ConnectConfig result) {
+        int from_bitField0_ = bitField0_;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.parent_ = parent_;
+        }
+      }
+
       @java.lang.Override
       public Builder clone() {
         return super.clone();
@@ -542,9 +433,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ConnectRequest.ConnectConfi
         if (other == com.google.showcase.v1beta1.ConnectRequest.ConnectConfig.getDefaultInstance()) return this;
         if (!other.getParent().isEmpty()) {
           parent_ = other.parent_;
+          bitField0_ |= 0x00000001;
           onChanged();
         }
-        this.mergeUnknownFields(other.unknownFields);
+        this.mergeUnknownFields(other.getUnknownFields());
         onChanged();
         return this;
       }
@@ -559,19 +451,38 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        com.google.showcase.v1beta1.ConnectRequest.ConnectConfig parsedMessage = null;
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
         try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+          boolean done = false;
+          while (!done) {
+            int tag = input.readTag();
+            switch (tag) {
+              case 0:
+                done = true;
+                break;
+              case 10: {
+                parent_ = input.readStringRequireUtf8();
+                bitField0_ |= 0x00000001;
+                break;
+              } // case 10
+              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) {
-          parsedMessage = (com.google.showcase.v1beta1.ConnectRequest.ConnectConfig) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
+          onChanged();
+        } // finally
         return this;
       }
+      private int bitField0_;
 
       private java.lang.Object parent_ = "";
       /**
@@ -626,11 +537,9 @@ public java.lang.String getParent() {
        */
       public Builder setParent(
           java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
+        if (value == null) { throw new NullPointerException(); }
         parent_ = value;
+        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -643,8 +552,8 @@ public Builder setParent(
        * @return This builder for chaining.
        */
       public Builder clearParent() {
-        
         parent_ = getDefaultInstance().getParent();
+        bitField0_ = (bitField0_ & ~0x00000001);
         onChanged();
         return this;
       }
@@ -659,12 +568,10 @@ public Builder clearParent() {
        */
       public Builder setParentBytes(
           com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
+        if (value == null) { throw new NullPointerException(); }
+        checkByteStringIsUtf8(value);
         parent_ = value;
+        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -701,7 +608,18 @@ public ConnectConfig parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ConnectConfig(input, extensionRegistry);
+        Builder builder = newBuilder();
+        try {
+          builder.mergeFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(builder.buildPartial());
+        } catch (com.google.protobuf.UninitializedMessageException e) {
+          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(e)
+              .setUnfinishedMessage(builder.buildPartial());
+        }
+        return builder.buildPartial();
       }
     };
 
@@ -871,7 +789,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (requestCase_ == 2) {
       output.writeMessage(2, (com.google.showcase.v1beta1.Blurb) request_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -888,7 +806,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, (com.google.showcase.v1beta1.Blurb) request_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -916,7 +834,7 @@ public boolean equals(final java.lang.Object obj) {
       case 0:
       default:
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -939,7 +857,7 @@ public int hashCode() {
       case 0:
       default:
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -1061,22 +979,24 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ConnectRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
+      if (configBuilder_ != null) {
+        configBuilder_.clear();
+      }
+      if (blurbBuilder_ != null) {
+        blurbBuilder_.clear();
+      }
       requestCase_ = 0;
       request_ = null;
       return this;
@@ -1105,25 +1025,29 @@ public com.google.showcase.v1beta1.ConnectRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ConnectRequest buildPartial() {
       com.google.showcase.v1beta1.ConnectRequest result = new com.google.showcase.v1beta1.ConnectRequest(this);
-      if (requestCase_ == 1) {
-        if (configBuilder_ == null) {
-          result.request_ = request_;
-        } else {
-          result.request_ = configBuilder_.build();
-        }
-      }
-      if (requestCase_ == 2) {
-        if (blurbBuilder_ == null) {
-          result.request_ = request_;
-        } else {
-          result.request_ = blurbBuilder_.build();
-        }
-      }
-      result.requestCase_ = requestCase_;
+      if (bitField0_ != 0) { buildPartial0(result); }
+      buildPartialOneofs(result);
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.ConnectRequest result) {
+      int from_bitField0_ = bitField0_;
+    }
+
+    private void buildPartialOneofs(com.google.showcase.v1beta1.ConnectRequest result) {
+      result.requestCase_ = requestCase_;
+      result.request_ = this.request_;
+      if (requestCase_ == 1 &&
+          configBuilder_ != null) {
+        result.request_ = configBuilder_.build();
+      }
+      if (requestCase_ == 2 &&
+          blurbBuilder_ != null) {
+        result.request_ = blurbBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -1181,7 +1105,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ConnectRequest other) {
           break;
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -1196,17 +1120,44 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ConnectRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getConfigFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              requestCase_ = 1;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getBlurbFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              requestCase_ = 2;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ConnectRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int requestCase_ = 0;
@@ -1224,6 +1175,7 @@ public Builder clearRequest() {
       return this;
     }
 
+    private int bitField0_;
 
     private com.google.protobuf.SingleFieldBuilderV3<
         com.google.showcase.v1beta1.ConnectRequest.ConnectConfig, com.google.showcase.v1beta1.ConnectRequest.ConnectConfig.Builder, com.google.showcase.v1beta1.ConnectRequest.ConnectConfigOrBuilder> configBuilder_;
@@ -1408,7 +1360,7 @@ public com.google.showcase.v1beta1.ConnectRequest.ConnectConfigOrBuilder getConf
         request_ = null;
       }
       requestCase_ = 1;
-      onChanged();;
+      onChanged();
       return configBuilder_;
     }
 
@@ -1586,7 +1538,7 @@ public com.google.showcase.v1beta1.BlurbOrBuilder getBlurbOrBuilder() {
         request_ = null;
       }
       requestCase_ = 2;
-      onChanged();;
+      onChanged();
       return blurbBuilder_;
     }
     @java.lang.Override
@@ -1622,7 +1574,18 @@ public ConnectRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ConnectRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateBlurbRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateBlurbRequest.java
index 1fed27c664..c39ae40105 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateBlurbRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateBlurbRequest.java
@@ -36,64 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private CreateBlurbRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            parent_ = s;
-            break;
-          }
-          case 18: {
-            com.google.showcase.v1beta1.Blurb.Builder subBuilder = null;
-            if (blurb_ != null) {
-              subBuilder = blurb_.toBuilder();
-            }
-            blurb_ = input.readMessage(com.google.showcase.v1beta1.Blurb.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(blurb_);
-              blurb_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_CreateBlurbRequest_descriptor;
@@ -108,7 +50,8 @@ private CreateBlurbRequest(
   }
 
   public static final int PARENT_FIELD_NUMBER = 1;
-  private volatile java.lang.Object parent_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object parent_ = "";
   /**
    * 
    * The resource name of the chat room or user profile that this blurb will
@@ -190,7 +133,7 @@ public com.google.showcase.v1beta1.Blurb getBlurb() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.BlurbOrBuilder getBlurbOrBuilder() {
-    return getBlurb();
+    return blurb_ == null ? com.google.showcase.v1beta1.Blurb.getDefaultInstance() : blurb_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -213,7 +156,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (blurb_ != null) {
       output.writeMessage(2, getBlurb());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -229,7 +172,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, getBlurb());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -251,7 +194,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getBlurb()
           .equals(other.getBlurb())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -268,7 +211,7 @@ public int hashCode() {
       hash = (37 * hash) + BLURB_FIELD_NUMBER;
       hash = (53 * hash) + getBlurb().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -390,28 +333,22 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.CreateBlurbRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       parent_ = "";
-
-      if (blurbBuilder_ == null) {
-        blurb_ = null;
-      } else {
-        blurb_ = null;
+      blurb_ = null;
+      if (blurbBuilder_ != null) {
+        blurbBuilder_.dispose();
         blurbBuilder_ = null;
       }
       return this;
@@ -440,16 +377,23 @@ public com.google.showcase.v1beta1.CreateBlurbRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.CreateBlurbRequest buildPartial() {
       com.google.showcase.v1beta1.CreateBlurbRequest result = new com.google.showcase.v1beta1.CreateBlurbRequest(this);
-      result.parent_ = parent_;
-      if (blurbBuilder_ == null) {
-        result.blurb_ = blurb_;
-      } else {
-        result.blurb_ = blurbBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.CreateBlurbRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.parent_ = parent_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.blurb_ = blurbBuilder_ == null
+            ? blurb_
+            : blurbBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -496,12 +440,13 @@ public Builder mergeFrom(com.google.showcase.v1beta1.CreateBlurbRequest other) {
       if (other == com.google.showcase.v1beta1.CreateBlurbRequest.getDefaultInstance()) return this;
       if (!other.getParent().isEmpty()) {
         parent_ = other.parent_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.hasBlurb()) {
         mergeBlurb(other.getBlurb());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -516,19 +461,45 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.CreateBlurbRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              parent_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getBlurbFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.CreateBlurbRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object parent_ = "";
     /**
@@ -586,11 +557,9 @@ public java.lang.String getParent() {
      */
     public Builder setParent(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       parent_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -604,8 +573,8 @@ public Builder setParent(
      * @return This builder for chaining.
      */
     public Builder clearParent() {
-      
       parent_ = getDefaultInstance().getParent();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -621,12 +590,10 @@ public Builder clearParent() {
      */
     public Builder setParentBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       parent_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -643,7 +610,7 @@ public Builder setParentBytes(
      * @return Whether the blurb field is set.
      */
     public boolean hasBlurb() {
-      return blurbBuilder_ != null || blurb_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -673,11 +640,11 @@ public Builder setBlurb(com.google.showcase.v1beta1.Blurb value) {
           throw new NullPointerException();
         }
         blurb_ = value;
-        onChanged();
       } else {
         blurbBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -691,11 +658,11 @@ public Builder setBlurb(
         com.google.showcase.v1beta1.Blurb.Builder builderForValue) {
       if (blurbBuilder_ == null) {
         blurb_ = builderForValue.build();
-        onChanged();
       } else {
         blurbBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -707,17 +674,18 @@ public Builder setBlurb(
      */
     public Builder mergeBlurb(com.google.showcase.v1beta1.Blurb value) {
       if (blurbBuilder_ == null) {
-        if (blurb_ != null) {
-          blurb_ =
-            com.google.showcase.v1beta1.Blurb.newBuilder(blurb_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000002) != 0) &&
+          blurb_ != null &&
+          blurb_ != com.google.showcase.v1beta1.Blurb.getDefaultInstance()) {
+          getBlurbBuilder().mergeFrom(value);
         } else {
           blurb_ = value;
         }
-        onChanged();
       } else {
         blurbBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -728,14 +696,13 @@ public Builder mergeBlurb(com.google.showcase.v1beta1.Blurb value) {
      * .google.showcase.v1beta1.Blurb blurb = 2;
      */
     public Builder clearBlurb() {
-      if (blurbBuilder_ == null) {
-        blurb_ = null;
-        onChanged();
-      } else {
-        blurb_ = null;
+      bitField0_ = (bitField0_ & ~0x00000002);
+      blurb_ = null;
+      if (blurbBuilder_ != null) {
+        blurbBuilder_.dispose();
         blurbBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -746,7 +713,7 @@ public Builder clearBlurb() {
      * .google.showcase.v1beta1.Blurb blurb = 2;
      */
     public com.google.showcase.v1beta1.Blurb.Builder getBlurbBuilder() {
-      
+      bitField0_ |= 0x00000002;
       onChanged();
       return getBlurbFieldBuilder().getBuilder();
     }
@@ -818,7 +785,18 @@ public CreateBlurbRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new CreateBlurbRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateRoomRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateRoomRequest.java
index 5982b2f59c..4c7d195730 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateRoomRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateRoomRequest.java
@@ -35,58 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private CreateRoomRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.showcase.v1beta1.Room.Builder subBuilder = null;
-            if (room_ != null) {
-              subBuilder = room_.toBuilder();
-            }
-            room_ = input.readMessage(com.google.showcase.v1beta1.Room.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(room_);
-              room_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_CreateRoomRequest_descriptor;
@@ -135,7 +83,7 @@ public com.google.showcase.v1beta1.Room getRoom() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.RoomOrBuilder getRoomOrBuilder() {
-    return getRoom();
+    return room_ == null ? com.google.showcase.v1beta1.Room.getDefaultInstance() : room_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -155,7 +103,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (room_ != null) {
       output.writeMessage(1, getRoom());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -168,7 +116,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getRoom());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -188,7 +136,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getRoom()
           .equals(other.getRoom())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -203,7 +151,7 @@ public int hashCode() {
       hash = (37 * hash) + ROOM_FIELD_NUMBER;
       hash = (53 * hash) + getRoom().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -325,26 +273,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.CreateRoomRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (roomBuilder_ == null) {
-        room_ = null;
-      } else {
-        room_ = null;
+      bitField0_ = 0;
+      room_ = null;
+      if (roomBuilder_ != null) {
+        roomBuilder_.dispose();
         roomBuilder_ = null;
       }
       return this;
@@ -373,15 +316,20 @@ public com.google.showcase.v1beta1.CreateRoomRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.CreateRoomRequest buildPartial() {
       com.google.showcase.v1beta1.CreateRoomRequest result = new com.google.showcase.v1beta1.CreateRoomRequest(this);
-      if (roomBuilder_ == null) {
-        result.room_ = room_;
-      } else {
-        result.room_ = roomBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.CreateRoomRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.room_ = roomBuilder_ == null
+            ? room_
+            : roomBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -429,7 +377,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.CreateRoomRequest other) {
       if (other.hasRoom()) {
         mergeRoom(other.getRoom());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -444,19 +392,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.CreateRoomRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getRoomFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.CreateRoomRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.showcase.v1beta1.Room room_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -470,7 +439,7 @@ public Builder mergeFrom(
      * @return Whether the room field is set.
      */
     public boolean hasRoom() {
-      return roomBuilder_ != null || room_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -500,11 +469,11 @@ public Builder setRoom(com.google.showcase.v1beta1.Room value) {
           throw new NullPointerException();
         }
         room_ = value;
-        onChanged();
       } else {
         roomBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -518,11 +487,11 @@ public Builder setRoom(
         com.google.showcase.v1beta1.Room.Builder builderForValue) {
       if (roomBuilder_ == null) {
         room_ = builderForValue.build();
-        onChanged();
       } else {
         roomBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -534,17 +503,18 @@ public Builder setRoom(
      */
     public Builder mergeRoom(com.google.showcase.v1beta1.Room value) {
       if (roomBuilder_ == null) {
-        if (room_ != null) {
-          room_ =
-            com.google.showcase.v1beta1.Room.newBuilder(room_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          room_ != null &&
+          room_ != com.google.showcase.v1beta1.Room.getDefaultInstance()) {
+          getRoomBuilder().mergeFrom(value);
         } else {
           room_ = value;
         }
-        onChanged();
       } else {
         roomBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -555,14 +525,13 @@ public Builder mergeRoom(com.google.showcase.v1beta1.Room value) {
      * .google.showcase.v1beta1.Room room = 1;
      */
     public Builder clearRoom() {
-      if (roomBuilder_ == null) {
-        room_ = null;
-        onChanged();
-      } else {
-        room_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      room_ = null;
+      if (roomBuilder_ != null) {
+        roomBuilder_.dispose();
         roomBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -573,7 +542,7 @@ public Builder clearRoom() {
      * .google.showcase.v1beta1.Room room = 1;
      */
     public com.google.showcase.v1beta1.Room.Builder getRoomBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getRoomFieldBuilder().getBuilder();
     }
@@ -645,7 +614,18 @@ public CreateRoomRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new CreateRoomRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateSequenceRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateSequenceRequest.java
index 2f8b0a890f..d61cf1e5a7 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateSequenceRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateSequenceRequest.java
@@ -30,58 +30,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private CreateSequenceRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.showcase.v1beta1.Sequence.Builder subBuilder = null;
-            if (sequence_ != null) {
-              subBuilder = sequence_.toBuilder();
-            }
-            sequence_ = input.readMessage(com.google.showcase.v1beta1.Sequence.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(sequence_);
-              sequence_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.SequenceOuterClass.internal_static_google_showcase_v1beta1_CreateSequenceRequest_descriptor;
@@ -118,7 +66,7 @@ public com.google.showcase.v1beta1.Sequence getSequence() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.SequenceOrBuilder getSequenceOrBuilder() {
-    return getSequence();
+    return sequence_ == null ? com.google.showcase.v1beta1.Sequence.getDefaultInstance() : sequence_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -138,7 +86,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (sequence_ != null) {
       output.writeMessage(1, getSequence());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -151,7 +99,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getSequence());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -171,7 +119,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getSequence()
           .equals(other.getSequence())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -186,7 +134,7 @@ public int hashCode() {
       hash = (37 * hash) + SEQUENCE_FIELD_NUMBER;
       hash = (53 * hash) + getSequence().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -303,26 +251,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.CreateSequenceRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (sequenceBuilder_ == null) {
-        sequence_ = null;
-      } else {
-        sequence_ = null;
+      bitField0_ = 0;
+      sequence_ = null;
+      if (sequenceBuilder_ != null) {
+        sequenceBuilder_.dispose();
         sequenceBuilder_ = null;
       }
       return this;
@@ -351,15 +294,20 @@ public com.google.showcase.v1beta1.CreateSequenceRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.CreateSequenceRequest buildPartial() {
       com.google.showcase.v1beta1.CreateSequenceRequest result = new com.google.showcase.v1beta1.CreateSequenceRequest(this);
-      if (sequenceBuilder_ == null) {
-        result.sequence_ = sequence_;
-      } else {
-        result.sequence_ = sequenceBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.CreateSequenceRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.sequence_ = sequenceBuilder_ == null
+            ? sequence_
+            : sequenceBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -407,7 +355,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.CreateSequenceRequest other
       if (other.hasSequence()) {
         mergeSequence(other.getSequence());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -422,19 +370,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.CreateSequenceRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getSequenceFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.CreateSequenceRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.showcase.v1beta1.Sequence sequence_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -444,7 +413,7 @@ public Builder mergeFrom(
      * @return Whether the sequence field is set.
      */
     public boolean hasSequence() {
-      return sequenceBuilder_ != null || sequence_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .google.showcase.v1beta1.Sequence sequence = 1;
@@ -466,11 +435,11 @@ public Builder setSequence(com.google.showcase.v1beta1.Sequence value) {
           throw new NullPointerException();
         }
         sequence_ = value;
-        onChanged();
       } else {
         sequenceBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -480,11 +449,11 @@ public Builder setSequence(
         com.google.showcase.v1beta1.Sequence.Builder builderForValue) {
       if (sequenceBuilder_ == null) {
         sequence_ = builderForValue.build();
-        onChanged();
       } else {
         sequenceBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -492,38 +461,38 @@ public Builder setSequence(
      */
     public Builder mergeSequence(com.google.showcase.v1beta1.Sequence value) {
       if (sequenceBuilder_ == null) {
-        if (sequence_ != null) {
-          sequence_ =
-            com.google.showcase.v1beta1.Sequence.newBuilder(sequence_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          sequence_ != null &&
+          sequence_ != com.google.showcase.v1beta1.Sequence.getDefaultInstance()) {
+          getSequenceBuilder().mergeFrom(value);
         } else {
           sequence_ = value;
         }
-        onChanged();
       } else {
         sequenceBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .google.showcase.v1beta1.Sequence sequence = 1;
      */
     public Builder clearSequence() {
-      if (sequenceBuilder_ == null) {
-        sequence_ = null;
-        onChanged();
-      } else {
-        sequence_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      sequence_ = null;
+      if (sequenceBuilder_ != null) {
+        sequenceBuilder_.dispose();
         sequenceBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .google.showcase.v1beta1.Sequence sequence = 1;
      */
     public com.google.showcase.v1beta1.Sequence.Builder getSequenceBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getSequenceFieldBuilder().getBuilder();
     }
@@ -587,7 +556,18 @@ public CreateSequenceRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new CreateSequenceRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateSessionRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateSessionRequest.java
index 2d2d8bfa81..6a20488a06 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateSessionRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateSessionRequest.java
@@ -34,58 +34,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private CreateSessionRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.showcase.v1beta1.Session.Builder subBuilder = null;
-            if (session_ != null) {
-              subBuilder = session_.toBuilder();
-            }
-            session_ = input.readMessage(com.google.showcase.v1beta1.Session.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(session_);
-              session_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_CreateSessionRequest_descriptor;
@@ -140,7 +88,7 @@ public com.google.showcase.v1beta1.Session getSession() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.SessionOrBuilder getSessionOrBuilder() {
-    return getSession();
+    return session_ == null ? com.google.showcase.v1beta1.Session.getDefaultInstance() : session_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -160,7 +108,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (session_ != null) {
       output.writeMessage(1, getSession());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -173,7 +121,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getSession());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -193,7 +141,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getSession()
           .equals(other.getSession())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -208,7 +156,7 @@ public int hashCode() {
       hash = (37 * hash) + SESSION_FIELD_NUMBER;
       hash = (53 * hash) + getSession().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -329,26 +277,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.CreateSessionRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (sessionBuilder_ == null) {
-        session_ = null;
-      } else {
-        session_ = null;
+      bitField0_ = 0;
+      session_ = null;
+      if (sessionBuilder_ != null) {
+        sessionBuilder_.dispose();
         sessionBuilder_ = null;
       }
       return this;
@@ -377,15 +320,20 @@ public com.google.showcase.v1beta1.CreateSessionRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.CreateSessionRequest buildPartial() {
       com.google.showcase.v1beta1.CreateSessionRequest result = new com.google.showcase.v1beta1.CreateSessionRequest(this);
-      if (sessionBuilder_ == null) {
-        result.session_ = session_;
-      } else {
-        result.session_ = sessionBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.CreateSessionRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.session_ = sessionBuilder_ == null
+            ? session_
+            : sessionBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -433,7 +381,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.CreateSessionRequest other)
       if (other.hasSession()) {
         mergeSession(other.getSession());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -448,19 +396,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.CreateSessionRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getSessionFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.CreateSessionRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.showcase.v1beta1.Session session_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -476,7 +445,7 @@ public Builder mergeFrom(
      * @return Whether the session field is set.
      */
     public boolean hasSession() {
-      return sessionBuilder_ != null || session_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -510,11 +479,11 @@ public Builder setSession(com.google.showcase.v1beta1.Session value) {
           throw new NullPointerException();
         }
         session_ = value;
-        onChanged();
       } else {
         sessionBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -530,11 +499,11 @@ public Builder setSession(
         com.google.showcase.v1beta1.Session.Builder builderForValue) {
       if (sessionBuilder_ == null) {
         session_ = builderForValue.build();
-        onChanged();
       } else {
         sessionBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -548,17 +517,18 @@ public Builder setSession(
      */
     public Builder mergeSession(com.google.showcase.v1beta1.Session value) {
       if (sessionBuilder_ == null) {
-        if (session_ != null) {
-          session_ =
-            com.google.showcase.v1beta1.Session.newBuilder(session_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          session_ != null &&
+          session_ != com.google.showcase.v1beta1.Session.getDefaultInstance()) {
+          getSessionBuilder().mergeFrom(value);
         } else {
           session_ = value;
         }
-        onChanged();
       } else {
         sessionBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -571,14 +541,13 @@ public Builder mergeSession(com.google.showcase.v1beta1.Session value) {
      * .google.showcase.v1beta1.Session session = 1;
      */
     public Builder clearSession() {
-      if (sessionBuilder_ == null) {
-        session_ = null;
-        onChanged();
-      } else {
-        session_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      session_ = null;
+      if (sessionBuilder_ != null) {
+        sessionBuilder_.dispose();
         sessionBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -591,7 +560,7 @@ public Builder clearSession() {
      * .google.showcase.v1beta1.Session session = 1;
      */
     public com.google.showcase.v1beta1.Session.Builder getSessionBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getSessionFieldBuilder().getBuilder();
     }
@@ -667,7 +636,18 @@ public CreateSessionRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new CreateSessionRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateUserRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateUserRequest.java
index 46ab7f0be0..1164eb3bf0 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateUserRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/CreateUserRequest.java
@@ -35,58 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private CreateUserRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.showcase.v1beta1.User.Builder subBuilder = null;
-            if (user_ != null) {
-              subBuilder = user_.toBuilder();
-            }
-            user_ = input.readMessage(com.google.showcase.v1beta1.User.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(user_);
-              user_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.IdentityOuterClass.internal_static_google_showcase_v1beta1_CreateUserRequest_descriptor;
@@ -135,7 +83,7 @@ public com.google.showcase.v1beta1.User getUser() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.UserOrBuilder getUserOrBuilder() {
-    return getUser();
+    return user_ == null ? com.google.showcase.v1beta1.User.getDefaultInstance() : user_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -155,7 +103,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (user_ != null) {
       output.writeMessage(1, getUser());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -168,7 +116,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getUser());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -188,7 +136,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getUser()
           .equals(other.getUser())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -203,7 +151,7 @@ public int hashCode() {
       hash = (37 * hash) + USER_FIELD_NUMBER;
       hash = (53 * hash) + getUser().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -325,26 +273,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.CreateUserRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (userBuilder_ == null) {
-        user_ = null;
-      } else {
-        user_ = null;
+      bitField0_ = 0;
+      user_ = null;
+      if (userBuilder_ != null) {
+        userBuilder_.dispose();
         userBuilder_ = null;
       }
       return this;
@@ -373,15 +316,20 @@ public com.google.showcase.v1beta1.CreateUserRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.CreateUserRequest buildPartial() {
       com.google.showcase.v1beta1.CreateUserRequest result = new com.google.showcase.v1beta1.CreateUserRequest(this);
-      if (userBuilder_ == null) {
-        result.user_ = user_;
-      } else {
-        result.user_ = userBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.CreateUserRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.user_ = userBuilder_ == null
+            ? user_
+            : userBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -429,7 +377,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.CreateUserRequest other) {
       if (other.hasUser()) {
         mergeUser(other.getUser());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -444,19 +392,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.CreateUserRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getUserFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.CreateUserRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.showcase.v1beta1.User user_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -470,7 +439,7 @@ public Builder mergeFrom(
      * @return Whether the user field is set.
      */
     public boolean hasUser() {
-      return userBuilder_ != null || user_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -500,11 +469,11 @@ public Builder setUser(com.google.showcase.v1beta1.User value) {
           throw new NullPointerException();
         }
         user_ = value;
-        onChanged();
       } else {
         userBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -518,11 +487,11 @@ public Builder setUser(
         com.google.showcase.v1beta1.User.Builder builderForValue) {
       if (userBuilder_ == null) {
         user_ = builderForValue.build();
-        onChanged();
       } else {
         userBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -534,17 +503,18 @@ public Builder setUser(
      */
     public Builder mergeUser(com.google.showcase.v1beta1.User value) {
       if (userBuilder_ == null) {
-        if (user_ != null) {
-          user_ =
-            com.google.showcase.v1beta1.User.newBuilder(user_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          user_ != null &&
+          user_ != com.google.showcase.v1beta1.User.getDefaultInstance()) {
+          getUserBuilder().mergeFrom(value);
         } else {
           user_ = value;
         }
-        onChanged();
       } else {
         userBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -555,14 +525,13 @@ public Builder mergeUser(com.google.showcase.v1beta1.User value) {
      * .google.showcase.v1beta1.User user = 1;
      */
     public Builder clearUser() {
-      if (userBuilder_ == null) {
-        user_ = null;
-        onChanged();
-      } else {
-        user_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      user_ = null;
+      if (userBuilder_ != null) {
+        userBuilder_.dispose();
         userBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -573,7 +542,7 @@ public Builder clearUser() {
      * .google.showcase.v1beta1.User user = 1;
      */
     public com.google.showcase.v1beta1.User.Builder getUserBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getUserFieldBuilder().getBuilder();
     }
@@ -645,7 +614,18 @@ public CreateUserRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new CreateUserRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteBlurbRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteBlurbRequest.java
index 5d3da97880..37948407ed 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteBlurbRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteBlurbRequest.java
@@ -36,51 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private DeleteBlurbRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_DeleteBlurbRequest_descriptor;
@@ -95,7 +50,8 @@ private DeleteBlurbRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The resource name of the requested blurb.
@@ -157,7 +113,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -169,7 +125,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -186,7 +142,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -199,7 +155,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -321,24 +277,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.DeleteBlurbRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       return this;
     }
 
@@ -365,11 +316,18 @@ public com.google.showcase.v1beta1.DeleteBlurbRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.DeleteBlurbRequest buildPartial() {
       com.google.showcase.v1beta1.DeleteBlurbRequest result = new com.google.showcase.v1beta1.DeleteBlurbRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.DeleteBlurbRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -416,9 +374,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.DeleteBlurbRequest other) {
       if (other == com.google.showcase.v1beta1.DeleteBlurbRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -433,19 +392,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.DeleteBlurbRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.DeleteBlurbRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -500,11 +478,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -517,8 +493,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -533,12 +509,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -575,7 +549,18 @@ public DeleteBlurbRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new DeleteBlurbRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteRoomRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteRoomRequest.java
index 2195ae35ea..22af5de200 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteRoomRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteRoomRequest.java
@@ -36,51 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private DeleteRoomRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_DeleteRoomRequest_descriptor;
@@ -95,7 +50,8 @@ private DeleteRoomRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The resource name of the requested room.
@@ -157,7 +113,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -169,7 +125,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -186,7 +142,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -199,7 +155,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -321,24 +277,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.DeleteRoomRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       return this;
     }
 
@@ -365,11 +316,18 @@ public com.google.showcase.v1beta1.DeleteRoomRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.DeleteRoomRequest buildPartial() {
       com.google.showcase.v1beta1.DeleteRoomRequest result = new com.google.showcase.v1beta1.DeleteRoomRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.DeleteRoomRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -416,9 +374,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.DeleteRoomRequest other) {
       if (other == com.google.showcase.v1beta1.DeleteRoomRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -433,19 +392,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.DeleteRoomRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.DeleteRoomRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -500,11 +478,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -517,8 +493,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -533,12 +509,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -575,7 +549,18 @@ public DeleteRoomRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new DeleteRoomRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteSessionRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteSessionRequest.java
index c19f242654..5dc2f44c60 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteSessionRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteSessionRequest.java
@@ -35,51 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private DeleteSessionRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_DeleteSessionRequest_descriptor;
@@ -94,7 +49,8 @@ private DeleteSessionRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The session to be deleted.
@@ -156,7 +112,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -168,7 +124,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -185,7 +141,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -198,7 +154,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -319,24 +275,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.DeleteSessionRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       return this;
     }
 
@@ -363,11 +314,18 @@ public com.google.showcase.v1beta1.DeleteSessionRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.DeleteSessionRequest buildPartial() {
       com.google.showcase.v1beta1.DeleteSessionRequest result = new com.google.showcase.v1beta1.DeleteSessionRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.DeleteSessionRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -414,9 +372,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.DeleteSessionRequest other)
       if (other == com.google.showcase.v1beta1.DeleteSessionRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -431,19 +390,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.DeleteSessionRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.DeleteSessionRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -498,11 +476,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -515,8 +491,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -531,12 +507,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -573,7 +547,18 @@ public DeleteSessionRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new DeleteSessionRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteTestRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteTestRequest.java
index 0375608a88..5668a946ff 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteTestRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteTestRequest.java
@@ -35,51 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private DeleteTestRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_DeleteTestRequest_descriptor;
@@ -94,7 +49,8 @@ private DeleteTestRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The test to be deleted.
@@ -156,7 +112,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -168,7 +124,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -185,7 +141,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -198,7 +154,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -319,24 +275,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.DeleteTestRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       return this;
     }
 
@@ -363,11 +314,18 @@ public com.google.showcase.v1beta1.DeleteTestRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.DeleteTestRequest buildPartial() {
       com.google.showcase.v1beta1.DeleteTestRequest result = new com.google.showcase.v1beta1.DeleteTestRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.DeleteTestRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -414,9 +372,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.DeleteTestRequest other) {
       if (other == com.google.showcase.v1beta1.DeleteTestRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -431,19 +390,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.DeleteTestRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.DeleteTestRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -498,11 +476,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -515,8 +491,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -531,12 +507,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -573,7 +547,18 @@ public DeleteTestRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new DeleteTestRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteUserRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteUserRequest.java
index c1726da0cd..1e0248e6f0 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteUserRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/DeleteUserRequest.java
@@ -36,51 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private DeleteUserRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.IdentityOuterClass.internal_static_google_showcase_v1beta1_DeleteUserRequest_descriptor;
@@ -95,7 +50,8 @@ private DeleteUserRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The resource name of the user to delete.
@@ -157,7 +113,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -169,7 +125,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -186,7 +142,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -199,7 +155,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -321,24 +277,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.DeleteUserRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       return this;
     }
 
@@ -365,11 +316,18 @@ public com.google.showcase.v1beta1.DeleteUserRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.DeleteUserRequest buildPartial() {
       com.google.showcase.v1beta1.DeleteUserRequest result = new com.google.showcase.v1beta1.DeleteUserRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.DeleteUserRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -416,9 +374,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.DeleteUserRequest other) {
       if (other == com.google.showcase.v1beta1.DeleteUserRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -433,19 +392,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.DeleteUserRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.DeleteUserRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -500,11 +478,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -517,8 +493,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -533,12 +509,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -575,7 +549,18 @@ public DeleteUserRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new DeleteUserRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EchoRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EchoRequest.java
index 7fb30c11fe..5cf123e2ff 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EchoRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EchoRequest.java
@@ -40,83 +40,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private EchoRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-            responseCase_ = 1;
-            response_ = s;
-            break;
-          }
-          case 18: {
-            com.google.rpc.Status.Builder subBuilder = null;
-            if (responseCase_ == 2) {
-              subBuilder = ((com.google.rpc.Status) response_).toBuilder();
-            }
-            response_ =
-                input.readMessage(com.google.rpc.Status.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((com.google.rpc.Status) response_);
-              response_ = subBuilder.buildPartial();
-            }
-            responseCase_ = 2;
-            break;
-          }
-          case 24: {
-            int rawValue = input.readEnum();
-
-            severity_ = rawValue;
-            break;
-          }
-          case 34: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            header_ = s;
-            break;
-          }
-          case 42: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            otherHeader_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_EchoRequest_descriptor;
@@ -279,7 +202,7 @@ public com.google.rpc.StatusOrBuilder getErrorOrBuilder() {
   }
 
   public static final int SEVERITY_FIELD_NUMBER = 3;
-  private int severity_;
+  private int severity_ = 0;
   /**
    * 
    * The severity to be echoed by the server.
@@ -300,13 +223,13 @@ public com.google.rpc.StatusOrBuilder getErrorOrBuilder() {
    * @return The severity.
    */
   @java.lang.Override public com.google.showcase.v1beta1.Severity getSeverity() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.Severity result = com.google.showcase.v1beta1.Severity.valueOf(severity_);
+    com.google.showcase.v1beta1.Severity result = com.google.showcase.v1beta1.Severity.forNumber(severity_);
     return result == null ? com.google.showcase.v1beta1.Severity.UNRECOGNIZED : result;
   }
 
   public static final int HEADER_FIELD_NUMBER = 4;
-  private volatile java.lang.Object header_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object header_ = "";
   /**
    * 
    * Optional. This field can be set to test the routing annotation on the Echo method.
@@ -352,7 +275,8 @@ public java.lang.String getHeader() {
   }
 
   public static final int OTHER_HEADER_FIELD_NUMBER = 5;
-  private volatile java.lang.Object otherHeader_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object otherHeader_ = "";
   /**
    * 
    * Optional. This field can be set to test the routing annotation on the Echo method.
@@ -426,7 +350,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(otherHeader_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 5, otherHeader_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -452,7 +376,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(otherHeader_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, otherHeader_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -485,7 +409,7 @@ public boolean equals(final java.lang.Object obj) {
       case 0:
       default:
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -514,7 +438,7 @@ public int hashCode() {
       case 0:
       default:
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -638,28 +562,24 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.EchoRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
+      if (errorBuilder_ != null) {
+        errorBuilder_.clear();
+      }
       severity_ = 0;
-
       header_ = "";
-
       otherHeader_ = "";
-
       responseCase_ = 0;
       response_ = null;
       return this;
@@ -688,22 +608,32 @@ public com.google.showcase.v1beta1.EchoRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.EchoRequest buildPartial() {
       com.google.showcase.v1beta1.EchoRequest result = new com.google.showcase.v1beta1.EchoRequest(this);
-      if (responseCase_ == 1) {
-        result.response_ = response_;
+      if (bitField0_ != 0) { buildPartial0(result); }
+      buildPartialOneofs(result);
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.EchoRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.severity_ = severity_;
       }
-      if (responseCase_ == 2) {
-        if (errorBuilder_ == null) {
-          result.response_ = response_;
-        } else {
-          result.response_ = errorBuilder_.build();
-        }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.header_ = header_;
+      }
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.otherHeader_ = otherHeader_;
       }
-      result.severity_ = severity_;
-      result.header_ = header_;
-      result.otherHeader_ = otherHeader_;
+    }
+
+    private void buildPartialOneofs(com.google.showcase.v1beta1.EchoRequest result) {
       result.responseCase_ = responseCase_;
-      onBuilt();
-      return result;
+      result.response_ = this.response_;
+      if (responseCase_ == 2 &&
+          errorBuilder_ != null) {
+        result.response_ = errorBuilder_.build();
+      }
     }
 
     @java.lang.Override
@@ -755,10 +685,12 @@ public Builder mergeFrom(com.google.showcase.v1beta1.EchoRequest other) {
       }
       if (!other.getHeader().isEmpty()) {
         header_ = other.header_;
+        bitField0_ |= 0x00000008;
         onChanged();
       }
       if (!other.getOtherHeader().isEmpty()) {
         otherHeader_ = other.otherHeader_;
+        bitField0_ |= 0x00000010;
         onChanged();
       }
       switch (other.getResponseCase()) {
@@ -776,7 +708,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.EchoRequest other) {
           break;
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -791,17 +723,58 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.EchoRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              java.lang.String s = input.readStringRequireUtf8();
+              responseCase_ = 1;
+              response_ = s;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getErrorFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              responseCase_ = 2;
+              break;
+            } // case 18
+            case 24: {
+              severity_ = input.readEnum();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 34: {
+              header_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 34
+            case 42: {
+              otherHeader_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000010;
+              break;
+            } // case 42
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.EchoRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int responseCase_ = 0;
@@ -819,6 +792,7 @@ public Builder clearResponse() {
       return this;
     }
 
+    private int bitField0_;
 
     /**
      * 
@@ -896,10 +870,8 @@ public java.lang.String getContent() {
      */
     public Builder setContent(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  responseCase_ = 1;
+      if (value == null) { throw new NullPointerException(); }
+      responseCase_ = 1;
       response_ = value;
       onChanged();
       return this;
@@ -931,10 +903,8 @@ public Builder clearContent() {
      */
     public Builder setContentBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       responseCase_ = 1;
       response_ = value;
       onChanged();
@@ -1115,7 +1085,7 @@ public com.google.rpc.StatusOrBuilder getErrorOrBuilder() {
         response_ = null;
       }
       responseCase_ = 2;
-      onChanged();;
+      onChanged();
       return errorBuilder_;
     }
 
@@ -1141,8 +1111,8 @@ public com.google.rpc.StatusOrBuilder getErrorOrBuilder() {
      * @return This builder for chaining.
      */
     public Builder setSeverityValue(int value) {
-      
       severity_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1156,8 +1126,7 @@ public Builder setSeverityValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.Severity getSeverity() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.Severity result = com.google.showcase.v1beta1.Severity.valueOf(severity_);
+      com.google.showcase.v1beta1.Severity result = com.google.showcase.v1beta1.Severity.forNumber(severity_);
       return result == null ? com.google.showcase.v1beta1.Severity.UNRECOGNIZED : result;
     }
     /**
@@ -1173,7 +1142,7 @@ public Builder setSeverity(com.google.showcase.v1beta1.Severity value) {
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000004;
       severity_ = value.getNumber();
       onChanged();
       return this;
@@ -1187,7 +1156,7 @@ public Builder setSeverity(com.google.showcase.v1beta1.Severity value) {
      * @return This builder for chaining.
      */
     public Builder clearSeverity() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       severity_ = 0;
       onChanged();
       return this;
@@ -1246,11 +1215,9 @@ public java.lang.String getHeader() {
      */
     public Builder setHeader(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       header_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1263,8 +1230,8 @@ public Builder setHeader(
      * @return This builder for chaining.
      */
     public Builder clearHeader() {
-      
       header_ = getDefaultInstance().getHeader();
+      bitField0_ = (bitField0_ & ~0x00000008);
       onChanged();
       return this;
     }
@@ -1279,12 +1246,10 @@ public Builder clearHeader() {
      */
     public Builder setHeaderBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       header_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1342,11 +1307,9 @@ public java.lang.String getOtherHeader() {
      */
     public Builder setOtherHeader(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       otherHeader_ = value;
+      bitField0_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -1359,8 +1322,8 @@ public Builder setOtherHeader(
      * @return This builder for chaining.
      */
     public Builder clearOtherHeader() {
-      
       otherHeader_ = getDefaultInstance().getOtherHeader();
+      bitField0_ = (bitField0_ & ~0x00000010);
       onChanged();
       return this;
     }
@@ -1375,12 +1338,10 @@ public Builder clearOtherHeader() {
      */
     public Builder setOtherHeaderBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       otherHeader_ = value;
+      bitField0_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -1417,7 +1378,18 @@ public EchoRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new EchoRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EchoResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EchoResponse.java
index 7173d88f4b..7b6d388734 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EchoResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EchoResponse.java
@@ -36,57 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private EchoResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            content_ = s;
-            break;
-          }
-          case 16: {
-            int rawValue = input.readEnum();
-
-            severity_ = rawValue;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_EchoResponse_descriptor;
@@ -101,7 +50,8 @@ private EchoResponse(
   }
 
   public static final int CONTENT_FIELD_NUMBER = 1;
-  private volatile java.lang.Object content_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object content_ = "";
   /**
    * 
    * The content specified in the request.
@@ -147,7 +97,7 @@ public java.lang.String getContent() {
   }
 
   public static final int SEVERITY_FIELD_NUMBER = 2;
-  private int severity_;
+  private int severity_ = 0;
   /**
    * 
    * The severity specified in the request.
@@ -168,8 +118,7 @@ public java.lang.String getContent() {
    * @return The severity.
    */
   @java.lang.Override public com.google.showcase.v1beta1.Severity getSeverity() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.Severity result = com.google.showcase.v1beta1.Severity.valueOf(severity_);
+    com.google.showcase.v1beta1.Severity result = com.google.showcase.v1beta1.Severity.forNumber(severity_);
     return result == null ? com.google.showcase.v1beta1.Severity.UNRECOGNIZED : result;
   }
 
@@ -193,7 +142,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (severity_ != com.google.showcase.v1beta1.Severity.UNNECESSARY.getNumber()) {
       output.writeEnum(2, severity_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -209,7 +158,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(2, severity_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -227,7 +176,7 @@ public boolean equals(final java.lang.Object obj) {
     if (!getContent()
         .equals(other.getContent())) return false;
     if (severity_ != other.severity_) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -242,7 +191,7 @@ public int hashCode() {
     hash = (53 * hash) + getContent().hashCode();
     hash = (37 * hash) + SEVERITY_FIELD_NUMBER;
     hash = (53 * hash) + severity_;
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -363,26 +312,20 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.EchoResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       content_ = "";
-
       severity_ = 0;
-
       return this;
     }
 
@@ -409,12 +352,21 @@ public com.google.showcase.v1beta1.EchoResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.EchoResponse buildPartial() {
       com.google.showcase.v1beta1.EchoResponse result = new com.google.showcase.v1beta1.EchoResponse(this);
-      result.content_ = content_;
-      result.severity_ = severity_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.EchoResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.content_ = content_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.severity_ = severity_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -461,12 +413,13 @@ public Builder mergeFrom(com.google.showcase.v1beta1.EchoResponse other) {
       if (other == com.google.showcase.v1beta1.EchoResponse.getDefaultInstance()) return this;
       if (!other.getContent().isEmpty()) {
         content_ = other.content_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.severity_ != 0) {
         setSeverityValue(other.getSeverityValue());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -481,19 +434,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.EchoResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              content_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              severity_ = input.readEnum();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.EchoResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object content_ = "";
     /**
@@ -548,11 +525,9 @@ public java.lang.String getContent() {
      */
     public Builder setContent(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       content_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -565,8 +540,8 @@ public Builder setContent(
      * @return This builder for chaining.
      */
     public Builder clearContent() {
-      
       content_ = getDefaultInstance().getContent();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -581,12 +556,10 @@ public Builder clearContent() {
      */
     public Builder setContentBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       content_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -613,8 +586,8 @@ public Builder setContentBytes(
      * @return This builder for chaining.
      */
     public Builder setSeverityValue(int value) {
-      
       severity_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -628,8 +601,7 @@ public Builder setSeverityValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.Severity getSeverity() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.Severity result = com.google.showcase.v1beta1.Severity.valueOf(severity_);
+      com.google.showcase.v1beta1.Severity result = com.google.showcase.v1beta1.Severity.forNumber(severity_);
       return result == null ? com.google.showcase.v1beta1.Severity.UNRECOGNIZED : result;
     }
     /**
@@ -645,7 +617,7 @@ public Builder setSeverity(com.google.showcase.v1beta1.Severity value) {
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000002;
       severity_ = value.getNumber();
       onChanged();
       return this;
@@ -659,7 +631,7 @@ public Builder setSeverity(com.google.showcase.v1beta1.Severity value) {
      * @return This builder for chaining.
      */
     public Builder clearSeverity() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       severity_ = 0;
       onChanged();
       return this;
@@ -697,7 +669,18 @@ public EchoResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new EchoResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EnumRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EnumRequest.java
index a24e5e4b9a..098ae16ab5 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EnumRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EnumRequest.java
@@ -30,50 +30,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private EnumRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 8: {
-
-            unknownEnum_ = input.readBool();
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.ComplianceOuterClass.internal_static_google_showcase_v1beta1_EnumRequest_descriptor;
@@ -88,7 +44,7 @@ private EnumRequest(
   }
 
   public static final int UNKNOWN_ENUM_FIELD_NUMBER = 1;
-  private boolean unknownEnum_;
+  private boolean unknownEnum_ = false;
   /**
    * 
    * Whether the client is requesting a new, unknown enum value or a known enum value already declard in this proto file.
@@ -119,7 +75,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (unknownEnum_ != false) {
       output.writeBool(1, unknownEnum_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -132,7 +88,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeBoolSize(1, unknownEnum_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -149,7 +105,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (getUnknownEnum()
         != other.getUnknownEnum()) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -163,7 +119,7 @@ public int hashCode() {
     hash = (37 * hash) + UNKNOWN_ENUM_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
         getUnknownEnum());
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -280,24 +236,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.EnumRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       unknownEnum_ = false;
-
       return this;
     }
 
@@ -324,11 +275,18 @@ public com.google.showcase.v1beta1.EnumRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.EnumRequest buildPartial() {
       com.google.showcase.v1beta1.EnumRequest result = new com.google.showcase.v1beta1.EnumRequest(this);
-      result.unknownEnum_ = unknownEnum_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.EnumRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.unknownEnum_ = unknownEnum_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -376,7 +334,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.EnumRequest other) {
       if (other.getUnknownEnum() != false) {
         setUnknownEnum(other.getUnknownEnum());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -391,19 +349,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.EnumRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              unknownEnum_ = input.readBool();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.EnumRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private boolean unknownEnum_ ;
     /**
@@ -430,6 +407,7 @@ public boolean getUnknownEnum() {
     public Builder setUnknownEnum(boolean value) {
       
       unknownEnum_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -442,7 +420,7 @@ public Builder setUnknownEnum(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearUnknownEnum() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       unknownEnum_ = false;
       onChanged();
       return this;
@@ -480,7 +458,18 @@ public EnumRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new EnumRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EnumResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EnumResponse.java
index d3908f7a0b..98bd56fdce 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EnumResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/EnumResponse.java
@@ -31,64 +31,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private EnumResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.showcase.v1beta1.EnumRequest.Builder subBuilder = null;
-            if (request_ != null) {
-              subBuilder = request_.toBuilder();
-            }
-            request_ = input.readMessage(com.google.showcase.v1beta1.EnumRequest.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(request_);
-              request_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 16: {
-            int rawValue = input.readEnum();
-
-            continent_ = rawValue;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.ComplianceOuterClass.internal_static_google_showcase_v1beta1_EnumResponse_descriptor;
@@ -137,11 +79,11 @@ public com.google.showcase.v1beta1.EnumRequest getRequest() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.EnumRequestOrBuilder getRequestOrBuilder() {
-    return getRequest();
+    return request_ == null ? com.google.showcase.v1beta1.EnumRequest.getDefaultInstance() : request_;
   }
 
   public static final int CONTINENT_FIELD_NUMBER = 2;
-  private int continent_;
+  private int continent_ = 0;
   /**
    * 
    * The actual enum the server provided.
@@ -162,8 +104,7 @@ public com.google.showcase.v1beta1.EnumRequestOrBuilder getRequestOrBuilder() {
    * @return The continent.
    */
   @java.lang.Override public com.google.showcase.v1beta1.Continent getContinent() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.Continent result = com.google.showcase.v1beta1.Continent.valueOf(continent_);
+    com.google.showcase.v1beta1.Continent result = com.google.showcase.v1beta1.Continent.forNumber(continent_);
     return result == null ? com.google.showcase.v1beta1.Continent.UNRECOGNIZED : result;
   }
 
@@ -187,7 +128,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (continent_ != com.google.showcase.v1beta1.Continent.CONTINENT_UNSPECIFIED.getNumber()) {
       output.writeEnum(2, continent_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -204,7 +145,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(2, continent_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -225,7 +166,7 @@ public boolean equals(final java.lang.Object obj) {
           .equals(other.getRequest())) return false;
     }
     if (continent_ != other.continent_) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -242,7 +183,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + CONTINENT_FIELD_NUMBER;
     hash = (53 * hash) + continent_;
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -359,30 +300,24 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.EnumResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (requestBuilder_ == null) {
-        request_ = null;
-      } else {
-        request_ = null;
+      bitField0_ = 0;
+      request_ = null;
+      if (requestBuilder_ != null) {
+        requestBuilder_.dispose();
         requestBuilder_ = null;
       }
       continent_ = 0;
-
       return this;
     }
 
@@ -409,16 +344,23 @@ public com.google.showcase.v1beta1.EnumResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.EnumResponse buildPartial() {
       com.google.showcase.v1beta1.EnumResponse result = new com.google.showcase.v1beta1.EnumResponse(this);
-      if (requestBuilder_ == null) {
-        result.request_ = request_;
-      } else {
-        result.request_ = requestBuilder_.build();
-      }
-      result.continent_ = continent_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.EnumResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.request_ = requestBuilder_ == null
+            ? request_
+            : requestBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.continent_ = continent_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -469,7 +411,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.EnumResponse other) {
       if (other.continent_ != 0) {
         setContinentValue(other.getContinentValue());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -484,19 +426,45 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.EnumResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getRequestFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              continent_ = input.readEnum();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.EnumResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.showcase.v1beta1.EnumRequest request_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -510,7 +478,7 @@ public Builder mergeFrom(
      * @return Whether the request field is set.
      */
     public boolean hasRequest() {
-      return requestBuilder_ != null || request_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -540,11 +508,11 @@ public Builder setRequest(com.google.showcase.v1beta1.EnumRequest value) {
           throw new NullPointerException();
         }
         request_ = value;
-        onChanged();
       } else {
         requestBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -558,11 +526,11 @@ public Builder setRequest(
         com.google.showcase.v1beta1.EnumRequest.Builder builderForValue) {
       if (requestBuilder_ == null) {
         request_ = builderForValue.build();
-        onChanged();
       } else {
         requestBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -574,17 +542,18 @@ public Builder setRequest(
      */
     public Builder mergeRequest(com.google.showcase.v1beta1.EnumRequest value) {
       if (requestBuilder_ == null) {
-        if (request_ != null) {
-          request_ =
-            com.google.showcase.v1beta1.EnumRequest.newBuilder(request_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          request_ != null &&
+          request_ != com.google.showcase.v1beta1.EnumRequest.getDefaultInstance()) {
+          getRequestBuilder().mergeFrom(value);
         } else {
           request_ = value;
         }
-        onChanged();
       } else {
         requestBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -595,14 +564,13 @@ public Builder mergeRequest(com.google.showcase.v1beta1.EnumRequest value) {
      * .google.showcase.v1beta1.EnumRequest request = 1;
      */
     public Builder clearRequest() {
-      if (requestBuilder_ == null) {
-        request_ = null;
-        onChanged();
-      } else {
-        request_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      request_ = null;
+      if (requestBuilder_ != null) {
+        requestBuilder_.dispose();
         requestBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -613,7 +581,7 @@ public Builder clearRequest() {
      * .google.showcase.v1beta1.EnumRequest request = 1;
      */
     public com.google.showcase.v1beta1.EnumRequest.Builder getRequestBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getRequestFieldBuilder().getBuilder();
     }
@@ -675,8 +643,8 @@ public com.google.showcase.v1beta1.EnumRequestOrBuilder getRequestOrBuilder() {
      * @return This builder for chaining.
      */
     public Builder setContinentValue(int value) {
-      
       continent_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -690,8 +658,7 @@ public Builder setContinentValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.Continent getContinent() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.Continent result = com.google.showcase.v1beta1.Continent.valueOf(continent_);
+      com.google.showcase.v1beta1.Continent result = com.google.showcase.v1beta1.Continent.forNumber(continent_);
       return result == null ? com.google.showcase.v1beta1.Continent.UNRECOGNIZED : result;
     }
     /**
@@ -707,7 +674,7 @@ public Builder setContinent(com.google.showcase.v1beta1.Continent value) {
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000002;
       continent_ = value.getNumber();
       onChanged();
       return this;
@@ -721,7 +688,7 @@ public Builder setContinent(com.google.showcase.v1beta1.Continent value) {
      * @return This builder for chaining.
      */
     public Builder clearContinent() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       continent_ = 0;
       onChanged();
       return this;
@@ -759,7 +726,18 @@ public EnumResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new EnumResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ExpandRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ExpandRequest.java
index 0ced33e1c2..35b7500bbb 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ExpandRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ExpandRequest.java
@@ -35,64 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ExpandRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            content_ = s;
-            break;
-          }
-          case 18: {
-            com.google.rpc.Status.Builder subBuilder = null;
-            if (error_ != null) {
-              subBuilder = error_.toBuilder();
-            }
-            error_ = input.readMessage(com.google.rpc.Status.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(error_);
-              error_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_ExpandRequest_descriptor;
@@ -107,7 +49,8 @@ private ExpandRequest(
   }
 
   public static final int CONTENT_FIELD_NUMBER = 1;
-  private volatile java.lang.Object content_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object content_ = "";
   /**
    * 
    * The content that will be split into words and returned on the stream.
@@ -187,7 +130,7 @@ public com.google.rpc.Status getError() {
    */
   @java.lang.Override
   public com.google.rpc.StatusOrBuilder getErrorOrBuilder() {
-    return getError();
+    return error_ == null ? com.google.rpc.Status.getDefaultInstance() : error_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -210,7 +153,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (error_ != null) {
       output.writeMessage(2, getError());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -226,7 +169,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, getError());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -248,7 +191,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getError()
           .equals(other.getError())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -265,7 +208,7 @@ public int hashCode() {
       hash = (37 * hash) + ERROR_FIELD_NUMBER;
       hash = (53 * hash) + getError().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -386,28 +329,22 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ExpandRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       content_ = "";
-
-      if (errorBuilder_ == null) {
-        error_ = null;
-      } else {
-        error_ = null;
+      error_ = null;
+      if (errorBuilder_ != null) {
+        errorBuilder_.dispose();
         errorBuilder_ = null;
       }
       return this;
@@ -436,16 +373,23 @@ public com.google.showcase.v1beta1.ExpandRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ExpandRequest buildPartial() {
       com.google.showcase.v1beta1.ExpandRequest result = new com.google.showcase.v1beta1.ExpandRequest(this);
-      result.content_ = content_;
-      if (errorBuilder_ == null) {
-        result.error_ = error_;
-      } else {
-        result.error_ = errorBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.ExpandRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.content_ = content_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.error_ = errorBuilder_ == null
+            ? error_
+            : errorBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -492,12 +436,13 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ExpandRequest other) {
       if (other == com.google.showcase.v1beta1.ExpandRequest.getDefaultInstance()) return this;
       if (!other.getContent().isEmpty()) {
         content_ = other.content_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.hasError()) {
         mergeError(other.getError());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -512,19 +457,45 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ExpandRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              content_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getErrorFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ExpandRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object content_ = "";
     /**
@@ -579,11 +550,9 @@ public java.lang.String getContent() {
      */
     public Builder setContent(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       content_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -596,8 +565,8 @@ public Builder setContent(
      * @return This builder for chaining.
      */
     public Builder clearContent() {
-      
       content_ = getDefaultInstance().getContent();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -612,12 +581,10 @@ public Builder clearContent() {
      */
     public Builder setContentBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       content_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -634,7 +601,7 @@ public Builder setContentBytes(
      * @return Whether the error field is set.
      */
     public boolean hasError() {
-      return errorBuilder_ != null || error_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -664,11 +631,11 @@ public Builder setError(com.google.rpc.Status value) {
           throw new NullPointerException();
         }
         error_ = value;
-        onChanged();
       } else {
         errorBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -682,11 +649,11 @@ public Builder setError(
         com.google.rpc.Status.Builder builderForValue) {
       if (errorBuilder_ == null) {
         error_ = builderForValue.build();
-        onChanged();
       } else {
         errorBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -698,17 +665,18 @@ public Builder setError(
      */
     public Builder mergeError(com.google.rpc.Status value) {
       if (errorBuilder_ == null) {
-        if (error_ != null) {
-          error_ =
-            com.google.rpc.Status.newBuilder(error_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000002) != 0) &&
+          error_ != null &&
+          error_ != com.google.rpc.Status.getDefaultInstance()) {
+          getErrorBuilder().mergeFrom(value);
         } else {
           error_ = value;
         }
-        onChanged();
       } else {
         errorBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -719,14 +687,13 @@ public Builder mergeError(com.google.rpc.Status value) {
      * .google.rpc.Status error = 2;
      */
     public Builder clearError() {
-      if (errorBuilder_ == null) {
-        error_ = null;
-        onChanged();
-      } else {
-        error_ = null;
+      bitField0_ = (bitField0_ & ~0x00000002);
+      error_ = null;
+      if (errorBuilder_ != null) {
+        errorBuilder_.dispose();
         errorBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -737,7 +704,7 @@ public Builder clearError() {
      * .google.rpc.Status error = 2;
      */
     public com.google.rpc.Status.Builder getErrorBuilder() {
-      
+      bitField0_ |= 0x00000002;
       onChanged();
       return getErrorFieldBuilder().getBuilder();
     }
@@ -809,7 +776,18 @@ public ExpandRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ExpandRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetBlurbRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetBlurbRequest.java
index 0080047610..73f169ec05 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetBlurbRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetBlurbRequest.java
@@ -36,51 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private GetBlurbRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_GetBlurbRequest_descriptor;
@@ -95,7 +50,8 @@ private GetBlurbRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The resource name of the requested blurb.
@@ -157,7 +113,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -169,7 +125,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -186,7 +142,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -199,7 +155,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -321,24 +277,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.GetBlurbRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       return this;
     }
 
@@ -365,11 +316,18 @@ public com.google.showcase.v1beta1.GetBlurbRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.GetBlurbRequest buildPartial() {
       com.google.showcase.v1beta1.GetBlurbRequest result = new com.google.showcase.v1beta1.GetBlurbRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.GetBlurbRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -416,9 +374,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.GetBlurbRequest other) {
       if (other == com.google.showcase.v1beta1.GetBlurbRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -433,19 +392,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.GetBlurbRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.GetBlurbRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -500,11 +478,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -517,8 +493,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -533,12 +509,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -575,7 +549,18 @@ public GetBlurbRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new GetBlurbRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetRoomRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetRoomRequest.java
index 742722b6cb..80285bfdb2 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetRoomRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetRoomRequest.java
@@ -36,51 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private GetRoomRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_GetRoomRequest_descriptor;
@@ -95,7 +50,8 @@ private GetRoomRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The resource name of the requested room.
@@ -157,7 +113,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -169,7 +125,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -186,7 +142,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -199,7 +155,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -321,24 +277,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.GetRoomRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       return this;
     }
 
@@ -365,11 +316,18 @@ public com.google.showcase.v1beta1.GetRoomRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.GetRoomRequest buildPartial() {
       com.google.showcase.v1beta1.GetRoomRequest result = new com.google.showcase.v1beta1.GetRoomRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.GetRoomRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -416,9 +374,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.GetRoomRequest other) {
       if (other == com.google.showcase.v1beta1.GetRoomRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -433,19 +392,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.GetRoomRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.GetRoomRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -500,11 +478,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -517,8 +493,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -533,12 +509,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -575,7 +549,18 @@ public GetRoomRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new GetRoomRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetSequenceReportRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetSequenceReportRequest.java
index 9864b1d455..2ed1542d94 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetSequenceReportRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetSequenceReportRequest.java
@@ -31,51 +31,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private GetSequenceReportRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.SequenceOuterClass.internal_static_google_showcase_v1beta1_GetSequenceReportRequest_descriptor;
@@ -90,7 +45,8 @@ private GetSequenceReportRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... }
    * @return The name.
@@ -144,7 +100,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -156,7 +112,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -173,7 +129,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -186,7 +142,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -303,24 +259,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.GetSequenceReportRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       return this;
     }
 
@@ -347,11 +298,18 @@ public com.google.showcase.v1beta1.GetSequenceReportRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.GetSequenceReportRequest buildPartial() {
       com.google.showcase.v1beta1.GetSequenceReportRequest result = new com.google.showcase.v1beta1.GetSequenceReportRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.GetSequenceReportRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -398,9 +356,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.GetSequenceReportRequest ot
       if (other == com.google.showcase.v1beta1.GetSequenceReportRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -415,19 +374,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.GetSequenceReportRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.GetSequenceReportRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -470,11 +448,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -483,8 +459,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -495,12 +471,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -537,7 +511,18 @@ public GetSequenceReportRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new GetSequenceReportRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetSessionRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetSessionRequest.java
index eaf565f7c4..350804adec 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetSessionRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetSessionRequest.java
@@ -35,51 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private GetSessionRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_GetSessionRequest_descriptor;
@@ -94,7 +49,8 @@ private GetSessionRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The session to be retrieved.
@@ -156,7 +112,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -168,7 +124,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -185,7 +141,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -198,7 +154,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -319,24 +275,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.GetSessionRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       return this;
     }
 
@@ -363,11 +314,18 @@ public com.google.showcase.v1beta1.GetSessionRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.GetSessionRequest buildPartial() {
       com.google.showcase.v1beta1.GetSessionRequest result = new com.google.showcase.v1beta1.GetSessionRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.GetSessionRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -414,9 +372,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.GetSessionRequest other) {
       if (other == com.google.showcase.v1beta1.GetSessionRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -431,19 +390,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.GetSessionRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.GetSessionRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -498,11 +476,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -515,8 +491,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -531,12 +507,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -573,7 +547,18 @@ public GetSessionRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new GetSessionRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetUserRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetUserRequest.java
index 8f950d71af..2b8a010c28 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetUserRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/GetUserRequest.java
@@ -36,51 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private GetUserRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.IdentityOuterClass.internal_static_google_showcase_v1beta1_GetUserRequest_descriptor;
@@ -95,7 +50,8 @@ private GetUserRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The resource name of the requested user.
@@ -157,7 +113,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -169,7 +125,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -186,7 +142,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -199,7 +155,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -321,24 +277,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.GetUserRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       return this;
     }
 
@@ -365,11 +316,18 @@ public com.google.showcase.v1beta1.GetUserRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.GetUserRequest buildPartial() {
       com.google.showcase.v1beta1.GetUserRequest result = new com.google.showcase.v1beta1.GetUserRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.GetUserRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -416,9 +374,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.GetUserRequest other) {
       if (other == com.google.showcase.v1beta1.GetUserRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -433,19 +392,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.GetUserRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.GetUserRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -500,11 +478,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -517,8 +493,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -533,12 +509,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -575,7 +549,18 @@ public GetUserRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new GetUserRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Issue.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Issue.java
index 685fb2c112..794571db2d 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Issue.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Issue.java
@@ -37,63 +37,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private Issue(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 8: {
-            int rawValue = input.readEnum();
-
-            type_ = rawValue;
-            break;
-          }
-          case 16: {
-            int rawValue = input.readEnum();
-
-            severity_ = rawValue;
-            break;
-          }
-          case 26: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            description_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_Issue_descriptor;
@@ -401,7 +344,7 @@ private Severity(int value) {
   }
 
   public static final int TYPE_FIELD_NUMBER = 1;
-  private int type_;
+  private int type_ = 0;
   /**
    * 
    * The type of the issue.
@@ -422,13 +365,12 @@ private Severity(int value) {
    * @return The type.
    */
   @java.lang.Override public com.google.showcase.v1beta1.Issue.Type getType() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.Issue.Type result = com.google.showcase.v1beta1.Issue.Type.valueOf(type_);
+    com.google.showcase.v1beta1.Issue.Type result = com.google.showcase.v1beta1.Issue.Type.forNumber(type_);
     return result == null ? com.google.showcase.v1beta1.Issue.Type.UNRECOGNIZED : result;
   }
 
   public static final int SEVERITY_FIELD_NUMBER = 2;
-  private int severity_;
+  private int severity_ = 0;
   /**
    * 
    * The severity of the issue.
@@ -449,13 +391,13 @@ private Severity(int value) {
    * @return The severity.
    */
   @java.lang.Override public com.google.showcase.v1beta1.Issue.Severity getSeverity() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.Issue.Severity result = com.google.showcase.v1beta1.Issue.Severity.valueOf(severity_);
+    com.google.showcase.v1beta1.Issue.Severity result = com.google.showcase.v1beta1.Issue.Severity.forNumber(severity_);
     return result == null ? com.google.showcase.v1beta1.Issue.Severity.UNRECOGNIZED : result;
   }
 
   public static final int DESCRIPTION_FIELD_NUMBER = 3;
-  private volatile java.lang.Object description_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object description_ = "";
   /**
    * 
    * A description of the issue.
@@ -523,7 +465,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 3, description_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -543,7 +485,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, description_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -562,7 +504,7 @@ public boolean equals(final java.lang.Object obj) {
     if (severity_ != other.severity_) return false;
     if (!getDescription()
         .equals(other.getDescription())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -579,7 +521,7 @@ public int hashCode() {
     hash = (53 * hash) + severity_;
     hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
     hash = (53 * hash) + getDescription().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -700,28 +642,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.Issue.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       type_ = 0;
-
       severity_ = 0;
-
       description_ = "";
-
       return this;
     }
 
@@ -748,13 +683,24 @@ public com.google.showcase.v1beta1.Issue build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.Issue buildPartial() {
       com.google.showcase.v1beta1.Issue result = new com.google.showcase.v1beta1.Issue(this);
-      result.type_ = type_;
-      result.severity_ = severity_;
-      result.description_ = description_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.Issue result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.type_ = type_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.severity_ = severity_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.description_ = description_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -807,9 +753,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Issue other) {
       }
       if (!other.getDescription().isEmpty()) {
         description_ = other.description_;
+        bitField0_ |= 0x00000004;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -824,19 +771,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.Issue parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              type_ = input.readEnum();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 16: {
+              severity_ = input.readEnum();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 26: {
+              description_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 26
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.Issue) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private int type_ = 0;
     /**
@@ -860,8 +836,8 @@ public Builder mergeFrom(
      * @return This builder for chaining.
      */
     public Builder setTypeValue(int value) {
-      
       type_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -875,8 +851,7 @@ public Builder setTypeValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.Issue.Type getType() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.Issue.Type result = com.google.showcase.v1beta1.Issue.Type.valueOf(type_);
+      com.google.showcase.v1beta1.Issue.Type result = com.google.showcase.v1beta1.Issue.Type.forNumber(type_);
       return result == null ? com.google.showcase.v1beta1.Issue.Type.UNRECOGNIZED : result;
     }
     /**
@@ -892,7 +867,7 @@ public Builder setType(com.google.showcase.v1beta1.Issue.Type value) {
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000001;
       type_ = value.getNumber();
       onChanged();
       return this;
@@ -906,7 +881,7 @@ public Builder setType(com.google.showcase.v1beta1.Issue.Type value) {
      * @return This builder for chaining.
      */
     public Builder clearType() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       type_ = 0;
       onChanged();
       return this;
@@ -934,8 +909,8 @@ public Builder clearType() {
      * @return This builder for chaining.
      */
     public Builder setSeverityValue(int value) {
-      
       severity_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -949,8 +924,7 @@ public Builder setSeverityValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.Issue.Severity getSeverity() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.Issue.Severity result = com.google.showcase.v1beta1.Issue.Severity.valueOf(severity_);
+      com.google.showcase.v1beta1.Issue.Severity result = com.google.showcase.v1beta1.Issue.Severity.forNumber(severity_);
       return result == null ? com.google.showcase.v1beta1.Issue.Severity.UNRECOGNIZED : result;
     }
     /**
@@ -966,7 +940,7 @@ public Builder setSeverity(com.google.showcase.v1beta1.Issue.Severity value) {
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000002;
       severity_ = value.getNumber();
       onChanged();
       return this;
@@ -980,7 +954,7 @@ public Builder setSeverity(com.google.showcase.v1beta1.Issue.Severity value) {
      * @return This builder for chaining.
      */
     public Builder clearSeverity() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       severity_ = 0;
       onChanged();
       return this;
@@ -1039,11 +1013,9 @@ public java.lang.String getDescription() {
      */
     public Builder setDescription(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       description_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1056,8 +1028,8 @@ public Builder setDescription(
      * @return This builder for chaining.
      */
     public Builder clearDescription() {
-      
       description_ = getDefaultInstance().getDescription();
+      bitField0_ = (bitField0_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -1072,12 +1044,10 @@ public Builder clearDescription() {
      */
     public Builder setDescriptionBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       description_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1114,7 +1084,18 @@ public Issue parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new Issue(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListBlurbsRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListBlurbsRequest.java
index 1bf87e7a26..0cff13fff3 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListBlurbsRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListBlurbsRequest.java
@@ -37,62 +37,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ListBlurbsRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            parent_ = s;
-            break;
-          }
-          case 16: {
-
-            pageSize_ = input.readInt32();
-            break;
-          }
-          case 26: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            pageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_ListBlurbsRequest_descriptor;
@@ -107,7 +51,8 @@ private ListBlurbsRequest(
   }
 
   public static final int PARENT_FIELD_NUMBER = 1;
-  private volatile java.lang.Object parent_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object parent_ = "";
   /**
    * 
    * The resource name of the requested room or profile whos blurbs to list.
@@ -153,7 +98,7 @@ public java.lang.String getParent() {
   }
 
   public static final int PAGE_SIZE_FIELD_NUMBER = 2;
-  private int pageSize_;
+  private int pageSize_ = 0;
   /**
    * 
    * The maximum number of blurbs to return. Server may return fewer
@@ -170,7 +115,8 @@ public int getPageSize() {
   }
 
   public static final int PAGE_TOKEN_FIELD_NUMBER = 3;
-  private volatile java.lang.Object pageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object pageToken_ = "";
   /**
    * 
    * The value of google.showcase.v1beta1.ListBlurbsResponse.next_page_token
@@ -242,7 +188,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 3, pageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -261,7 +207,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, pageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -282,7 +228,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getPageSize()) return false;
     if (!getPageToken()
         .equals(other.getPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -299,7 +245,7 @@ public int hashCode() {
     hash = (53 * hash) + getPageSize();
     hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -421,28 +367,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ListBlurbsRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       parent_ = "";
-
       pageSize_ = 0;
-
       pageToken_ = "";
-
       return this;
     }
 
@@ -469,13 +408,24 @@ public com.google.showcase.v1beta1.ListBlurbsRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ListBlurbsRequest buildPartial() {
       com.google.showcase.v1beta1.ListBlurbsRequest result = new com.google.showcase.v1beta1.ListBlurbsRequest(this);
-      result.parent_ = parent_;
-      result.pageSize_ = pageSize_;
-      result.pageToken_ = pageToken_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.ListBlurbsRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.parent_ = parent_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.pageSize_ = pageSize_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.pageToken_ = pageToken_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -522,6 +472,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ListBlurbsRequest other) {
       if (other == com.google.showcase.v1beta1.ListBlurbsRequest.getDefaultInstance()) return this;
       if (!other.getParent().isEmpty()) {
         parent_ = other.parent_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.getPageSize() != 0) {
@@ -529,9 +480,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ListBlurbsRequest other) {
       }
       if (!other.getPageToken().isEmpty()) {
         pageToken_ = other.pageToken_;
+        bitField0_ |= 0x00000004;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -546,19 +498,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ListBlurbsRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              parent_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              pageSize_ = input.readInt32();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 26: {
+              pageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 26
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ListBlurbsRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object parent_ = "";
     /**
@@ -613,11 +594,9 @@ public java.lang.String getParent() {
      */
     public Builder setParent(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       parent_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -630,8 +609,8 @@ public Builder setParent(
      * @return This builder for chaining.
      */
     public Builder clearParent() {
-      
       parent_ = getDefaultInstance().getParent();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -646,12 +625,10 @@ public Builder clearParent() {
      */
     public Builder setParentBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       parent_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -685,6 +662,7 @@ public int getPageSize() {
     public Builder setPageSize(int value) {
       
       pageSize_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -699,7 +677,7 @@ public Builder setPageSize(int value) {
      * @return This builder for chaining.
      */
     public Builder clearPageSize() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       pageSize_ = 0;
       onChanged();
       return this;
@@ -764,11 +742,9 @@ public java.lang.String getPageToken() {
      */
     public Builder setPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       pageToken_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -783,8 +759,8 @@ public Builder setPageToken(
      * @return This builder for chaining.
      */
     public Builder clearPageToken() {
-      
       pageToken_ = getDefaultInstance().getPageToken();
+      bitField0_ = (bitField0_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -801,12 +777,10 @@ public Builder clearPageToken() {
      */
     public Builder setPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       pageToken_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -843,7 +817,18 @@ public ListBlurbsRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ListBlurbsRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListBlurbsResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListBlurbsResponse.java
index 65e8c54f4b..abec8b6bd8 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListBlurbsResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListBlurbsResponse.java
@@ -37,64 +37,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ListBlurbsResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              blurbs_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            blurbs_.add(
-                input.readMessage(com.google.showcase.v1beta1.Blurb.parser(), extensionRegistry));
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            nextPageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        blurbs_ = java.util.Collections.unmodifiableList(blurbs_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_ListBlurbsResponse_descriptor;
@@ -109,6 +51,7 @@ private ListBlurbsResponse(
   }
 
   public static final int BLURBS_FIELD_NUMBER = 1;
+  @SuppressWarnings("serial")
   private java.util.List blurbs_;
   /**
    * 
@@ -169,7 +112,8 @@ public com.google.showcase.v1beta1.BlurbOrBuilder getBlurbsOrBuilder(
   }
 
   public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
-  private volatile java.lang.Object nextPageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object nextPageToken_ = "";
   /**
    * 
    * A token to retrieve next page of results.
@@ -240,7 +184,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -256,7 +200,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -275,7 +219,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getBlurbsList())) return false;
     if (!getNextPageToken()
         .equals(other.getNextPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -292,7 +236,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getNextPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -414,31 +358,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ListBlurbsResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getBlurbsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       if (blurbsBuilder_ == null) {
         blurbs_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        blurbs_ = null;
         blurbsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000001);
       nextPageToken_ = "";
-
       return this;
     }
 
@@ -465,7 +404,13 @@ public com.google.showcase.v1beta1.ListBlurbsResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ListBlurbsResponse buildPartial() {
       com.google.showcase.v1beta1.ListBlurbsResponse result = new com.google.showcase.v1beta1.ListBlurbsResponse(this);
-      int from_bitField0_ = bitField0_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.ListBlurbsResponse result) {
       if (blurbsBuilder_ == null) {
         if (((bitField0_ & 0x00000001) != 0)) {
           blurbs_ = java.util.Collections.unmodifiableList(blurbs_);
@@ -475,9 +420,13 @@ public com.google.showcase.v1beta1.ListBlurbsResponse buildPartial() {
       } else {
         result.blurbs_ = blurbsBuilder_.build();
       }
-      result.nextPageToken_ = nextPageToken_;
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.ListBlurbsResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.nextPageToken_ = nextPageToken_;
+      }
     }
 
     @java.lang.Override
@@ -552,9 +501,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ListBlurbsResponse other) {
       }
       if (!other.getNextPageToken().isEmpty()) {
         nextPageToken_ = other.nextPageToken_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -569,17 +519,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ListBlurbsResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              com.google.showcase.v1beta1.Blurb m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.Blurb.parser(),
+                      extensionRegistry);
+              if (blurbsBuilder_ == null) {
+                ensureBlurbsIsMutable();
+                blurbs_.add(m);
+              } else {
+                blurbsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 10
+            case 18: {
+              nextPageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ListBlurbsResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -958,11 +939,9 @@ public java.lang.String getNextPageToken() {
      */
     public Builder setNextPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -978,8 +957,8 @@ public Builder setNextPageToken(
      * @return This builder for chaining.
      */
     public Builder clearNextPageToken() {
-      
       nextPageToken_ = getDefaultInstance().getNextPageToken();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -997,12 +976,10 @@ public Builder clearNextPageToken() {
      */
     public Builder setNextPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1039,7 +1016,18 @@ public ListBlurbsResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ListBlurbsResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListRoomsRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListRoomsRequest.java
index 379feac0dc..0328356d1f 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListRoomsRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListRoomsRequest.java
@@ -36,56 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ListRoomsRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 8: {
-
-            pageSize_ = input.readInt32();
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            pageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_ListRoomsRequest_descriptor;
@@ -100,7 +50,7 @@ private ListRoomsRequest(
   }
 
   public static final int PAGE_SIZE_FIELD_NUMBER = 1;
-  private int pageSize_;
+  private int pageSize_ = 0;
   /**
    * 
    * The maximum number of rooms return. Server may return fewer rooms
@@ -116,7 +66,8 @@ public int getPageSize() {
   }
 
   public static final int PAGE_TOKEN_FIELD_NUMBER = 2;
-  private volatile java.lang.Object pageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object pageToken_ = "";
   /**
    * 
    * The value of google.showcase.v1beta1.ListRoomsResponse.next_page_token
@@ -185,7 +136,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, pageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -201,7 +152,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, pageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -220,7 +171,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getPageSize()) return false;
     if (!getPageToken()
         .equals(other.getPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -235,7 +186,7 @@ public int hashCode() {
     hash = (53 * hash) + getPageSize();
     hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -357,26 +308,20 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ListRoomsRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       pageSize_ = 0;
-
       pageToken_ = "";
-
       return this;
     }
 
@@ -403,12 +348,21 @@ public com.google.showcase.v1beta1.ListRoomsRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ListRoomsRequest buildPartial() {
       com.google.showcase.v1beta1.ListRoomsRequest result = new com.google.showcase.v1beta1.ListRoomsRequest(this);
-      result.pageSize_ = pageSize_;
-      result.pageToken_ = pageToken_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.ListRoomsRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.pageSize_ = pageSize_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.pageToken_ = pageToken_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -458,9 +412,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ListRoomsRequest other) {
       }
       if (!other.getPageToken().isEmpty()) {
         pageToken_ = other.pageToken_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -475,19 +430,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ListRoomsRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              pageSize_ = input.readInt32();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 18: {
+              pageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ListRoomsRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private int pageSize_ ;
     /**
@@ -516,6 +495,7 @@ public int getPageSize() {
     public Builder setPageSize(int value) {
       
       pageSize_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -529,7 +509,7 @@ public Builder setPageSize(int value) {
      * @return This builder for chaining.
      */
     public Builder clearPageSize() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       pageSize_ = 0;
       onChanged();
       return this;
@@ -594,11 +574,9 @@ public java.lang.String getPageToken() {
      */
     public Builder setPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       pageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -613,8 +591,8 @@ public Builder setPageToken(
      * @return This builder for chaining.
      */
     public Builder clearPageToken() {
-      
       pageToken_ = getDefaultInstance().getPageToken();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -631,12 +609,10 @@ public Builder clearPageToken() {
      */
     public Builder setPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       pageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -673,7 +649,18 @@ public ListRoomsRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ListRoomsRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListRoomsResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListRoomsResponse.java
index 647fdcf143..53ff2904fa 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListRoomsResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListRoomsResponse.java
@@ -37,64 +37,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ListRoomsResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              rooms_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            rooms_.add(
-                input.readMessage(com.google.showcase.v1beta1.Room.parser(), extensionRegistry));
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            nextPageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        rooms_ = java.util.Collections.unmodifiableList(rooms_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_ListRoomsResponse_descriptor;
@@ -109,6 +51,7 @@ private ListRoomsResponse(
   }
 
   public static final int ROOMS_FIELD_NUMBER = 1;
+  @SuppressWarnings("serial")
   private java.util.List rooms_;
   /**
    * 
@@ -169,7 +112,8 @@ public com.google.showcase.v1beta1.RoomOrBuilder getRoomsOrBuilder(
   }
 
   public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
-  private volatile java.lang.Object nextPageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object nextPageToken_ = "";
   /**
    * 
    * A token to retrieve next page of results.
@@ -240,7 +184,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -256,7 +200,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -275,7 +219,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getRoomsList())) return false;
     if (!getNextPageToken()
         .equals(other.getNextPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -292,7 +236,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getNextPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -414,31 +358,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ListRoomsResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getRoomsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       if (roomsBuilder_ == null) {
         rooms_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        rooms_ = null;
         roomsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000001);
       nextPageToken_ = "";
-
       return this;
     }
 
@@ -465,7 +404,13 @@ public com.google.showcase.v1beta1.ListRoomsResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ListRoomsResponse buildPartial() {
       com.google.showcase.v1beta1.ListRoomsResponse result = new com.google.showcase.v1beta1.ListRoomsResponse(this);
-      int from_bitField0_ = bitField0_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.ListRoomsResponse result) {
       if (roomsBuilder_ == null) {
         if (((bitField0_ & 0x00000001) != 0)) {
           rooms_ = java.util.Collections.unmodifiableList(rooms_);
@@ -475,9 +420,13 @@ public com.google.showcase.v1beta1.ListRoomsResponse buildPartial() {
       } else {
         result.rooms_ = roomsBuilder_.build();
       }
-      result.nextPageToken_ = nextPageToken_;
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.ListRoomsResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.nextPageToken_ = nextPageToken_;
+      }
     }
 
     @java.lang.Override
@@ -552,9 +501,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ListRoomsResponse other) {
       }
       if (!other.getNextPageToken().isEmpty()) {
         nextPageToken_ = other.nextPageToken_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -569,17 +519,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ListRoomsResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              com.google.showcase.v1beta1.Room m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.Room.parser(),
+                      extensionRegistry);
+              if (roomsBuilder_ == null) {
+                ensureRoomsIsMutable();
+                rooms_.add(m);
+              } else {
+                roomsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 10
+            case 18: {
+              nextPageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ListRoomsResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -958,11 +939,9 @@ public java.lang.String getNextPageToken() {
      */
     public Builder setNextPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -978,8 +957,8 @@ public Builder setNextPageToken(
      * @return This builder for chaining.
      */
     public Builder clearNextPageToken() {
-      
       nextPageToken_ = getDefaultInstance().getNextPageToken();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -997,12 +976,10 @@ public Builder clearNextPageToken() {
      */
     public Builder setNextPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1039,7 +1016,18 @@ public ListRoomsResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ListRoomsResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListSessionsRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListSessionsRequest.java
index ed242c47e4..051016f0cd 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListSessionsRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListSessionsRequest.java
@@ -35,56 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ListSessionsRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 8: {
-
-            pageSize_ = input.readInt32();
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            pageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_ListSessionsRequest_descriptor;
@@ -99,7 +49,7 @@ private ListSessionsRequest(
   }
 
   public static final int PAGE_SIZE_FIELD_NUMBER = 1;
-  private int pageSize_;
+  private int pageSize_ = 0;
   /**
    * 
    * The maximum number of sessions to return per page.
@@ -114,7 +64,8 @@ public int getPageSize() {
   }
 
   public static final int PAGE_TOKEN_FIELD_NUMBER = 2;
-  private volatile java.lang.Object pageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object pageToken_ = "";
   /**
    * 
    * The page token, for retrieving subsequent pages.
@@ -179,7 +130,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, pageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -195,7 +146,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, pageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -214,7 +165,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getPageSize()) return false;
     if (!getPageToken()
         .equals(other.getPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -229,7 +180,7 @@ public int hashCode() {
     hash = (53 * hash) + getPageSize();
     hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -350,26 +301,20 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ListSessionsRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       pageSize_ = 0;
-
       pageToken_ = "";
-
       return this;
     }
 
@@ -396,12 +341,21 @@ public com.google.showcase.v1beta1.ListSessionsRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ListSessionsRequest buildPartial() {
       com.google.showcase.v1beta1.ListSessionsRequest result = new com.google.showcase.v1beta1.ListSessionsRequest(this);
-      result.pageSize_ = pageSize_;
-      result.pageToken_ = pageToken_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.ListSessionsRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.pageSize_ = pageSize_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.pageToken_ = pageToken_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -451,9 +405,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ListSessionsRequest other)
       }
       if (!other.getPageToken().isEmpty()) {
         pageToken_ = other.pageToken_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -468,19 +423,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ListSessionsRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              pageSize_ = input.readInt32();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 18: {
+              pageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ListSessionsRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private int pageSize_ ;
     /**
@@ -507,6 +486,7 @@ public int getPageSize() {
     public Builder setPageSize(int value) {
       
       pageSize_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -519,7 +499,7 @@ public Builder setPageSize(int value) {
      * @return This builder for chaining.
      */
     public Builder clearPageSize() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       pageSize_ = 0;
       onChanged();
       return this;
@@ -578,11 +558,9 @@ public java.lang.String getPageToken() {
      */
     public Builder setPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       pageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -595,8 +573,8 @@ public Builder setPageToken(
      * @return This builder for chaining.
      */
     public Builder clearPageToken() {
-      
       pageToken_ = getDefaultInstance().getPageToken();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -611,12 +589,10 @@ public Builder clearPageToken() {
      */
     public Builder setPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       pageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -653,7 +629,18 @@ public ListSessionsRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ListSessionsRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListSessionsResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListSessionsResponse.java
index 2ad961fbec..851e0ab977 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListSessionsResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListSessionsResponse.java
@@ -36,64 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ListSessionsResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              sessions_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            sessions_.add(
-                input.readMessage(com.google.showcase.v1beta1.Session.parser(), extensionRegistry));
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            nextPageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        sessions_ = java.util.Collections.unmodifiableList(sessions_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_ListSessionsResponse_descriptor;
@@ -108,6 +50,7 @@ private ListSessionsResponse(
   }
 
   public static final int SESSIONS_FIELD_NUMBER = 1;
+  @SuppressWarnings("serial")
   private java.util.List sessions_;
   /**
    * 
@@ -168,7 +111,8 @@ public com.google.showcase.v1beta1.SessionOrBuilder getSessionsOrBuilder(
   }
 
   public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
-  private volatile java.lang.Object nextPageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object nextPageToken_ = "";
   /**
    * 
    * The next page token, if any.
@@ -235,7 +179,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -251,7 +195,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -270,7 +214,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getSessionsList())) return false;
     if (!getNextPageToken()
         .equals(other.getNextPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -287,7 +231,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getNextPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -408,31 +352,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ListSessionsResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getSessionsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       if (sessionsBuilder_ == null) {
         sessions_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        sessions_ = null;
         sessionsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000001);
       nextPageToken_ = "";
-
       return this;
     }
 
@@ -459,7 +398,13 @@ public com.google.showcase.v1beta1.ListSessionsResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ListSessionsResponse buildPartial() {
       com.google.showcase.v1beta1.ListSessionsResponse result = new com.google.showcase.v1beta1.ListSessionsResponse(this);
-      int from_bitField0_ = bitField0_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.ListSessionsResponse result) {
       if (sessionsBuilder_ == null) {
         if (((bitField0_ & 0x00000001) != 0)) {
           sessions_ = java.util.Collections.unmodifiableList(sessions_);
@@ -469,9 +414,13 @@ public com.google.showcase.v1beta1.ListSessionsResponse buildPartial() {
       } else {
         result.sessions_ = sessionsBuilder_.build();
       }
-      result.nextPageToken_ = nextPageToken_;
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.ListSessionsResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.nextPageToken_ = nextPageToken_;
+      }
     }
 
     @java.lang.Override
@@ -546,9 +495,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ListSessionsResponse other)
       }
       if (!other.getNextPageToken().isEmpty()) {
         nextPageToken_ = other.nextPageToken_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -563,17 +513,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ListSessionsResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              com.google.showcase.v1beta1.Session m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.Session.parser(),
+                      extensionRegistry);
+              if (sessionsBuilder_ == null) {
+                ensureSessionsIsMutable();
+                sessions_.add(m);
+              } else {
+                sessionsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 10
+            case 18: {
+              nextPageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ListSessionsResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -946,11 +927,9 @@ public java.lang.String getNextPageToken() {
      */
     public Builder setNextPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -964,8 +943,8 @@ public Builder setNextPageToken(
      * @return This builder for chaining.
      */
     public Builder clearNextPageToken() {
-      
       nextPageToken_ = getDefaultInstance().getNextPageToken();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -981,12 +960,10 @@ public Builder clearNextPageToken() {
      */
     public Builder setNextPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1023,7 +1000,18 @@ public ListSessionsResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ListSessionsResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListTestsRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListTestsRequest.java
index 90275331e6..5bcf9b2d7c 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListTestsRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListTestsRequest.java
@@ -36,62 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ListTestsRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            parent_ = s;
-            break;
-          }
-          case 16: {
-
-            pageSize_ = input.readInt32();
-            break;
-          }
-          case 26: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            pageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_ListTestsRequest_descriptor;
@@ -106,7 +50,8 @@ private ListTestsRequest(
   }
 
   public static final int PARENT_FIELD_NUMBER = 1;
-  private volatile java.lang.Object parent_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object parent_ = "";
   /**
    * 
    * The session.
@@ -152,7 +97,7 @@ public java.lang.String getParent() {
   }
 
   public static final int PAGE_SIZE_FIELD_NUMBER = 2;
-  private int pageSize_;
+  private int pageSize_ = 0;
   /**
    * 
    * The maximum number of tests to return per page.
@@ -167,7 +112,8 @@ public int getPageSize() {
   }
 
   public static final int PAGE_TOKEN_FIELD_NUMBER = 3;
-  private volatile java.lang.Object pageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object pageToken_ = "";
   /**
    * 
    * The page token, for retrieving subsequent pages.
@@ -235,7 +181,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 3, pageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -254,7 +200,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, pageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -275,7 +221,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getPageSize()) return false;
     if (!getPageToken()
         .equals(other.getPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -292,7 +238,7 @@ public int hashCode() {
     hash = (53 * hash) + getPageSize();
     hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -413,28 +359,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ListTestsRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       parent_ = "";
-
       pageSize_ = 0;
-
       pageToken_ = "";
-
       return this;
     }
 
@@ -461,13 +400,24 @@ public com.google.showcase.v1beta1.ListTestsRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ListTestsRequest buildPartial() {
       com.google.showcase.v1beta1.ListTestsRequest result = new com.google.showcase.v1beta1.ListTestsRequest(this);
-      result.parent_ = parent_;
-      result.pageSize_ = pageSize_;
-      result.pageToken_ = pageToken_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.ListTestsRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.parent_ = parent_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.pageSize_ = pageSize_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.pageToken_ = pageToken_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -514,6 +464,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ListTestsRequest other) {
       if (other == com.google.showcase.v1beta1.ListTestsRequest.getDefaultInstance()) return this;
       if (!other.getParent().isEmpty()) {
         parent_ = other.parent_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.getPageSize() != 0) {
@@ -521,9 +472,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ListTestsRequest other) {
       }
       if (!other.getPageToken().isEmpty()) {
         pageToken_ = other.pageToken_;
+        bitField0_ |= 0x00000004;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -538,19 +490,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ListTestsRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              parent_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              pageSize_ = input.readInt32();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 26: {
+              pageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 26
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ListTestsRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object parent_ = "";
     /**
@@ -605,11 +586,9 @@ public java.lang.String getParent() {
      */
     public Builder setParent(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       parent_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -622,8 +601,8 @@ public Builder setParent(
      * @return This builder for chaining.
      */
     public Builder clearParent() {
-      
       parent_ = getDefaultInstance().getParent();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -638,12 +617,10 @@ public Builder clearParent() {
      */
     public Builder setParentBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       parent_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -673,6 +650,7 @@ public int getPageSize() {
     public Builder setPageSize(int value) {
       
       pageSize_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -685,7 +663,7 @@ public Builder setPageSize(int value) {
      * @return This builder for chaining.
      */
     public Builder clearPageSize() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       pageSize_ = 0;
       onChanged();
       return this;
@@ -744,11 +722,9 @@ public java.lang.String getPageToken() {
      */
     public Builder setPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       pageToken_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -761,8 +737,8 @@ public Builder setPageToken(
      * @return This builder for chaining.
      */
     public Builder clearPageToken() {
-      
       pageToken_ = getDefaultInstance().getPageToken();
+      bitField0_ = (bitField0_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -777,12 +753,10 @@ public Builder clearPageToken() {
      */
     public Builder setPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       pageToken_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -819,7 +793,18 @@ public ListTestsRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ListTestsRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListTestsResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListTestsResponse.java
index 7fa4dca4d8..25f19a40d5 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListTestsResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListTestsResponse.java
@@ -36,64 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ListTestsResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              tests_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            tests_.add(
-                input.readMessage(com.google.showcase.v1beta1.Test.parser(), extensionRegistry));
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            nextPageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        tests_ = java.util.Collections.unmodifiableList(tests_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_ListTestsResponse_descriptor;
@@ -108,6 +50,7 @@ private ListTestsResponse(
   }
 
   public static final int TESTS_FIELD_NUMBER = 1;
+  @SuppressWarnings("serial")
   private java.util.List tests_;
   /**
    * 
@@ -168,7 +111,8 @@ public com.google.showcase.v1beta1.TestOrBuilder getTestsOrBuilder(
   }
 
   public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
-  private volatile java.lang.Object nextPageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object nextPageToken_ = "";
   /**
    * 
    * The next page token, if any.
@@ -235,7 +179,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -251,7 +195,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -270,7 +214,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getTestsList())) return false;
     if (!getNextPageToken()
         .equals(other.getNextPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -287,7 +231,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getNextPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -408,31 +352,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ListTestsResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getTestsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       if (testsBuilder_ == null) {
         tests_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        tests_ = null;
         testsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000001);
       nextPageToken_ = "";
-
       return this;
     }
 
@@ -459,7 +398,13 @@ public com.google.showcase.v1beta1.ListTestsResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ListTestsResponse buildPartial() {
       com.google.showcase.v1beta1.ListTestsResponse result = new com.google.showcase.v1beta1.ListTestsResponse(this);
-      int from_bitField0_ = bitField0_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.ListTestsResponse result) {
       if (testsBuilder_ == null) {
         if (((bitField0_ & 0x00000001) != 0)) {
           tests_ = java.util.Collections.unmodifiableList(tests_);
@@ -469,9 +414,13 @@ public com.google.showcase.v1beta1.ListTestsResponse buildPartial() {
       } else {
         result.tests_ = testsBuilder_.build();
       }
-      result.nextPageToken_ = nextPageToken_;
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.ListTestsResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.nextPageToken_ = nextPageToken_;
+      }
     }
 
     @java.lang.Override
@@ -546,9 +495,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ListTestsResponse other) {
       }
       if (!other.getNextPageToken().isEmpty()) {
         nextPageToken_ = other.nextPageToken_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -563,17 +513,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ListTestsResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              com.google.showcase.v1beta1.Test m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.Test.parser(),
+                      extensionRegistry);
+              if (testsBuilder_ == null) {
+                ensureTestsIsMutable();
+                tests_.add(m);
+              } else {
+                testsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 10
+            case 18: {
+              nextPageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ListTestsResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -946,11 +927,9 @@ public java.lang.String getNextPageToken() {
      */
     public Builder setNextPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -964,8 +943,8 @@ public Builder setNextPageToken(
      * @return This builder for chaining.
      */
     public Builder clearNextPageToken() {
-      
       nextPageToken_ = getDefaultInstance().getNextPageToken();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -981,12 +960,10 @@ public Builder clearNextPageToken() {
      */
     public Builder setNextPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1023,7 +1000,18 @@ public ListTestsResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ListTestsResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListUsersRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListUsersRequest.java
index 7f5da71c80..a955c02b3c 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListUsersRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListUsersRequest.java
@@ -36,56 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ListUsersRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 8: {
-
-            pageSize_ = input.readInt32();
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            pageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.IdentityOuterClass.internal_static_google_showcase_v1beta1_ListUsersRequest_descriptor;
@@ -100,7 +50,7 @@ private ListUsersRequest(
   }
 
   public static final int PAGE_SIZE_FIELD_NUMBER = 1;
-  private int pageSize_;
+  private int pageSize_ = 0;
   /**
    * 
    * The maximum number of users to return. Server may return fewer users
@@ -116,7 +66,8 @@ public int getPageSize() {
   }
 
   public static final int PAGE_TOKEN_FIELD_NUMBER = 2;
-  private volatile java.lang.Object pageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object pageToken_ = "";
   /**
    * 
    * The value of google.showcase.v1beta1.ListUsersResponse.next_page_token
@@ -185,7 +136,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, pageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -201,7 +152,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, pageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -220,7 +171,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getPageSize()) return false;
     if (!getPageToken()
         .equals(other.getPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -235,7 +186,7 @@ public int hashCode() {
     hash = (53 * hash) + getPageSize();
     hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -357,26 +308,20 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ListUsersRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       pageSize_ = 0;
-
       pageToken_ = "";
-
       return this;
     }
 
@@ -403,12 +348,21 @@ public com.google.showcase.v1beta1.ListUsersRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ListUsersRequest buildPartial() {
       com.google.showcase.v1beta1.ListUsersRequest result = new com.google.showcase.v1beta1.ListUsersRequest(this);
-      result.pageSize_ = pageSize_;
-      result.pageToken_ = pageToken_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.ListUsersRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.pageSize_ = pageSize_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.pageToken_ = pageToken_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -458,9 +412,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ListUsersRequest other) {
       }
       if (!other.getPageToken().isEmpty()) {
         pageToken_ = other.pageToken_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -475,19 +430,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ListUsersRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              pageSize_ = input.readInt32();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 18: {
+              pageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ListUsersRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private int pageSize_ ;
     /**
@@ -516,6 +495,7 @@ public int getPageSize() {
     public Builder setPageSize(int value) {
       
       pageSize_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -529,7 +509,7 @@ public Builder setPageSize(int value) {
      * @return This builder for chaining.
      */
     public Builder clearPageSize() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       pageSize_ = 0;
       onChanged();
       return this;
@@ -594,11 +574,9 @@ public java.lang.String getPageToken() {
      */
     public Builder setPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       pageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -613,8 +591,8 @@ public Builder setPageToken(
      * @return This builder for chaining.
      */
     public Builder clearPageToken() {
-      
       pageToken_ = getDefaultInstance().getPageToken();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -631,12 +609,10 @@ public Builder clearPageToken() {
      */
     public Builder setPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       pageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -673,7 +649,18 @@ public ListUsersRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ListUsersRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListUsersResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListUsersResponse.java
index 693eb1c2ca..55b5a8e1c9 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListUsersResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ListUsersResponse.java
@@ -37,64 +37,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ListUsersResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              users_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            users_.add(
-                input.readMessage(com.google.showcase.v1beta1.User.parser(), extensionRegistry));
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            nextPageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        users_ = java.util.Collections.unmodifiableList(users_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.IdentityOuterClass.internal_static_google_showcase_v1beta1_ListUsersResponse_descriptor;
@@ -109,6 +51,7 @@ private ListUsersResponse(
   }
 
   public static final int USERS_FIELD_NUMBER = 1;
+  @SuppressWarnings("serial")
   private java.util.List users_;
   /**
    * 
@@ -169,7 +112,8 @@ public com.google.showcase.v1beta1.UserOrBuilder getUsersOrBuilder(
   }
 
   public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
-  private volatile java.lang.Object nextPageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object nextPageToken_ = "";
   /**
    * 
    * A token to retrieve next page of results.
@@ -240,7 +184,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -256,7 +200,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -275,7 +219,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getUsersList())) return false;
     if (!getNextPageToken()
         .equals(other.getNextPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -292,7 +236,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getNextPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -414,31 +358,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ListUsersResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getUsersFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       if (usersBuilder_ == null) {
         users_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        users_ = null;
         usersBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000001);
       nextPageToken_ = "";
-
       return this;
     }
 
@@ -465,7 +404,13 @@ public com.google.showcase.v1beta1.ListUsersResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ListUsersResponse buildPartial() {
       com.google.showcase.v1beta1.ListUsersResponse result = new com.google.showcase.v1beta1.ListUsersResponse(this);
-      int from_bitField0_ = bitField0_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.ListUsersResponse result) {
       if (usersBuilder_ == null) {
         if (((bitField0_ & 0x00000001) != 0)) {
           users_ = java.util.Collections.unmodifiableList(users_);
@@ -475,9 +420,13 @@ public com.google.showcase.v1beta1.ListUsersResponse buildPartial() {
       } else {
         result.users_ = usersBuilder_.build();
       }
-      result.nextPageToken_ = nextPageToken_;
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.ListUsersResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.nextPageToken_ = nextPageToken_;
+      }
     }
 
     @java.lang.Override
@@ -552,9 +501,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ListUsersResponse other) {
       }
       if (!other.getNextPageToken().isEmpty()) {
         nextPageToken_ = other.nextPageToken_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -569,17 +519,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ListUsersResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              com.google.showcase.v1beta1.User m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.User.parser(),
+                      extensionRegistry);
+              if (usersBuilder_ == null) {
+                ensureUsersIsMutable();
+                users_.add(m);
+              } else {
+                usersBuilder_.addMessage(m);
+              }
+              break;
+            } // case 10
+            case 18: {
+              nextPageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ListUsersResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -958,11 +939,9 @@ public java.lang.String getNextPageToken() {
      */
     public Builder setNextPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -978,8 +957,8 @@ public Builder setNextPageToken(
      * @return This builder for chaining.
      */
     public Builder clearNextPageToken() {
-      
       nextPageToken_ = getDefaultInstance().getNextPageToken();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -997,12 +976,10 @@ public Builder clearNextPageToken() {
      */
     public Builder setNextPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1039,7 +1016,18 @@ public ListUsersResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ListUsersResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandLegacyMappedResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandLegacyMappedResponse.java
index ddef8cc042..57ff574d53 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandLegacyMappedResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandLegacyMappedResponse.java
@@ -31,65 +31,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private PagedExpandLegacyMappedResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              alphabetized_ = com.google.protobuf.MapField.newMapField(
-                  AlphabetizedDefaultEntryHolder.defaultEntry);
-              mutable_bitField0_ |= 0x00000001;
-            }
-            com.google.protobuf.MapEntry
-            alphabetized__ = input.readMessage(
-                AlphabetizedDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
-            alphabetized_.getMutableMap().put(
-                alphabetized__.getKey(), alphabetized__.getValue());
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            nextPageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_PagedExpandLegacyMappedResponse_descriptor;
@@ -127,6 +68,7 @@ private static final class AlphabetizedDefaultEntryHolder {
                 com.google.protobuf.WireFormat.FieldType.MESSAGE,
                 com.google.showcase.v1beta1.PagedExpandResponseList.getDefaultInstance());
   }
+  @SuppressWarnings("serial")
   private com.google.protobuf.MapField<
       java.lang.String, com.google.showcase.v1beta1.PagedExpandResponseList> alphabetized_;
   private com.google.protobuf.MapField
@@ -137,7 +79,6 @@ private static final class AlphabetizedDefaultEntryHolder {
     }
     return alphabetized_;
   }
-
   public int getAlphabetizedCount() {
     return internalGetAlphabetized().getMap().size();
   }
@@ -150,7 +91,6 @@ public int getAlphabetizedCount() {
    *
    * map<string, .google.showcase.v1beta1.PagedExpandResponseList> alphabetized = 1;
    */
-
   @java.lang.Override
   public boolean containsAlphabetized(
       java.lang.String key) {
@@ -175,7 +115,6 @@ public java.util.Mapmap<string, .google.showcase.v1beta1.PagedExpandResponseList> alphabetized = 1;
    */
   @java.lang.Override
-
   public java.util.Map getAlphabetizedMap() {
     return internalGetAlphabetized().getMap();
   }
@@ -189,10 +128,11 @@ public java.util.Mapmap<string, .google.showcase.v1beta1.PagedExpandResponseList> alphabetized = 1;
    */
   @java.lang.Override
-
-  public com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrDefault(
+  public /* nullable */
+com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrDefault(
       java.lang.String key,
-      com.google.showcase.v1beta1.PagedExpandResponseList defaultValue) {
+      /* nullable */
+com.google.showcase.v1beta1.PagedExpandResponseList defaultValue) {
     if (key == null) { throw new NullPointerException("map key"); }
     java.util.Map map =
         internalGetAlphabetized().getMap();
@@ -208,7 +148,6 @@ public com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrDefa
    * map<string, .google.showcase.v1beta1.PagedExpandResponseList> alphabetized = 1;
    */
   @java.lang.Override
-
   public com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrThrow(
       java.lang.String key) {
     if (key == null) { throw new NullPointerException("map key"); }
@@ -221,7 +160,8 @@ public com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrThro
   }
 
   public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
-  private volatile java.lang.Object nextPageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object nextPageToken_ = "";
   /**
    * 
    * The next page token.
@@ -289,7 +229,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -311,7 +251,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -330,7 +270,7 @@ public boolean equals(final java.lang.Object obj) {
         other.internalGetAlphabetized())) return false;
     if (!getNextPageToken()
         .equals(other.getNextPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -347,7 +287,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getNextPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -486,25 +426,20 @@ protected com.google.protobuf.MapField internalGetMutableMapField(
 
     // Construct using com.google.showcase.v1beta1.PagedExpandLegacyMappedResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       internalGetMutableAlphabetized().clear();
       nextPageToken_ = "";
-
       return this;
     }
 
@@ -531,14 +466,22 @@ public com.google.showcase.v1beta1.PagedExpandLegacyMappedResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.PagedExpandLegacyMappedResponse buildPartial() {
       com.google.showcase.v1beta1.PagedExpandLegacyMappedResponse result = new com.google.showcase.v1beta1.PagedExpandLegacyMappedResponse(this);
-      int from_bitField0_ = bitField0_;
-      result.alphabetized_ = internalGetAlphabetized();
-      result.alphabetized_.makeImmutable();
-      result.nextPageToken_ = nextPageToken_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.PagedExpandLegacyMappedResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.alphabetized_ = internalGetAlphabetized();
+        result.alphabetized_.makeImmutable();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.nextPageToken_ = nextPageToken_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -585,11 +528,13 @@ public Builder mergeFrom(com.google.showcase.v1beta1.PagedExpandLegacyMappedResp
       if (other == com.google.showcase.v1beta1.PagedExpandLegacyMappedResponse.getDefaultInstance()) return this;
       internalGetMutableAlphabetized().mergeFrom(
           other.internalGetAlphabetized());
+      bitField0_ |= 0x00000001;
       if (!other.getNextPageToken().isEmpty()) {
         nextPageToken_ = other.nextPageToken_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -604,17 +549,44 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.PagedExpandLegacyMappedResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              com.google.protobuf.MapEntry
+              alphabetized__ = input.readMessage(
+                  AlphabetizedDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
+              internalGetMutableAlphabetized().getMutableMap().put(
+                  alphabetized__.getKey(), alphabetized__.getValue());
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              nextPageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.PagedExpandLegacyMappedResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -622,7 +594,7 @@ public Builder mergeFrom(
     private com.google.protobuf.MapField<
         java.lang.String, com.google.showcase.v1beta1.PagedExpandResponseList> alphabetized_;
     private com.google.protobuf.MapField
-    internalGetAlphabetized() {
+        internalGetAlphabetized() {
       if (alphabetized_ == null) {
         return com.google.protobuf.MapField.emptyMapField(
             AlphabetizedDefaultEntryHolder.defaultEntry);
@@ -630,8 +602,7 @@ public Builder mergeFrom(
       return alphabetized_;
     }
     private com.google.protobuf.MapField
-    internalGetMutableAlphabetized() {
-      onChanged();;
+        internalGetMutableAlphabetized() {
       if (alphabetized_ == null) {
         alphabetized_ = com.google.protobuf.MapField.newMapField(
             AlphabetizedDefaultEntryHolder.defaultEntry);
@@ -639,9 +610,10 @@ public Builder mergeFrom(
       if (!alphabetized_.isMutable()) {
         alphabetized_ = alphabetized_.copy();
       }
+      bitField0_ |= 0x00000001;
+      onChanged();
       return alphabetized_;
     }
-
     public int getAlphabetizedCount() {
       return internalGetAlphabetized().getMap().size();
     }
@@ -654,7 +626,6 @@ public int getAlphabetizedCount() {
      *
      * map<string, .google.showcase.v1beta1.PagedExpandResponseList> alphabetized = 1;
      */
-
     @java.lang.Override
     public boolean containsAlphabetized(
         java.lang.String key) {
@@ -679,7 +650,6 @@ public java.util.Mapmap<string, .google.showcase.v1beta1.PagedExpandResponseList> alphabetized = 1;
      */
     @java.lang.Override
-
     public java.util.Map getAlphabetizedMap() {
       return internalGetAlphabetized().getMap();
     }
@@ -693,10 +663,11 @@ public java.util.Mapmap<string, .google.showcase.v1beta1.PagedExpandResponseList> alphabetized = 1;
      */
     @java.lang.Override
-
-    public com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrDefault(
+    public /* nullable */
+com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrDefault(
         java.lang.String key,
-        com.google.showcase.v1beta1.PagedExpandResponseList defaultValue) {
+        /* nullable */
+com.google.showcase.v1beta1.PagedExpandResponseList defaultValue) {
       if (key == null) { throw new NullPointerException("map key"); }
       java.util.Map map =
           internalGetAlphabetized().getMap();
@@ -712,7 +683,6 @@ public com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrDefa
      * map<string, .google.showcase.v1beta1.PagedExpandResponseList> alphabetized = 1;
      */
     @java.lang.Override
-
     public com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrThrow(
         java.lang.String key) {
       if (key == null) { throw new NullPointerException("map key"); }
@@ -723,8 +693,8 @@ public com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrThro
       }
       return map.get(key);
     }
-
     public Builder clearAlphabetized() {
+      bitField0_ = (bitField0_ & ~0x00000001);
       internalGetMutableAlphabetized().getMutableMap()
           .clear();
       return this;
@@ -738,7 +708,6 @@ public Builder clearAlphabetized() {
      *
      * map<string, .google.showcase.v1beta1.PagedExpandResponseList> alphabetized = 1;
      */
-
     public Builder removeAlphabetized(
         java.lang.String key) {
       if (key == null) { throw new NullPointerException("map key"); }
@@ -751,7 +720,8 @@ public Builder removeAlphabetized(
      */
     @java.lang.Deprecated
     public java.util.Map
-    getMutableAlphabetized() {
+        getMutableAlphabetized() {
+      bitField0_ |= 0x00000001;
       return internalGetMutableAlphabetized().getMutableMap();
     }
     /**
@@ -767,12 +737,10 @@ public Builder putAlphabetized(
         java.lang.String key,
         com.google.showcase.v1beta1.PagedExpandResponseList value) {
       if (key == null) { throw new NullPointerException("map key"); }
-      if (value == null) {
-  throw new NullPointerException("map value");
-}
-
+      if (value == null) { throw new NullPointerException("map value"); }
       internalGetMutableAlphabetized().getMutableMap()
           .put(key, value);
+      bitField0_ |= 0x00000001;
       return this;
     }
     /**
@@ -784,11 +752,11 @@ public Builder putAlphabetized(
      *
      * map<string, .google.showcase.v1beta1.PagedExpandResponseList> alphabetized = 1;
      */
-
     public Builder putAllAlphabetized(
         java.util.Map values) {
       internalGetMutableAlphabetized().getMutableMap()
           .putAll(values);
+      bitField0_ |= 0x00000001;
       return this;
     }
 
@@ -845,11 +813,9 @@ public java.lang.String getNextPageToken() {
      */
     public Builder setNextPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -862,8 +828,8 @@ public Builder setNextPageToken(
      * @return This builder for chaining.
      */
     public Builder clearNextPageToken() {
-      
       nextPageToken_ = getDefaultInstance().getNextPageToken();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -878,12 +844,10 @@ public Builder clearNextPageToken() {
      */
     public Builder setNextPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -920,7 +884,18 @@ public PagedExpandLegacyMappedResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new PagedExpandLegacyMappedResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandLegacyMappedResponseOrBuilder.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandLegacyMappedResponseOrBuilder.java
index 2d81d0ce10..728b29e97c 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandLegacyMappedResponseOrBuilder.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandLegacyMappedResponseOrBuilder.java
@@ -54,7 +54,6 @@ boolean containsAlphabetized(
    *
    * map<string, .google.showcase.v1beta1.PagedExpandResponseList> alphabetized = 1;
    */
-
   /* nullable */
 com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrDefault(
       java.lang.String key,
@@ -69,7 +68,6 @@ com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrDefault(
    *
    * map<string, .google.showcase.v1beta1.PagedExpandResponseList> alphabetized = 1;
    */
-
   com.google.showcase.v1beta1.PagedExpandResponseList getAlphabetizedOrThrow(
       java.lang.String key);
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandLegacyRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandLegacyRequest.java
index 5a0fecec07..ed44613236 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandLegacyRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandLegacyRequest.java
@@ -38,62 +38,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private PagedExpandLegacyRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            content_ = s;
-            break;
-          }
-          case 16: {
-
-            maxResults_ = input.readInt32();
-            break;
-          }
-          case 26: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            pageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_PagedExpandLegacyRequest_descriptor;
@@ -108,7 +52,8 @@ private PagedExpandLegacyRequest(
   }
 
   public static final int CONTENT_FIELD_NUMBER = 1;
-  private volatile java.lang.Object content_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object content_ = "";
   /**
    * 
    * The string to expand.
@@ -154,7 +99,7 @@ public java.lang.String getContent() {
   }
 
   public static final int MAX_RESULTS_FIELD_NUMBER = 2;
-  private int maxResults_;
+  private int maxResults_ = 0;
   /**
    * 
    * The number of words to returned in each page.
@@ -171,7 +116,8 @@ public int getMaxResults() {
   }
 
   public static final int PAGE_TOKEN_FIELD_NUMBER = 3;
-  private volatile java.lang.Object pageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object pageToken_ = "";
   /**
    * 
    * The position of the page to be returned.
@@ -239,7 +185,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 3, pageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -258,7 +204,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, pageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -279,7 +225,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getMaxResults()) return false;
     if (!getPageToken()
         .equals(other.getPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -296,7 +242,7 @@ public int hashCode() {
     hash = (53 * hash) + getMaxResults();
     hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -419,28 +365,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.PagedExpandLegacyRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       content_ = "";
-
       maxResults_ = 0;
-
       pageToken_ = "";
-
       return this;
     }
 
@@ -467,13 +406,24 @@ public com.google.showcase.v1beta1.PagedExpandLegacyRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.PagedExpandLegacyRequest buildPartial() {
       com.google.showcase.v1beta1.PagedExpandLegacyRequest result = new com.google.showcase.v1beta1.PagedExpandLegacyRequest(this);
-      result.content_ = content_;
-      result.maxResults_ = maxResults_;
-      result.pageToken_ = pageToken_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.PagedExpandLegacyRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.content_ = content_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.maxResults_ = maxResults_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.pageToken_ = pageToken_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -520,6 +470,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.PagedExpandLegacyRequest ot
       if (other == com.google.showcase.v1beta1.PagedExpandLegacyRequest.getDefaultInstance()) return this;
       if (!other.getContent().isEmpty()) {
         content_ = other.content_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.getMaxResults() != 0) {
@@ -527,9 +478,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.PagedExpandLegacyRequest ot
       }
       if (!other.getPageToken().isEmpty()) {
         pageToken_ = other.pageToken_;
+        bitField0_ |= 0x00000004;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -544,19 +496,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.PagedExpandLegacyRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              content_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              maxResults_ = input.readInt32();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 26: {
+              pageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 26
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.PagedExpandLegacyRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object content_ = "";
     /**
@@ -611,11 +592,9 @@ public java.lang.String getContent() {
      */
     public Builder setContent(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       content_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -628,8 +607,8 @@ public Builder setContent(
      * @return This builder for chaining.
      */
     public Builder clearContent() {
-      
       content_ = getDefaultInstance().getContent();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -644,12 +623,10 @@ public Builder clearContent() {
      */
     public Builder setContentBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       content_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -683,6 +660,7 @@ public int getMaxResults() {
     public Builder setMaxResults(int value) {
       
       maxResults_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -697,7 +675,7 @@ public Builder setMaxResults(int value) {
      * @return This builder for chaining.
      */
     public Builder clearMaxResults() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       maxResults_ = 0;
       onChanged();
       return this;
@@ -756,11 +734,9 @@ public java.lang.String getPageToken() {
      */
     public Builder setPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       pageToken_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -773,8 +749,8 @@ public Builder setPageToken(
      * @return This builder for chaining.
      */
     public Builder clearPageToken() {
-      
       pageToken_ = getDefaultInstance().getPageToken();
+      bitField0_ = (bitField0_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -789,12 +765,10 @@ public Builder clearPageToken() {
      */
     public Builder setPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       pageToken_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -831,7 +805,18 @@ public PagedExpandLegacyRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new PagedExpandLegacyRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandRequest.java
index 291ce47b8b..4692f6ecfd 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandRequest.java
@@ -36,62 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private PagedExpandRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            content_ = s;
-            break;
-          }
-          case 16: {
-
-            pageSize_ = input.readInt32();
-            break;
-          }
-          case 26: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            pageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_PagedExpandRequest_descriptor;
@@ -106,7 +50,8 @@ private PagedExpandRequest(
   }
 
   public static final int CONTENT_FIELD_NUMBER = 1;
-  private volatile java.lang.Object content_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object content_ = "";
   /**
    * 
    * The string to expand.
@@ -152,7 +97,7 @@ public java.lang.String getContent() {
   }
 
   public static final int PAGE_SIZE_FIELD_NUMBER = 2;
-  private int pageSize_;
+  private int pageSize_ = 0;
   /**
    * 
    * The number of words to returned in each page.
@@ -167,7 +112,8 @@ public int getPageSize() {
   }
 
   public static final int PAGE_TOKEN_FIELD_NUMBER = 3;
-  private volatile java.lang.Object pageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object pageToken_ = "";
   /**
    * 
    * The position of the page to be returned.
@@ -235,7 +181,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 3, pageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -254,7 +200,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, pageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -275,7 +221,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getPageSize()) return false;
     if (!getPageToken()
         .equals(other.getPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -292,7 +238,7 @@ public int hashCode() {
     hash = (53 * hash) + getPageSize();
     hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -413,28 +359,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.PagedExpandRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       content_ = "";
-
       pageSize_ = 0;
-
       pageToken_ = "";
-
       return this;
     }
 
@@ -461,13 +400,24 @@ public com.google.showcase.v1beta1.PagedExpandRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.PagedExpandRequest buildPartial() {
       com.google.showcase.v1beta1.PagedExpandRequest result = new com.google.showcase.v1beta1.PagedExpandRequest(this);
-      result.content_ = content_;
-      result.pageSize_ = pageSize_;
-      result.pageToken_ = pageToken_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.PagedExpandRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.content_ = content_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.pageSize_ = pageSize_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.pageToken_ = pageToken_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -514,6 +464,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.PagedExpandRequest other) {
       if (other == com.google.showcase.v1beta1.PagedExpandRequest.getDefaultInstance()) return this;
       if (!other.getContent().isEmpty()) {
         content_ = other.content_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.getPageSize() != 0) {
@@ -521,9 +472,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.PagedExpandRequest other) {
       }
       if (!other.getPageToken().isEmpty()) {
         pageToken_ = other.pageToken_;
+        bitField0_ |= 0x00000004;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -538,19 +490,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.PagedExpandRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              content_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              pageSize_ = input.readInt32();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 26: {
+              pageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 26
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.PagedExpandRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object content_ = "";
     /**
@@ -605,11 +586,9 @@ public java.lang.String getContent() {
      */
     public Builder setContent(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       content_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -622,8 +601,8 @@ public Builder setContent(
      * @return This builder for chaining.
      */
     public Builder clearContent() {
-      
       content_ = getDefaultInstance().getContent();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -638,12 +617,10 @@ public Builder clearContent() {
      */
     public Builder setContentBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       content_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -673,6 +650,7 @@ public int getPageSize() {
     public Builder setPageSize(int value) {
       
       pageSize_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -685,7 +663,7 @@ public Builder setPageSize(int value) {
      * @return This builder for chaining.
      */
     public Builder clearPageSize() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       pageSize_ = 0;
       onChanged();
       return this;
@@ -744,11 +722,9 @@ public java.lang.String getPageToken() {
      */
     public Builder setPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       pageToken_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -761,8 +737,8 @@ public Builder setPageToken(
      * @return This builder for chaining.
      */
     public Builder clearPageToken() {
-      
       pageToken_ = getDefaultInstance().getPageToken();
+      bitField0_ = (bitField0_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -777,12 +753,10 @@ public Builder clearPageToken() {
      */
     public Builder setPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       pageToken_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -819,7 +793,18 @@ public PagedExpandRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new PagedExpandRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandResponse.java
index a0c8934c64..c7856078c6 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandResponse.java
@@ -36,64 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private PagedExpandResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              responses_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            responses_.add(
-                input.readMessage(com.google.showcase.v1beta1.EchoResponse.parser(), extensionRegistry));
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            nextPageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        responses_ = java.util.Collections.unmodifiableList(responses_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_PagedExpandResponse_descriptor;
@@ -108,6 +50,7 @@ private PagedExpandResponse(
   }
 
   public static final int RESPONSES_FIELD_NUMBER = 1;
+  @SuppressWarnings("serial")
   private java.util.List responses_;
   /**
    * 
@@ -168,7 +111,8 @@ public com.google.showcase.v1beta1.EchoResponseOrBuilder getResponsesOrBuilder(
   }
 
   public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
-  private volatile java.lang.Object nextPageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object nextPageToken_ = "";
   /**
    * 
    * The next page token.
@@ -233,7 +177,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -249,7 +193,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -268,7 +212,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getResponsesList())) return false;
     if (!getNextPageToken()
         .equals(other.getNextPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -285,7 +229,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getNextPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -406,31 +350,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.PagedExpandResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getResponsesFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       if (responsesBuilder_ == null) {
         responses_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        responses_ = null;
         responsesBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000001);
       nextPageToken_ = "";
-
       return this;
     }
 
@@ -457,7 +396,13 @@ public com.google.showcase.v1beta1.PagedExpandResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.PagedExpandResponse buildPartial() {
       com.google.showcase.v1beta1.PagedExpandResponse result = new com.google.showcase.v1beta1.PagedExpandResponse(this);
-      int from_bitField0_ = bitField0_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.PagedExpandResponse result) {
       if (responsesBuilder_ == null) {
         if (((bitField0_ & 0x00000001) != 0)) {
           responses_ = java.util.Collections.unmodifiableList(responses_);
@@ -467,9 +412,13 @@ public com.google.showcase.v1beta1.PagedExpandResponse buildPartial() {
       } else {
         result.responses_ = responsesBuilder_.build();
       }
-      result.nextPageToken_ = nextPageToken_;
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.PagedExpandResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.nextPageToken_ = nextPageToken_;
+      }
     }
 
     @java.lang.Override
@@ -544,9 +493,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.PagedExpandResponse other)
       }
       if (!other.getNextPageToken().isEmpty()) {
         nextPageToken_ = other.nextPageToken_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -561,17 +511,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.PagedExpandResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              com.google.showcase.v1beta1.EchoResponse m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.EchoResponse.parser(),
+                      extensionRegistry);
+              if (responsesBuilder_ == null) {
+                ensureResponsesIsMutable();
+                responses_.add(m);
+              } else {
+                responsesBuilder_.addMessage(m);
+              }
+              break;
+            } // case 10
+            case 18: {
+              nextPageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.PagedExpandResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -941,11 +922,9 @@ public java.lang.String getNextPageToken() {
      */
     public Builder setNextPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -958,8 +937,8 @@ public Builder setNextPageToken(
      * @return This builder for chaining.
      */
     public Builder clearNextPageToken() {
-      
       nextPageToken_ = getDefaultInstance().getNextPageToken();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -974,12 +953,10 @@ public Builder clearNextPageToken() {
      */
     public Builder setNextPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1016,7 +993,18 @@ public PagedExpandResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new PagedExpandResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandResponseList.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandResponseList.java
index 61a75fdeb1..68701c202e 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandResponseList.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/PagedExpandResponseList.java
@@ -35,58 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private PagedExpandResponseList(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              words_ = new com.google.protobuf.LazyStringArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            words_.add(s);
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        words_ = words_.getUnmodifiableView();
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_PagedExpandResponseList_descriptor;
@@ -101,6 +49,7 @@ private PagedExpandResponseList(
   }
 
   public static final int WORDS_FIELD_NUMBER = 1;
+  @SuppressWarnings("serial")
   private com.google.protobuf.LazyStringList words_;
   /**
    * repeated string words = 1;
@@ -152,7 +101,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < words_.size(); i++) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, words_.getRaw(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -169,7 +118,7 @@ public int getSerializedSize() {
       size += dataSize;
       size += 1 * getWordsList().size();
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -186,7 +135,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getWordsList()
         .equals(other.getWordsList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -201,7 +150,7 @@ public int hashCode() {
       hash = (37 * hash) + WORDS_FIELD_NUMBER;
       hash = (53 * hash) + getWordsList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -322,22 +271,18 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.PagedExpandResponseList.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       words_ = com.google.protobuf.LazyStringArrayList.EMPTY;
       bitField0_ = (bitField0_ & ~0x00000001);
       return this;
@@ -366,14 +311,22 @@ public com.google.showcase.v1beta1.PagedExpandResponseList build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.PagedExpandResponseList buildPartial() {
       com.google.showcase.v1beta1.PagedExpandResponseList result = new com.google.showcase.v1beta1.PagedExpandResponseList(this);
-      int from_bitField0_ = bitField0_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.PagedExpandResponseList result) {
       if (((bitField0_ & 0x00000001) != 0)) {
         words_ = words_.getUnmodifiableView();
         bitField0_ = (bitField0_ & ~0x00000001);
       }
       result.words_ = words_;
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.PagedExpandResponseList result) {
+      int from_bitField0_ = bitField0_;
     }
 
     @java.lang.Override
@@ -430,7 +383,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.PagedExpandResponseList oth
         }
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -445,17 +398,36 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.PagedExpandResponseList parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              java.lang.String s = input.readStringRequireUtf8();
+              ensureWordsIsMutable();
+              words_.add(s);
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.PagedExpandResponseList) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -507,10 +479,8 @@ public java.lang.String getWords(int index) {
      */
     public Builder setWords(
         int index, java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureWordsIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureWordsIsMutable();
       words_.set(index, value);
       onChanged();
       return this;
@@ -522,10 +492,8 @@ public Builder setWords(
      */
     public Builder addWords(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureWordsIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureWordsIsMutable();
       words_.add(value);
       onChanged();
       return this;
@@ -560,10 +528,8 @@ public Builder clearWords() {
      */
     public Builder addWordsBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       ensureWordsIsMutable();
       words_.add(value);
       onChanged();
@@ -602,7 +568,18 @@ public PagedExpandResponseList parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new PagedExpandResponseList(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/RepeatRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/RepeatRequest.java
index 3a22cdf230..1fefa21ef5 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/RepeatRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/RepeatRequest.java
@@ -32,106 +32,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private RepeatRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            com.google.showcase.v1beta1.ComplianceData.Builder subBuilder = null;
-            if (info_ != null) {
-              subBuilder = info_.toBuilder();
-            }
-            info_ = input.readMessage(com.google.showcase.v1beta1.ComplianceData.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(info_);
-              info_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 24: {
-
-            serverVerify_ = input.readBool();
-            break;
-          }
-          case 32: {
-
-            fInt32_ = input.readInt32();
-            break;
-          }
-          case 40: {
-
-            fInt64_ = input.readInt64();
-            break;
-          }
-          case 49: {
-
-            fDouble_ = input.readDouble();
-            break;
-          }
-          case 56: {
-            bitField0_ |= 0x00000002;
-            pInt32_ = input.readInt32();
-            break;
-          }
-          case 64: {
-            bitField0_ |= 0x00000004;
-            pInt64_ = input.readInt64();
-            break;
-          }
-          case 73: {
-            bitField0_ |= 0x00000008;
-            pDouble_ = input.readDouble();
-            break;
-          }
-          case 82: {
-            java.lang.String s = input.readStringRequireUtf8();
-            bitField0_ |= 0x00000001;
-            intendedBindingUri_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.ComplianceOuterClass.internal_static_google_showcase_v1beta1_RepeatRequest_descriptor;
@@ -147,7 +47,8 @@ private RepeatRequest(
 
   private int bitField0_;
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * string name = 1;
    * @return The name.
@@ -207,11 +108,11 @@ public com.google.showcase.v1beta1.ComplianceData getInfo() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.ComplianceDataOrBuilder getInfoOrBuilder() {
-    return getInfo();
+    return info_ == null ? com.google.showcase.v1beta1.ComplianceData.getDefaultInstance() : info_;
   }
 
   public static final int SERVER_VERIFY_FIELD_NUMBER = 3;
-  private boolean serverVerify_;
+  private boolean serverVerify_ = false;
   /**
    * 
    * If true, the server will verify that the received request matches
@@ -227,7 +128,8 @@ public boolean getServerVerify() {
   }
 
   public static final int INTENDED_BINDING_URI_FIELD_NUMBER = 10;
-  private volatile java.lang.Object intendedBindingUri_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object intendedBindingUri_ = "";
   /**
    * 
    * The URI template this request is expected to be bound to server-side.
@@ -285,7 +187,7 @@ public java.lang.String getIntendedBindingUri() {
   }
 
   public static final int F_INT32_FIELD_NUMBER = 4;
-  private int fInt32_;
+  private int fInt32_ = 0;
   /**
    * 
    * Some top level fields, to test that these are encoded correctly
@@ -301,7 +203,7 @@ public int getFInt32() {
   }
 
   public static final int F_INT64_FIELD_NUMBER = 5;
-  private long fInt64_;
+  private long fInt64_ = 0L;
   /**
    * int64 f_int64 = 5;
    * @return The fInt64.
@@ -312,7 +214,7 @@ public long getFInt64() {
   }
 
   public static final int F_DOUBLE_FIELD_NUMBER = 6;
-  private double fDouble_;
+  private double fDouble_ = 0D;
   /**
    * double f_double = 6;
    * @return The fDouble.
@@ -323,7 +225,7 @@ public double getFDouble() {
   }
 
   public static final int P_INT32_FIELD_NUMBER = 7;
-  private int pInt32_;
+  private int pInt32_ = 0;
   /**
    * optional int32 p_int32 = 7;
    * @return Whether the pInt32 field is set.
@@ -342,7 +244,7 @@ public int getPInt32() {
   }
 
   public static final int P_INT64_FIELD_NUMBER = 8;
-  private long pInt64_;
+  private long pInt64_ = 0L;
   /**
    * optional int64 p_int64 = 8;
    * @return Whether the pInt64 field is set.
@@ -361,7 +263,7 @@ public long getPInt64() {
   }
 
   public static final int P_DOUBLE_FIELD_NUMBER = 9;
-  private double pDouble_;
+  private double pDouble_ = 0D;
   /**
    * optional double p_double = 9;
    * @return Whether the pDouble field is set.
@@ -423,7 +325,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (((bitField0_ & 0x00000001) != 0)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 10, intendedBindingUri_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -470,7 +372,7 @@ public int getSerializedSize() {
     if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, intendedBindingUri_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -522,7 +424,7 @@ public boolean equals(final java.lang.Object obj) {
           != java.lang.Double.doubleToLongBits(
               other.getPDouble())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -568,7 +470,7 @@ public int hashCode() {
       hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
           java.lang.Double.doubleToLongBits(getPDouble()));
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -685,46 +587,32 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.RepeatRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
-      if (infoBuilder_ == null) {
-        info_ = null;
-      } else {
-        info_ = null;
+      info_ = null;
+      if (infoBuilder_ != null) {
+        infoBuilder_.dispose();
         infoBuilder_ = null;
       }
       serverVerify_ = false;
-
       intendedBindingUri_ = "";
-      bitField0_ = (bitField0_ & ~0x00000001);
       fInt32_ = 0;
-
       fInt64_ = 0L;
-
       fDouble_ = 0D;
-
       pInt32_ = 0;
-      bitField0_ = (bitField0_ & ~0x00000002);
       pInt64_ = 0L;
-      bitField0_ = (bitField0_ & ~0x00000004);
       pDouble_ = 0D;
-      bitField0_ = (bitField0_ & ~0x00000008);
       return this;
     }
 
@@ -751,37 +639,51 @@ public com.google.showcase.v1beta1.RepeatRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.RepeatRequest buildPartial() {
       com.google.showcase.v1beta1.RepeatRequest result = new com.google.showcase.v1beta1.RepeatRequest(this);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.RepeatRequest result) {
       int from_bitField0_ = bitField0_;
-      int to_bitField0_ = 0;
-      result.name_ = name_;
-      if (infoBuilder_ == null) {
-        result.info_ = info_;
-      } else {
-        result.info_ = infoBuilder_.build();
-      }
-      result.serverVerify_ = serverVerify_;
       if (((from_bitField0_ & 0x00000001) != 0)) {
-        to_bitField0_ |= 0x00000001;
+        result.name_ = name_;
       }
-      result.intendedBindingUri_ = intendedBindingUri_;
-      result.fInt32_ = fInt32_;
-      result.fInt64_ = fInt64_;
-      result.fDouble_ = fDouble_;
       if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.info_ = infoBuilder_ == null
+            ? info_
+            : infoBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.serverVerify_ = serverVerify_;
+      }
+      int to_bitField0_ = 0;
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.intendedBindingUri_ = intendedBindingUri_;
+        to_bitField0_ |= 0x00000001;
+      }
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.fInt32_ = fInt32_;
+      }
+      if (((from_bitField0_ & 0x00000020) != 0)) {
+        result.fInt64_ = fInt64_;
+      }
+      if (((from_bitField0_ & 0x00000040) != 0)) {
+        result.fDouble_ = fDouble_;
+      }
+      if (((from_bitField0_ & 0x00000080) != 0)) {
         result.pInt32_ = pInt32_;
         to_bitField0_ |= 0x00000002;
       }
-      if (((from_bitField0_ & 0x00000004) != 0)) {
+      if (((from_bitField0_ & 0x00000100) != 0)) {
         result.pInt64_ = pInt64_;
         to_bitField0_ |= 0x00000004;
       }
-      if (((from_bitField0_ & 0x00000008) != 0)) {
+      if (((from_bitField0_ & 0x00000200) != 0)) {
         result.pDouble_ = pDouble_;
         to_bitField0_ |= 0x00000008;
       }
-      result.bitField0_ = to_bitField0_;
-      onBuilt();
-      return result;
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -830,6 +732,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.RepeatRequest other) {
       if (other == com.google.showcase.v1beta1.RepeatRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.hasInfo()) {
@@ -839,8 +742,8 @@ public Builder mergeFrom(com.google.showcase.v1beta1.RepeatRequest other) {
         setServerVerify(other.getServerVerify());
       }
       if (other.hasIntendedBindingUri()) {
-        bitField0_ |= 0x00000001;
         intendedBindingUri_ = other.intendedBindingUri_;
+        bitField0_ |= 0x00000008;
         onChanged();
       }
       if (other.getFInt32() != 0) {
@@ -861,7 +764,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.RepeatRequest other) {
       if (other.hasPDouble()) {
         setPDouble(other.getPDouble());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -876,17 +779,82 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.RepeatRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getInfoFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 24: {
+              serverVerify_ = input.readBool();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 32: {
+              fInt32_ = input.readInt32();
+              bitField0_ |= 0x00000010;
+              break;
+            } // case 32
+            case 40: {
+              fInt64_ = input.readInt64();
+              bitField0_ |= 0x00000020;
+              break;
+            } // case 40
+            case 49: {
+              fDouble_ = input.readDouble();
+              bitField0_ |= 0x00000040;
+              break;
+            } // case 49
+            case 56: {
+              pInt32_ = input.readInt32();
+              bitField0_ |= 0x00000080;
+              break;
+            } // case 56
+            case 64: {
+              pInt64_ = input.readInt64();
+              bitField0_ |= 0x00000100;
+              break;
+            } // case 64
+            case 73: {
+              pDouble_ = input.readDouble();
+              bitField0_ |= 0x00000200;
+              break;
+            } // case 73
+            case 82: {
+              intendedBindingUri_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 82
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.RepeatRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -932,11 +900,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -945,8 +911,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -957,12 +923,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -975,7 +939,7 @@ public Builder setNameBytes(
      * @return Whether the info field is set.
      */
     public boolean hasInfo() {
-      return infoBuilder_ != null || info_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * .google.showcase.v1beta1.ComplianceData info = 2;
@@ -997,11 +961,11 @@ public Builder setInfo(com.google.showcase.v1beta1.ComplianceData value) {
           throw new NullPointerException();
         }
         info_ = value;
-        onChanged();
       } else {
         infoBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -1011,11 +975,11 @@ public Builder setInfo(
         com.google.showcase.v1beta1.ComplianceData.Builder builderForValue) {
       if (infoBuilder_ == null) {
         info_ = builderForValue.build();
-        onChanged();
       } else {
         infoBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -1023,38 +987,38 @@ public Builder setInfo(
      */
     public Builder mergeInfo(com.google.showcase.v1beta1.ComplianceData value) {
       if (infoBuilder_ == null) {
-        if (info_ != null) {
-          info_ =
-            com.google.showcase.v1beta1.ComplianceData.newBuilder(info_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000002) != 0) &&
+          info_ != null &&
+          info_ != com.google.showcase.v1beta1.ComplianceData.getDefaultInstance()) {
+          getInfoBuilder().mergeFrom(value);
         } else {
           info_ = value;
         }
-        onChanged();
       } else {
         infoBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
      * .google.showcase.v1beta1.ComplianceData info = 2;
      */
     public Builder clearInfo() {
-      if (infoBuilder_ == null) {
-        info_ = null;
-        onChanged();
-      } else {
-        info_ = null;
+      bitField0_ = (bitField0_ & ~0x00000002);
+      info_ = null;
+      if (infoBuilder_ != null) {
+        infoBuilder_.dispose();
         infoBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .google.showcase.v1beta1.ComplianceData info = 2;
      */
     public com.google.showcase.v1beta1.ComplianceData.Builder getInfoBuilder() {
-      
+      bitField0_ |= 0x00000002;
       onChanged();
       return getInfoFieldBuilder().getBuilder();
     }
@@ -1113,6 +1077,7 @@ public boolean getServerVerify() {
     public Builder setServerVerify(boolean value) {
       
       serverVerify_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1126,7 +1091,7 @@ public Builder setServerVerify(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearServerVerify() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       serverVerify_ = false;
       onChanged();
       return this;
@@ -1142,7 +1107,7 @@ public Builder clearServerVerify() {
      * @return Whether the intendedBindingUri field is set.
      */
     public boolean hasIntendedBindingUri() {
-      return ((bitField0_ & 0x00000001) != 0);
+      return ((bitField0_ & 0x00000008) != 0);
     }
     /**
      * 
@@ -1196,11 +1161,9 @@ public java.lang.String getIntendedBindingUri() {
      */
     public Builder setIntendedBindingUri(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
+      if (value == null) { throw new NullPointerException(); }
       intendedBindingUri_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1213,8 +1176,8 @@ public Builder setIntendedBindingUri(
      * @return This builder for chaining.
      */
     public Builder clearIntendedBindingUri() {
-      bitField0_ = (bitField0_ & ~0x00000001);
       intendedBindingUri_ = getDefaultInstance().getIntendedBindingUri();
+      bitField0_ = (bitField0_ & ~0x00000008);
       onChanged();
       return this;
     }
@@ -1229,12 +1192,10 @@ public Builder clearIntendedBindingUri() {
      */
     public Builder setIntendedBindingUriBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      bitField0_ |= 0x00000001;
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       intendedBindingUri_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1266,6 +1227,7 @@ public int getFInt32() {
     public Builder setFInt32(int value) {
       
       fInt32_ = value;
+      bitField0_ |= 0x00000010;
       onChanged();
       return this;
     }
@@ -1279,7 +1241,7 @@ public Builder setFInt32(int value) {
      * @return This builder for chaining.
      */
     public Builder clearFInt32() {
-      
+      bitField0_ = (bitField0_ & ~0x00000010);
       fInt32_ = 0;
       onChanged();
       return this;
@@ -1302,6 +1264,7 @@ public long getFInt64() {
     public Builder setFInt64(long value) {
       
       fInt64_ = value;
+      bitField0_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -1310,7 +1273,7 @@ public Builder setFInt64(long value) {
      * @return This builder for chaining.
      */
     public Builder clearFInt64() {
-      
+      bitField0_ = (bitField0_ & ~0x00000020);
       fInt64_ = 0L;
       onChanged();
       return this;
@@ -1333,6 +1296,7 @@ public double getFDouble() {
     public Builder setFDouble(double value) {
       
       fDouble_ = value;
+      bitField0_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -1341,7 +1305,7 @@ public Builder setFDouble(double value) {
      * @return This builder for chaining.
      */
     public Builder clearFDouble() {
-      
+      bitField0_ = (bitField0_ & ~0x00000040);
       fDouble_ = 0D;
       onChanged();
       return this;
@@ -1354,7 +1318,7 @@ public Builder clearFDouble() {
      */
     @java.lang.Override
     public boolean hasPInt32() {
-      return ((bitField0_ & 0x00000002) != 0);
+      return ((bitField0_ & 0x00000080) != 0);
     }
     /**
      * optional int32 p_int32 = 7;
@@ -1370,8 +1334,9 @@ public int getPInt32() {
      * @return This builder for chaining.
      */
     public Builder setPInt32(int value) {
-      bitField0_ |= 0x00000002;
+      
       pInt32_ = value;
+      bitField0_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -1380,7 +1345,7 @@ public Builder setPInt32(int value) {
      * @return This builder for chaining.
      */
     public Builder clearPInt32() {
-      bitField0_ = (bitField0_ & ~0x00000002);
+      bitField0_ = (bitField0_ & ~0x00000080);
       pInt32_ = 0;
       onChanged();
       return this;
@@ -1393,7 +1358,7 @@ public Builder clearPInt32() {
      */
     @java.lang.Override
     public boolean hasPInt64() {
-      return ((bitField0_ & 0x00000004) != 0);
+      return ((bitField0_ & 0x00000100) != 0);
     }
     /**
      * optional int64 p_int64 = 8;
@@ -1409,8 +1374,9 @@ public long getPInt64() {
      * @return This builder for chaining.
      */
     public Builder setPInt64(long value) {
-      bitField0_ |= 0x00000004;
+      
       pInt64_ = value;
+      bitField0_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -1419,7 +1385,7 @@ public Builder setPInt64(long value) {
      * @return This builder for chaining.
      */
     public Builder clearPInt64() {
-      bitField0_ = (bitField0_ & ~0x00000004);
+      bitField0_ = (bitField0_ & ~0x00000100);
       pInt64_ = 0L;
       onChanged();
       return this;
@@ -1432,7 +1398,7 @@ public Builder clearPInt64() {
      */
     @java.lang.Override
     public boolean hasPDouble() {
-      return ((bitField0_ & 0x00000008) != 0);
+      return ((bitField0_ & 0x00000200) != 0);
     }
     /**
      * optional double p_double = 9;
@@ -1448,8 +1414,9 @@ public double getPDouble() {
      * @return This builder for chaining.
      */
     public Builder setPDouble(double value) {
-      bitField0_ |= 0x00000008;
+      
       pDouble_ = value;
+      bitField0_ |= 0x00000200;
       onChanged();
       return this;
     }
@@ -1458,7 +1425,7 @@ public Builder setPDouble(double value) {
      * @return This builder for chaining.
      */
     public Builder clearPDouble() {
-      bitField0_ = (bitField0_ & ~0x00000008);
+      bitField0_ = (bitField0_ & ~0x00000200);
       pDouble_ = 0D;
       onChanged();
       return this;
@@ -1496,7 +1463,18 @@ public RepeatRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new RepeatRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/RepeatResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/RepeatResponse.java
index 48b1ad96ac..63fd1bfce6 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/RepeatResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/RepeatResponse.java
@@ -31,64 +31,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private RepeatResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.showcase.v1beta1.RepeatRequest.Builder subBuilder = null;
-            if (request_ != null) {
-              subBuilder = request_.toBuilder();
-            }
-            request_ = input.readMessage(com.google.showcase.v1beta1.RepeatRequest.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(request_);
-              request_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            bindingUri_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.ComplianceOuterClass.internal_static_google_showcase_v1beta1_RepeatResponse_descriptor;
@@ -125,11 +67,12 @@ public com.google.showcase.v1beta1.RepeatRequest getRequest() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.RepeatRequestOrBuilder getRequestOrBuilder() {
-    return getRequest();
+    return request_ == null ? com.google.showcase.v1beta1.RepeatRequest.getDefaultInstance() : request_;
   }
 
   public static final int BINDING_URI_FIELD_NUMBER = 2;
-  private volatile java.lang.Object bindingUri_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object bindingUri_ = "";
   /**
    * 
    * The URI template the request was bound to server-side.
@@ -194,7 +137,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bindingUri_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, bindingUri_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -210,7 +153,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bindingUri_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, bindingUri_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -232,7 +175,7 @@ public boolean equals(final java.lang.Object obj) {
     }
     if (!getBindingUri()
         .equals(other.getBindingUri())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -249,7 +192,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + BINDING_URI_FIELD_NUMBER;
     hash = (53 * hash) + getBindingUri().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -366,30 +309,24 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.RepeatResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (requestBuilder_ == null) {
-        request_ = null;
-      } else {
-        request_ = null;
+      bitField0_ = 0;
+      request_ = null;
+      if (requestBuilder_ != null) {
+        requestBuilder_.dispose();
         requestBuilder_ = null;
       }
       bindingUri_ = "";
-
       return this;
     }
 
@@ -416,16 +353,23 @@ public com.google.showcase.v1beta1.RepeatResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.RepeatResponse buildPartial() {
       com.google.showcase.v1beta1.RepeatResponse result = new com.google.showcase.v1beta1.RepeatResponse(this);
-      if (requestBuilder_ == null) {
-        result.request_ = request_;
-      } else {
-        result.request_ = requestBuilder_.build();
-      }
-      result.bindingUri_ = bindingUri_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.RepeatResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.request_ = requestBuilder_ == null
+            ? request_
+            : requestBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.bindingUri_ = bindingUri_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -475,9 +419,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.RepeatResponse other) {
       }
       if (!other.getBindingUri().isEmpty()) {
         bindingUri_ = other.bindingUri_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -492,19 +437,45 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.RepeatResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getRequestFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              bindingUri_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.RepeatResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.showcase.v1beta1.RepeatRequest request_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -514,7 +485,7 @@ public Builder mergeFrom(
      * @return Whether the request field is set.
      */
     public boolean hasRequest() {
-      return requestBuilder_ != null || request_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * .google.showcase.v1beta1.RepeatRequest request = 1;
@@ -536,11 +507,11 @@ public Builder setRequest(com.google.showcase.v1beta1.RepeatRequest value) {
           throw new NullPointerException();
         }
         request_ = value;
-        onChanged();
       } else {
         requestBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -550,11 +521,11 @@ public Builder setRequest(
         com.google.showcase.v1beta1.RepeatRequest.Builder builderForValue) {
       if (requestBuilder_ == null) {
         request_ = builderForValue.build();
-        onChanged();
       } else {
         requestBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -562,38 +533,38 @@ public Builder setRequest(
      */
     public Builder mergeRequest(com.google.showcase.v1beta1.RepeatRequest value) {
       if (requestBuilder_ == null) {
-        if (request_ != null) {
-          request_ =
-            com.google.showcase.v1beta1.RepeatRequest.newBuilder(request_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          request_ != null &&
+          request_ != com.google.showcase.v1beta1.RepeatRequest.getDefaultInstance()) {
+          getRequestBuilder().mergeFrom(value);
         } else {
           request_ = value;
         }
-        onChanged();
       } else {
         requestBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
      * .google.showcase.v1beta1.RepeatRequest request = 1;
      */
     public Builder clearRequest() {
-      if (requestBuilder_ == null) {
-        request_ = null;
-        onChanged();
-      } else {
-        request_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      request_ = null;
+      if (requestBuilder_ != null) {
+        requestBuilder_.dispose();
         requestBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
      * .google.showcase.v1beta1.RepeatRequest request = 1;
      */
     public com.google.showcase.v1beta1.RepeatRequest.Builder getRequestBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getRequestFieldBuilder().getBuilder();
     }
@@ -678,11 +649,9 @@ public java.lang.String getBindingUri() {
      */
     public Builder setBindingUri(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       bindingUri_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -695,8 +664,8 @@ public Builder setBindingUri(
      * @return This builder for chaining.
      */
     public Builder clearBindingUri() {
-      
       bindingUri_ = getDefaultInstance().getBindingUri();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -711,12 +680,10 @@ public Builder clearBindingUri() {
      */
     public Builder setBindingUriBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       bindingUri_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -753,7 +720,18 @@ public RepeatResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new RepeatResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ReportSessionRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ReportSessionRequest.java
index 397a926c8d..1e8f5684a6 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ReportSessionRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ReportSessionRequest.java
@@ -35,51 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ReportSessionRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_ReportSessionRequest_descriptor;
@@ -94,7 +49,8 @@ private ReportSessionRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The session to be reported on.
@@ -156,7 +112,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -168,7 +124,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -185,7 +141,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getName()
         .equals(other.getName())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -198,7 +154,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + NAME_FIELD_NUMBER;
     hash = (53 * hash) + getName().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -319,24 +275,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ReportSessionRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       return this;
     }
 
@@ -363,11 +314,18 @@ public com.google.showcase.v1beta1.ReportSessionRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ReportSessionRequest buildPartial() {
       com.google.showcase.v1beta1.ReportSessionRequest result = new com.google.showcase.v1beta1.ReportSessionRequest(this);
-      result.name_ = name_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.ReportSessionRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -414,9 +372,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ReportSessionRequest other)
       if (other == com.google.showcase.v1beta1.ReportSessionRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -431,19 +390,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ReportSessionRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ReportSessionRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -498,11 +476,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -515,8 +491,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -531,12 +507,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -573,7 +547,18 @@ public ReportSessionRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ReportSessionRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ReportSessionResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ReportSessionResponse.java
index 9b83e8a5d9..aedf6530e7 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ReportSessionResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/ReportSessionResponse.java
@@ -36,64 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private ReportSessionResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 8: {
-            int rawValue = input.readEnum();
-
-            result_ = rawValue;
-            break;
-          }
-          case 18: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              testRuns_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            testRuns_.add(
-                input.readMessage(com.google.showcase.v1beta1.TestRun.parser(), extensionRegistry));
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        testRuns_ = java.util.Collections.unmodifiableList(testRuns_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_ReportSessionResponse_descriptor;
@@ -262,7 +204,7 @@ private Result(int value) {
   }
 
   public static final int RESULT_FIELD_NUMBER = 1;
-  private int result_;
+  private int result_ = 0;
   /**
    * 
    * The state of the report.
@@ -283,12 +225,12 @@ private Result(int value) {
    * @return The result.
    */
   @java.lang.Override public com.google.showcase.v1beta1.ReportSessionResponse.Result getResult() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.ReportSessionResponse.Result result = com.google.showcase.v1beta1.ReportSessionResponse.Result.valueOf(result_);
+    com.google.showcase.v1beta1.ReportSessionResponse.Result result = com.google.showcase.v1beta1.ReportSessionResponse.Result.forNumber(result_);
     return result == null ? com.google.showcase.v1beta1.ReportSessionResponse.Result.UNRECOGNIZED : result;
   }
 
   public static final int TEST_RUNS_FIELD_NUMBER = 2;
+  @SuppressWarnings("serial")
   private java.util.List testRuns_;
   /**
    * 
@@ -368,7 +310,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < testRuns_.size(); i++) {
       output.writeMessage(2, testRuns_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -385,7 +327,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, testRuns_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -403,7 +345,7 @@ public boolean equals(final java.lang.Object obj) {
     if (result_ != other.result_) return false;
     if (!getTestRunsList()
         .equals(other.getTestRunsList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -420,7 +362,7 @@ public int hashCode() {
       hash = (37 * hash) + TEST_RUNS_FIELD_NUMBER;
       hash = (53 * hash) + getTestRunsList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -541,31 +483,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.ReportSessionResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getTestRunsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       result_ = 0;
-
       if (testRunsBuilder_ == null) {
         testRuns_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        testRuns_ = null;
         testRunsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000002);
       return this;
     }
 
@@ -592,19 +529,29 @@ public com.google.showcase.v1beta1.ReportSessionResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.ReportSessionResponse buildPartial() {
       com.google.showcase.v1beta1.ReportSessionResponse result = new com.google.showcase.v1beta1.ReportSessionResponse(this);
-      int from_bitField0_ = bitField0_;
-      result.result_ = result_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.ReportSessionResponse result) {
       if (testRunsBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000002) != 0)) {
           testRuns_ = java.util.Collections.unmodifiableList(testRuns_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000002);
         }
         result.testRuns_ = testRuns_;
       } else {
         result.testRuns_ = testRunsBuilder_.build();
       }
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.ReportSessionResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.result_ = result_;
+      }
     }
 
     @java.lang.Override
@@ -658,7 +605,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ReportSessionResponse other
         if (!other.testRuns_.isEmpty()) {
           if (testRuns_.isEmpty()) {
             testRuns_ = other.testRuns_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
           } else {
             ensureTestRunsIsMutable();
             testRuns_.addAll(other.testRuns_);
@@ -671,7 +618,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ReportSessionResponse other
             testRunsBuilder_.dispose();
             testRunsBuilder_ = null;
             testRuns_ = other.testRuns_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
             testRunsBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getTestRunsFieldBuilder() : null;
@@ -680,7 +627,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.ReportSessionResponse other
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -695,17 +642,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.ReportSessionResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              result_ = input.readEnum();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 8
+            case 18: {
+              com.google.showcase.v1beta1.TestRun m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.TestRun.parser(),
+                      extensionRegistry);
+              if (testRunsBuilder_ == null) {
+                ensureTestRunsIsMutable();
+                testRuns_.add(m);
+              } else {
+                testRunsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.ReportSessionResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -732,8 +710,8 @@ public Builder mergeFrom(
      * @return This builder for chaining.
      */
     public Builder setResultValue(int value) {
-      
       result_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -747,8 +725,7 @@ public Builder setResultValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.ReportSessionResponse.Result getResult() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.ReportSessionResponse.Result result = com.google.showcase.v1beta1.ReportSessionResponse.Result.valueOf(result_);
+      com.google.showcase.v1beta1.ReportSessionResponse.Result result = com.google.showcase.v1beta1.ReportSessionResponse.Result.forNumber(result_);
       return result == null ? com.google.showcase.v1beta1.ReportSessionResponse.Result.UNRECOGNIZED : result;
     }
     /**
@@ -764,7 +741,7 @@ public Builder setResult(com.google.showcase.v1beta1.ReportSessionResponse.Resul
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000001;
       result_ = value.getNumber();
       onChanged();
       return this;
@@ -778,7 +755,7 @@ public Builder setResult(com.google.showcase.v1beta1.ReportSessionResponse.Resul
      * @return This builder for chaining.
      */
     public Builder clearResult() {
-      
+      bitField0_ = (bitField0_ & ~0x00000001);
       result_ = 0;
       onChanged();
       return this;
@@ -787,9 +764,9 @@ public Builder clearResult() {
     private java.util.List testRuns_ =
       java.util.Collections.emptyList();
     private void ensureTestRunsIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000002) != 0)) {
         testRuns_ = new java.util.ArrayList(testRuns_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000002;
        }
     }
 
@@ -983,7 +960,7 @@ public Builder addAllTestRuns(
     public Builder clearTestRuns() {
       if (testRunsBuilder_ == null) {
         testRuns_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
       } else {
         testRunsBuilder_.clear();
@@ -1088,7 +1065,7 @@ public com.google.showcase.v1beta1.TestRun.Builder addTestRunsBuilder(
         testRunsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             com.google.showcase.v1beta1.TestRun, com.google.showcase.v1beta1.TestRun.Builder, com.google.showcase.v1beta1.TestRunOrBuilder>(
                 testRuns_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000002) != 0),
                 getParentForChildren(),
                 isClean());
         testRuns_ = null;
@@ -1128,7 +1105,18 @@ public ReportSessionResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new ReportSessionResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Room.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Room.java
index d03db19025..037a9f645a 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Room.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Room.java
@@ -37,89 +37,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private Room(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            displayName_ = s;
-            break;
-          }
-          case 26: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            description_ = s;
-            break;
-          }
-          case 34: {
-            com.google.protobuf.Timestamp.Builder subBuilder = null;
-            if (createTime_ != null) {
-              subBuilder = createTime_.toBuilder();
-            }
-            createTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(createTime_);
-              createTime_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 42: {
-            com.google.protobuf.Timestamp.Builder subBuilder = null;
-            if (updateTime_ != null) {
-              subBuilder = updateTime_.toBuilder();
-            }
-            updateTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(updateTime_);
-              updateTime_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_Room_descriptor;
@@ -134,7 +51,8 @@ private Room(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The resource name of the chat room.
@@ -180,7 +98,8 @@ public java.lang.String getName() {
   }
 
   public static final int DISPLAY_NAME_FIELD_NUMBER = 2;
-  private volatile java.lang.Object displayName_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object displayName_ = "";
   /**
    * 
    * The human readable name of the chat room.
@@ -226,7 +145,8 @@ public java.lang.String getDisplayName() {
   }
 
   public static final int DESCRIPTION_FIELD_NUMBER = 3;
-  private volatile java.lang.Object description_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object description_ = "";
   /**
    * 
    * The description of the chat room.
@@ -306,7 +226,7 @@ public com.google.protobuf.Timestamp getCreateTime() {
    */
   @java.lang.Override
   public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
-    return getCreateTime();
+    return createTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : createTime_;
   }
 
   public static final int UPDATE_TIME_FIELD_NUMBER = 5;
@@ -344,7 +264,7 @@ public com.google.protobuf.Timestamp getUpdateTime() {
    */
   @java.lang.Override
   public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
-    return getUpdateTime();
+    return updateTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : updateTime_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -376,7 +296,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (updateTime_ != null) {
       output.writeMessage(5, getUpdateTime());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -402,7 +322,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(5, getUpdateTime());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -433,7 +353,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getUpdateTime()
           .equals(other.getUpdateTime())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -458,7 +378,7 @@ public int hashCode() {
       hash = (37 * hash) + UPDATE_TIME_FIELD_NUMBER;
       hash = (53 * hash) + getUpdateTime().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -579,38 +499,29 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.Room.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       displayName_ = "";
-
       description_ = "";
-
-      if (createTimeBuilder_ == null) {
-        createTime_ = null;
-      } else {
-        createTime_ = null;
+      createTime_ = null;
+      if (createTimeBuilder_ != null) {
+        createTimeBuilder_.dispose();
         createTimeBuilder_ = null;
       }
-      if (updateTimeBuilder_ == null) {
-        updateTime_ = null;
-      } else {
-        updateTime_ = null;
+      updateTime_ = null;
+      if (updateTimeBuilder_ != null) {
+        updateTimeBuilder_.dispose();
         updateTimeBuilder_ = null;
       }
       return this;
@@ -639,23 +550,34 @@ public com.google.showcase.v1beta1.Room build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.Room buildPartial() {
       com.google.showcase.v1beta1.Room result = new com.google.showcase.v1beta1.Room(this);
-      result.name_ = name_;
-      result.displayName_ = displayName_;
-      result.description_ = description_;
-      if (createTimeBuilder_ == null) {
-        result.createTime_ = createTime_;
-      } else {
-        result.createTime_ = createTimeBuilder_.build();
-      }
-      if (updateTimeBuilder_ == null) {
-        result.updateTime_ = updateTime_;
-      } else {
-        result.updateTime_ = updateTimeBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.Room result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.displayName_ = displayName_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.description_ = description_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.createTime_ = createTimeBuilder_ == null
+            ? createTime_
+            : createTimeBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.updateTime_ = updateTimeBuilder_ == null
+            ? updateTime_
+            : updateTimeBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -702,14 +624,17 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Room other) {
       if (other == com.google.showcase.v1beta1.Room.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (!other.getDisplayName().isEmpty()) {
         displayName_ = other.displayName_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
       if (!other.getDescription().isEmpty()) {
         description_ = other.description_;
+        bitField0_ |= 0x00000004;
         onChanged();
       }
       if (other.hasCreateTime()) {
@@ -718,7 +643,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Room other) {
       if (other.hasUpdateTime()) {
         mergeUpdateTime(other.getUpdateTime());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -733,19 +658,62 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.Room parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              displayName_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 26: {
+              description_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 26
+            case 34: {
+              input.readMessage(
+                  getCreateTimeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 34
+            case 42: {
+              input.readMessage(
+                  getUpdateTimeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000010;
+              break;
+            } // case 42
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.Room) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -800,11 +768,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -817,8 +783,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -833,12 +799,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -896,11 +860,9 @@ public java.lang.String getDisplayName() {
      */
     public Builder setDisplayName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       displayName_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -913,8 +875,8 @@ public Builder setDisplayName(
      * @return This builder for chaining.
      */
     public Builder clearDisplayName() {
-      
       displayName_ = getDefaultInstance().getDisplayName();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -929,12 +891,10 @@ public Builder clearDisplayName() {
      */
     public Builder setDisplayNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       displayName_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -992,11 +952,9 @@ public java.lang.String getDescription() {
      */
     public Builder setDescription(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       description_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1009,8 +967,8 @@ public Builder setDescription(
      * @return This builder for chaining.
      */
     public Builder clearDescription() {
-      
       description_ = getDefaultInstance().getDescription();
+      bitField0_ = (bitField0_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -1025,12 +983,10 @@ public Builder clearDescription() {
      */
     public Builder setDescriptionBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       description_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1047,7 +1003,7 @@ public Builder setDescriptionBytes(
      * @return Whether the createTime field is set.
      */
     public boolean hasCreateTime() {
-      return createTimeBuilder_ != null || createTime_ != null;
+      return ((bitField0_ & 0x00000008) != 0);
     }
     /**
      * 
@@ -1077,11 +1033,11 @@ public Builder setCreateTime(com.google.protobuf.Timestamp value) {
           throw new NullPointerException();
         }
         createTime_ = value;
-        onChanged();
       } else {
         createTimeBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000008;
+      onChanged();
       return this;
     }
     /**
@@ -1095,11 +1051,11 @@ public Builder setCreateTime(
         com.google.protobuf.Timestamp.Builder builderForValue) {
       if (createTimeBuilder_ == null) {
         createTime_ = builderForValue.build();
-        onChanged();
       } else {
         createTimeBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000008;
+      onChanged();
       return this;
     }
     /**
@@ -1111,17 +1067,18 @@ public Builder setCreateTime(
      */
     public Builder mergeCreateTime(com.google.protobuf.Timestamp value) {
       if (createTimeBuilder_ == null) {
-        if (createTime_ != null) {
-          createTime_ =
-            com.google.protobuf.Timestamp.newBuilder(createTime_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000008) != 0) &&
+          createTime_ != null &&
+          createTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+          getCreateTimeBuilder().mergeFrom(value);
         } else {
           createTime_ = value;
         }
-        onChanged();
       } else {
         createTimeBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000008;
+      onChanged();
       return this;
     }
     /**
@@ -1132,14 +1089,13 @@ public Builder mergeCreateTime(com.google.protobuf.Timestamp value) {
      * .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
      */
     public Builder clearCreateTime() {
-      if (createTimeBuilder_ == null) {
-        createTime_ = null;
-        onChanged();
-      } else {
-        createTime_ = null;
+      bitField0_ = (bitField0_ & ~0x00000008);
+      createTime_ = null;
+      if (createTimeBuilder_ != null) {
+        createTimeBuilder_.dispose();
         createTimeBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -1150,7 +1106,7 @@ public Builder clearCreateTime() {
      * .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
      */
     public com.google.protobuf.Timestamp.Builder getCreateTimeBuilder() {
-      
+      bitField0_ |= 0x00000008;
       onChanged();
       return getCreateTimeFieldBuilder().getBuilder();
     }
@@ -1202,7 +1158,7 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
      * @return Whether the updateTime field is set.
      */
     public boolean hasUpdateTime() {
-      return updateTimeBuilder_ != null || updateTime_ != null;
+      return ((bitField0_ & 0x00000010) != 0);
     }
     /**
      * 
@@ -1232,11 +1188,11 @@ public Builder setUpdateTime(com.google.protobuf.Timestamp value) {
           throw new NullPointerException();
         }
         updateTime_ = value;
-        onChanged();
       } else {
         updateTimeBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000010;
+      onChanged();
       return this;
     }
     /**
@@ -1250,11 +1206,11 @@ public Builder setUpdateTime(
         com.google.protobuf.Timestamp.Builder builderForValue) {
       if (updateTimeBuilder_ == null) {
         updateTime_ = builderForValue.build();
-        onChanged();
       } else {
         updateTimeBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000010;
+      onChanged();
       return this;
     }
     /**
@@ -1266,17 +1222,18 @@ public Builder setUpdateTime(
      */
     public Builder mergeUpdateTime(com.google.protobuf.Timestamp value) {
       if (updateTimeBuilder_ == null) {
-        if (updateTime_ != null) {
-          updateTime_ =
-            com.google.protobuf.Timestamp.newBuilder(updateTime_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000010) != 0) &&
+          updateTime_ != null &&
+          updateTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+          getUpdateTimeBuilder().mergeFrom(value);
         } else {
           updateTime_ = value;
         }
-        onChanged();
       } else {
         updateTimeBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000010;
+      onChanged();
       return this;
     }
     /**
@@ -1287,14 +1244,13 @@ public Builder mergeUpdateTime(com.google.protobuf.Timestamp value) {
      * .google.protobuf.Timestamp update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
      */
     public Builder clearUpdateTime() {
-      if (updateTimeBuilder_ == null) {
-        updateTime_ = null;
-        onChanged();
-      } else {
-        updateTime_ = null;
+      bitField0_ = (bitField0_ & ~0x00000010);
+      updateTime_ = null;
+      if (updateTimeBuilder_ != null) {
+        updateTimeBuilder_.dispose();
         updateTimeBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -1305,7 +1261,7 @@ public Builder clearUpdateTime() {
      * .google.protobuf.Timestamp update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
      */
     public com.google.protobuf.Timestamp.Builder getUpdateTimeBuilder() {
-      
+      bitField0_ |= 0x00000010;
       onChanged();
       return getUpdateTimeFieldBuilder().getBuilder();
     }
@@ -1377,7 +1333,18 @@ public Room parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new Room(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SearchBlurbsMetadata.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SearchBlurbsMetadata.java
index cb91d593a7..b4209e5580 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SearchBlurbsMetadata.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SearchBlurbsMetadata.java
@@ -35,58 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private SearchBlurbsMetadata(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.rpc.RetryInfo.Builder subBuilder = null;
-            if (retryInfo_ != null) {
-              subBuilder = retryInfo_.toBuilder();
-            }
-            retryInfo_ = input.readMessage(com.google.rpc.RetryInfo.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(retryInfo_);
-              retryInfo_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_SearchBlurbsMetadata_descriptor;
@@ -135,7 +83,7 @@ public com.google.rpc.RetryInfo getRetryInfo() {
    */
   @java.lang.Override
   public com.google.rpc.RetryInfoOrBuilder getRetryInfoOrBuilder() {
-    return getRetryInfo();
+    return retryInfo_ == null ? com.google.rpc.RetryInfo.getDefaultInstance() : retryInfo_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -155,7 +103,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (retryInfo_ != null) {
       output.writeMessage(1, getRetryInfo());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -168,7 +116,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getRetryInfo());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -188,7 +136,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getRetryInfo()
           .equals(other.getRetryInfo())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -203,7 +151,7 @@ public int hashCode() {
       hash = (37 * hash) + RETRY_INFO_FIELD_NUMBER;
       hash = (53 * hash) + getRetryInfo().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -325,26 +273,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.SearchBlurbsMetadata.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (retryInfoBuilder_ == null) {
-        retryInfo_ = null;
-      } else {
-        retryInfo_ = null;
+      bitField0_ = 0;
+      retryInfo_ = null;
+      if (retryInfoBuilder_ != null) {
+        retryInfoBuilder_.dispose();
         retryInfoBuilder_ = null;
       }
       return this;
@@ -373,15 +316,20 @@ public com.google.showcase.v1beta1.SearchBlurbsMetadata build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.SearchBlurbsMetadata buildPartial() {
       com.google.showcase.v1beta1.SearchBlurbsMetadata result = new com.google.showcase.v1beta1.SearchBlurbsMetadata(this);
-      if (retryInfoBuilder_ == null) {
-        result.retryInfo_ = retryInfo_;
-      } else {
-        result.retryInfo_ = retryInfoBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.SearchBlurbsMetadata result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.retryInfo_ = retryInfoBuilder_ == null
+            ? retryInfo_
+            : retryInfoBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -429,7 +377,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.SearchBlurbsMetadata other)
       if (other.hasRetryInfo()) {
         mergeRetryInfo(other.getRetryInfo());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -444,19 +392,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.SearchBlurbsMetadata parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getRetryInfoFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.SearchBlurbsMetadata) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.rpc.RetryInfo retryInfo_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -470,7 +439,7 @@ public Builder mergeFrom(
      * @return Whether the retryInfo field is set.
      */
     public boolean hasRetryInfo() {
-      return retryInfoBuilder_ != null || retryInfo_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -500,11 +469,11 @@ public Builder setRetryInfo(com.google.rpc.RetryInfo value) {
           throw new NullPointerException();
         }
         retryInfo_ = value;
-        onChanged();
       } else {
         retryInfoBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -518,11 +487,11 @@ public Builder setRetryInfo(
         com.google.rpc.RetryInfo.Builder builderForValue) {
       if (retryInfoBuilder_ == null) {
         retryInfo_ = builderForValue.build();
-        onChanged();
       } else {
         retryInfoBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -534,17 +503,18 @@ public Builder setRetryInfo(
      */
     public Builder mergeRetryInfo(com.google.rpc.RetryInfo value) {
       if (retryInfoBuilder_ == null) {
-        if (retryInfo_ != null) {
-          retryInfo_ =
-            com.google.rpc.RetryInfo.newBuilder(retryInfo_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          retryInfo_ != null &&
+          retryInfo_ != com.google.rpc.RetryInfo.getDefaultInstance()) {
+          getRetryInfoBuilder().mergeFrom(value);
         } else {
           retryInfo_ = value;
         }
-        onChanged();
       } else {
         retryInfoBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -555,14 +525,13 @@ public Builder mergeRetryInfo(com.google.rpc.RetryInfo value) {
      * .google.rpc.RetryInfo retry_info = 1;
      */
     public Builder clearRetryInfo() {
-      if (retryInfoBuilder_ == null) {
-        retryInfo_ = null;
-        onChanged();
-      } else {
-        retryInfo_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      retryInfo_ = null;
+      if (retryInfoBuilder_ != null) {
+        retryInfoBuilder_.dispose();
         retryInfoBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -573,7 +542,7 @@ public Builder clearRetryInfo() {
      * .google.rpc.RetryInfo retry_info = 1;
      */
     public com.google.rpc.RetryInfo.Builder getRetryInfoBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getRetryInfoFieldBuilder().getBuilder();
     }
@@ -645,7 +614,18 @@ public SearchBlurbsMetadata parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new SearchBlurbsMetadata(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SearchBlurbsRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SearchBlurbsRequest.java
index dffbdbea44..b98b0bc3a3 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SearchBlurbsRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SearchBlurbsRequest.java
@@ -38,68 +38,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private SearchBlurbsRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            query_ = s;
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            parent_ = s;
-            break;
-          }
-          case 24: {
-
-            pageSize_ = input.readInt32();
-            break;
-          }
-          case 34: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            pageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_SearchBlurbsRequest_descriptor;
@@ -114,7 +52,8 @@ private SearchBlurbsRequest(
   }
 
   public static final int QUERY_FIELD_NUMBER = 1;
-  private volatile java.lang.Object query_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object query_ = "";
   /**
    * 
    * The query used to search for blurbs containing to words of this string.
@@ -162,7 +101,8 @@ public java.lang.String getQuery() {
   }
 
   public static final int PARENT_FIELD_NUMBER = 2;
-  private volatile java.lang.Object parent_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object parent_ = "";
   /**
    * 
    * The rooms or profiles to search. If unset, `SearchBlurbs` will search all
@@ -210,7 +150,7 @@ public java.lang.String getParent() {
   }
 
   public static final int PAGE_SIZE_FIELD_NUMBER = 3;
-  private int pageSize_;
+  private int pageSize_ = 0;
   /**
    * 
    * The maximum number of blurbs return. Server may return fewer
@@ -227,7 +167,8 @@ public int getPageSize() {
   }
 
   public static final int PAGE_TOKEN_FIELD_NUMBER = 4;
-  private volatile java.lang.Object pageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object pageToken_ = "";
   /**
    * 
    * The value of
@@ -304,7 +245,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 4, pageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -326,7 +267,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, pageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -349,7 +290,7 @@ public boolean equals(final java.lang.Object obj) {
         != other.getPageSize()) return false;
     if (!getPageToken()
         .equals(other.getPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -368,7 +309,7 @@ public int hashCode() {
     hash = (53 * hash) + getPageSize();
     hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -490,30 +431,22 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.SearchBlurbsRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       query_ = "";
-
       parent_ = "";
-
       pageSize_ = 0;
-
       pageToken_ = "";
-
       return this;
     }
 
@@ -540,14 +473,27 @@ public com.google.showcase.v1beta1.SearchBlurbsRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.SearchBlurbsRequest buildPartial() {
       com.google.showcase.v1beta1.SearchBlurbsRequest result = new com.google.showcase.v1beta1.SearchBlurbsRequest(this);
-      result.query_ = query_;
-      result.parent_ = parent_;
-      result.pageSize_ = pageSize_;
-      result.pageToken_ = pageToken_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.SearchBlurbsRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.query_ = query_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.parent_ = parent_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.pageSize_ = pageSize_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.pageToken_ = pageToken_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -594,10 +540,12 @@ public Builder mergeFrom(com.google.showcase.v1beta1.SearchBlurbsRequest other)
       if (other == com.google.showcase.v1beta1.SearchBlurbsRequest.getDefaultInstance()) return this;
       if (!other.getQuery().isEmpty()) {
         query_ = other.query_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (!other.getParent().isEmpty()) {
         parent_ = other.parent_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
       if (other.getPageSize() != 0) {
@@ -605,9 +553,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.SearchBlurbsRequest other)
       }
       if (!other.getPageToken().isEmpty()) {
         pageToken_ = other.pageToken_;
+        bitField0_ |= 0x00000008;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -622,19 +571,53 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.SearchBlurbsRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              query_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              parent_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 24: {
+              pageSize_ = input.readInt32();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 24
+            case 34: {
+              pageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 34
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.SearchBlurbsRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object query_ = "";
     /**
@@ -692,11 +675,9 @@ public java.lang.String getQuery() {
      */
     public Builder setQuery(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       query_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -710,8 +691,8 @@ public Builder setQuery(
      * @return This builder for chaining.
      */
     public Builder clearQuery() {
-      
       query_ = getDefaultInstance().getQuery();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -727,12 +708,10 @@ public Builder clearQuery() {
      */
     public Builder setQueryBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       query_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -793,11 +772,9 @@ public java.lang.String getParent() {
      */
     public Builder setParent(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       parent_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -811,8 +788,8 @@ public Builder setParent(
      * @return This builder for chaining.
      */
     public Builder clearParent() {
-      
       parent_ = getDefaultInstance().getParent();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -828,12 +805,10 @@ public Builder clearParent() {
      */
     public Builder setParentBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       parent_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -867,6 +842,7 @@ public int getPageSize() {
     public Builder setPageSize(int value) {
       
       pageSize_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -881,7 +857,7 @@ public Builder setPageSize(int value) {
      * @return This builder for chaining.
      */
     public Builder clearPageSize() {
-      
+      bitField0_ = (bitField0_ & ~0x00000004);
       pageSize_ = 0;
       onChanged();
       return this;
@@ -949,11 +925,9 @@ public java.lang.String getPageToken() {
      */
     public Builder setPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       pageToken_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -969,8 +943,8 @@ public Builder setPageToken(
      * @return This builder for chaining.
      */
     public Builder clearPageToken() {
-      
       pageToken_ = getDefaultInstance().getPageToken();
+      bitField0_ = (bitField0_ & ~0x00000008);
       onChanged();
       return this;
     }
@@ -988,12 +962,10 @@ public Builder clearPageToken() {
      */
     public Builder setPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       pageToken_ = value;
+      bitField0_ |= 0x00000008;
       onChanged();
       return this;
     }
@@ -1030,7 +1002,18 @@ public SearchBlurbsRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new SearchBlurbsRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SearchBlurbsResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SearchBlurbsResponse.java
index 92d87c30de..56e558fcc1 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SearchBlurbsResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SearchBlurbsResponse.java
@@ -37,64 +37,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private SearchBlurbsResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              blurbs_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            blurbs_.add(
-                input.readMessage(com.google.showcase.v1beta1.Blurb.parser(), extensionRegistry));
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            nextPageToken_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        blurbs_ = java.util.Collections.unmodifiableList(blurbs_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_SearchBlurbsResponse_descriptor;
@@ -109,6 +51,7 @@ private SearchBlurbsResponse(
   }
 
   public static final int BLURBS_FIELD_NUMBER = 1;
+  @SuppressWarnings("serial")
   private java.util.List blurbs_;
   /**
    * 
@@ -169,7 +112,8 @@ public com.google.showcase.v1beta1.BlurbOrBuilder getBlurbsOrBuilder(
   }
 
   public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
-  private volatile java.lang.Object nextPageToken_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object nextPageToken_ = "";
   /**
    * 
    * A token to retrieve next page of results.
@@ -240,7 +184,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -256,7 +200,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPageToken_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -275,7 +219,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getBlurbsList())) return false;
     if (!getNextPageToken()
         .equals(other.getNextPageToken())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -292,7 +236,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
     hash = (53 * hash) + getNextPageToken().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -414,31 +358,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.SearchBlurbsResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getBlurbsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       if (blurbsBuilder_ == null) {
         blurbs_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        blurbs_ = null;
         blurbsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000001);
       nextPageToken_ = "";
-
       return this;
     }
 
@@ -465,7 +404,13 @@ public com.google.showcase.v1beta1.SearchBlurbsResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.SearchBlurbsResponse buildPartial() {
       com.google.showcase.v1beta1.SearchBlurbsResponse result = new com.google.showcase.v1beta1.SearchBlurbsResponse(this);
-      int from_bitField0_ = bitField0_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.SearchBlurbsResponse result) {
       if (blurbsBuilder_ == null) {
         if (((bitField0_ & 0x00000001) != 0)) {
           blurbs_ = java.util.Collections.unmodifiableList(blurbs_);
@@ -475,9 +420,13 @@ public com.google.showcase.v1beta1.SearchBlurbsResponse buildPartial() {
       } else {
         result.blurbs_ = blurbsBuilder_.build();
       }
-      result.nextPageToken_ = nextPageToken_;
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.SearchBlurbsResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.nextPageToken_ = nextPageToken_;
+      }
     }
 
     @java.lang.Override
@@ -552,9 +501,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.SearchBlurbsResponse other)
       }
       if (!other.getNextPageToken().isEmpty()) {
         nextPageToken_ = other.nextPageToken_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -569,17 +519,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.SearchBlurbsResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              com.google.showcase.v1beta1.Blurb m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.Blurb.parser(),
+                      extensionRegistry);
+              if (blurbsBuilder_ == null) {
+                ensureBlurbsIsMutable();
+                blurbs_.add(m);
+              } else {
+                blurbsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 10
+            case 18: {
+              nextPageToken_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.SearchBlurbsResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -958,11 +939,9 @@ public java.lang.String getNextPageToken() {
      */
     public Builder setNextPageToken(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -978,8 +957,8 @@ public Builder setNextPageToken(
      * @return This builder for chaining.
      */
     public Builder clearNextPageToken() {
-      
       nextPageToken_ = getDefaultInstance().getNextPageToken();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -997,12 +976,10 @@ public Builder clearNextPageToken() {
      */
     public Builder setNextPageTokenBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       nextPageToken_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1039,7 +1016,18 @@ public SearchBlurbsResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new SearchBlurbsResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SendBlurbsResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SendBlurbsResponse.java
index d00a32be06..cb3bc3bd39 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SendBlurbsResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SendBlurbsResponse.java
@@ -36,58 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private SendBlurbsResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              names_ = new com.google.protobuf.LazyStringArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            names_.add(s);
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        names_ = names_.getUnmodifiableView();
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_SendBlurbsResponse_descriptor;
@@ -102,6 +50,7 @@ private SendBlurbsResponse(
   }
 
   public static final int NAMES_FIELD_NUMBER = 1;
+  @SuppressWarnings("serial")
   private com.google.protobuf.LazyStringList names_;
   /**
    * 
@@ -169,7 +118,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < names_.size(); i++) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, names_.getRaw(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -186,7 +135,7 @@ public int getSerializedSize() {
       size += dataSize;
       size += 1 * getNamesList().size();
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -203,7 +152,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getNamesList()
         .equals(other.getNamesList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -218,7 +167,7 @@ public int hashCode() {
       hash = (37 * hash) + NAMES_FIELD_NUMBER;
       hash = (53 * hash) + getNamesList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -340,22 +289,18 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.SendBlurbsResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       names_ = com.google.protobuf.LazyStringArrayList.EMPTY;
       bitField0_ = (bitField0_ & ~0x00000001);
       return this;
@@ -384,14 +329,22 @@ public com.google.showcase.v1beta1.SendBlurbsResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.SendBlurbsResponse buildPartial() {
       com.google.showcase.v1beta1.SendBlurbsResponse result = new com.google.showcase.v1beta1.SendBlurbsResponse(this);
-      int from_bitField0_ = bitField0_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.SendBlurbsResponse result) {
       if (((bitField0_ & 0x00000001) != 0)) {
         names_ = names_.getUnmodifiableView();
         bitField0_ = (bitField0_ & ~0x00000001);
       }
       result.names_ = names_;
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.SendBlurbsResponse result) {
+      int from_bitField0_ = bitField0_;
     }
 
     @java.lang.Override
@@ -448,7 +401,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.SendBlurbsResponse other) {
         }
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -463,17 +416,36 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.SendBlurbsResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              java.lang.String s = input.readStringRequireUtf8();
+              ensureNamesIsMutable();
+              names_.add(s);
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.SendBlurbsResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -545,10 +517,8 @@ public java.lang.String getNames(int index) {
      */
     public Builder setNames(
         int index, java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureNamesIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureNamesIsMutable();
       names_.set(index, value);
       onChanged();
       return this;
@@ -564,10 +534,8 @@ public Builder setNames(
      */
     public Builder addNames(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureNamesIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureNamesIsMutable();
       names_.add(value);
       onChanged();
       return this;
@@ -614,10 +582,8 @@ public Builder clearNames() {
      */
     public Builder addNamesBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       ensureNamesIsMutable();
       names_.add(value);
       onChanged();
@@ -656,7 +622,18 @@ public SendBlurbsResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new SendBlurbsResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Sequence.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Sequence.java
index d90689e15a..3f9f233beb 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Sequence.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Sequence.java
@@ -32,64 +32,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private Sequence(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              responses_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            responses_.add(
-                input.readMessage(com.google.showcase.v1beta1.Sequence.Response.parser(), extensionRegistry));
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        responses_ = java.util.Collections.unmodifiableList(responses_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.SequenceOuterClass.internal_static_google_showcase_v1beta1_Sequence_descriptor;
@@ -192,71 +134,6 @@ protected java.lang.Object newInstance(
     getUnknownFields() {
       return this.unknownFields;
     }
-    private Response(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 10: {
-              com.google.rpc.Status.Builder subBuilder = null;
-              if (status_ != null) {
-                subBuilder = status_.toBuilder();
-              }
-              status_ = input.readMessage(com.google.rpc.Status.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(status_);
-                status_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            case 18: {
-              com.google.protobuf.Duration.Builder subBuilder = null;
-              if (delay_ != null) {
-                subBuilder = delay_.toBuilder();
-              }
-              delay_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(delay_);
-                delay_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (com.google.protobuf.UninitializedMessageException e) {
-        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.google.showcase.v1beta1.SequenceOuterClass.internal_static_google_showcase_v1beta1_Sequence_Response_descriptor;
@@ -305,7 +182,7 @@ public com.google.rpc.Status getStatus() {
      */
     @java.lang.Override
     public com.google.rpc.StatusOrBuilder getStatusOrBuilder() {
-      return getStatus();
+      return status_ == null ? com.google.rpc.Status.getDefaultInstance() : status_;
     }
 
     public static final int DELAY_FIELD_NUMBER = 2;
@@ -343,7 +220,7 @@ public com.google.protobuf.Duration getDelay() {
      */
     @java.lang.Override
     public com.google.protobuf.DurationOrBuilder getDelayOrBuilder() {
-      return getDelay();
+      return delay_ == null ? com.google.protobuf.Duration.getDefaultInstance() : delay_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -366,7 +243,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (delay_ != null) {
         output.writeMessage(2, getDelay());
       }
-      unknownFields.writeTo(output);
+      getUnknownFields().writeTo(output);
     }
 
     @java.lang.Override
@@ -383,7 +260,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(2, getDelay());
       }
-      size += unknownFields.getSerializedSize();
+      size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -408,7 +285,7 @@ public boolean equals(final java.lang.Object obj) {
         if (!getDelay()
             .equals(other.getDelay())) return false;
       }
-      if (!unknownFields.equals(other.unknownFields)) return false;
+      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
       return true;
     }
 
@@ -427,7 +304,7 @@ public int hashCode() {
         hash = (37 * hash) + DELAY_FIELD_NUMBER;
         hash = (53 * hash) + getDelay().hashCode();
       }
-      hash = (29 * hash) + unknownFields.hashCode();
+      hash = (29 * hash) + getUnknownFields().hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -548,32 +425,26 @@ public static final class Builder extends
 
       // Construct using com.google.showcase.v1beta1.Sequence.Response.newBuilder()
       private Builder() {
-        maybeForceBuilderInitialization();
+
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
+
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
-        if (statusBuilder_ == null) {
-          status_ = null;
-        } else {
-          status_ = null;
+        bitField0_ = 0;
+        status_ = null;
+        if (statusBuilder_ != null) {
+          statusBuilder_.dispose();
           statusBuilder_ = null;
         }
-        if (delayBuilder_ == null) {
-          delay_ = null;
-        } else {
-          delay_ = null;
+        delay_ = null;
+        if (delayBuilder_ != null) {
+          delayBuilder_.dispose();
           delayBuilder_ = null;
         }
         return this;
@@ -602,20 +473,25 @@ public com.google.showcase.v1beta1.Sequence.Response build() {
       @java.lang.Override
       public com.google.showcase.v1beta1.Sequence.Response buildPartial() {
         com.google.showcase.v1beta1.Sequence.Response result = new com.google.showcase.v1beta1.Sequence.Response(this);
-        if (statusBuilder_ == null) {
-          result.status_ = status_;
-        } else {
-          result.status_ = statusBuilder_.build();
-        }
-        if (delayBuilder_ == null) {
-          result.delay_ = delay_;
-        } else {
-          result.delay_ = delayBuilder_.build();
-        }
+        if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
+      private void buildPartial0(com.google.showcase.v1beta1.Sequence.Response result) {
+        int from_bitField0_ = bitField0_;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.status_ = statusBuilder_ == null
+              ? status_
+              : statusBuilder_.build();
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.delay_ = delayBuilder_ == null
+              ? delay_
+              : delayBuilder_.build();
+        }
+      }
+
       @java.lang.Override
       public Builder clone() {
         return super.clone();
@@ -666,7 +542,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Sequence.Response other) {
         if (other.hasDelay()) {
           mergeDelay(other.getDelay());
         }
-        this.mergeUnknownFields(other.unknownFields);
+        this.mergeUnknownFields(other.getUnknownFields());
         onChanged();
         return this;
       }
@@ -681,19 +557,47 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        com.google.showcase.v1beta1.Sequence.Response parsedMessage = null;
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
         try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+          boolean done = false;
+          while (!done) {
+            int tag = input.readTag();
+            switch (tag) {
+              case 0:
+                done = true;
+                break;
+              case 10: {
+                input.readMessage(
+                    getStatusFieldBuilder().getBuilder(),
+                    extensionRegistry);
+                bitField0_ |= 0x00000001;
+                break;
+              } // case 10
+              case 18: {
+                input.readMessage(
+                    getDelayFieldBuilder().getBuilder(),
+                    extensionRegistry);
+                bitField0_ |= 0x00000002;
+                break;
+              } // case 18
+              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) {
-          parsedMessage = (com.google.showcase.v1beta1.Sequence.Response) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
+          onChanged();
+        } // finally
         return this;
       }
+      private int bitField0_;
 
       private com.google.rpc.Status status_;
       private com.google.protobuf.SingleFieldBuilderV3<
@@ -707,7 +611,7 @@ public Builder mergeFrom(
        * @return Whether the status field is set.
        */
       public boolean hasStatus() {
-        return statusBuilder_ != null || status_ != null;
+        return ((bitField0_ & 0x00000001) != 0);
       }
       /**
        * 
@@ -737,11 +641,11 @@ public Builder setStatus(com.google.rpc.Status value) {
             throw new NullPointerException();
           }
           status_ = value;
-          onChanged();
         } else {
           statusBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -755,11 +659,11 @@ public Builder setStatus(
           com.google.rpc.Status.Builder builderForValue) {
         if (statusBuilder_ == null) {
           status_ = builderForValue.build();
-          onChanged();
         } else {
           statusBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -771,17 +675,18 @@ public Builder setStatus(
        */
       public Builder mergeStatus(com.google.rpc.Status value) {
         if (statusBuilder_ == null) {
-          if (status_ != null) {
-            status_ =
-              com.google.rpc.Status.newBuilder(status_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000001) != 0) &&
+            status_ != null &&
+            status_ != com.google.rpc.Status.getDefaultInstance()) {
+            getStatusBuilder().mergeFrom(value);
           } else {
             status_ = value;
           }
-          onChanged();
         } else {
           statusBuilder_.mergeFrom(value);
         }
-
+        bitField0_ |= 0x00000001;
+        onChanged();
         return this;
       }
       /**
@@ -792,14 +697,13 @@ public Builder mergeStatus(com.google.rpc.Status value) {
        * .google.rpc.Status status = 1;
        */
       public Builder clearStatus() {
-        if (statusBuilder_ == null) {
-          status_ = null;
-          onChanged();
-        } else {
-          status_ = null;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        status_ = null;
+        if (statusBuilder_ != null) {
+          statusBuilder_.dispose();
           statusBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
@@ -810,7 +714,7 @@ public Builder clearStatus() {
        * .google.rpc.Status status = 1;
        */
       public com.google.rpc.Status.Builder getStatusBuilder() {
-        
+        bitField0_ |= 0x00000001;
         onChanged();
         return getStatusFieldBuilder().getBuilder();
       }
@@ -862,7 +766,7 @@ public com.google.rpc.StatusOrBuilder getStatusOrBuilder() {
        * @return Whether the delay field is set.
        */
       public boolean hasDelay() {
-        return delayBuilder_ != null || delay_ != null;
+        return ((bitField0_ & 0x00000002) != 0);
       }
       /**
        * 
@@ -892,11 +796,11 @@ public Builder setDelay(com.google.protobuf.Duration value) {
             throw new NullPointerException();
           }
           delay_ = value;
-          onChanged();
         } else {
           delayBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -910,11 +814,11 @@ public Builder setDelay(
           com.google.protobuf.Duration.Builder builderForValue) {
         if (delayBuilder_ == null) {
           delay_ = builderForValue.build();
-          onChanged();
         } else {
           delayBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -926,17 +830,18 @@ public Builder setDelay(
        */
       public Builder mergeDelay(com.google.protobuf.Duration value) {
         if (delayBuilder_ == null) {
-          if (delay_ != null) {
-            delay_ =
-              com.google.protobuf.Duration.newBuilder(delay_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000002) != 0) &&
+            delay_ != null &&
+            delay_ != com.google.protobuf.Duration.getDefaultInstance()) {
+            getDelayBuilder().mergeFrom(value);
           } else {
             delay_ = value;
           }
-          onChanged();
         } else {
           delayBuilder_.mergeFrom(value);
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -947,14 +852,13 @@ public Builder mergeDelay(com.google.protobuf.Duration value) {
        * .google.protobuf.Duration delay = 2;
        */
       public Builder clearDelay() {
-        if (delayBuilder_ == null) {
-          delay_ = null;
-          onChanged();
-        } else {
-          delay_ = null;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        delay_ = null;
+        if (delayBuilder_ != null) {
+          delayBuilder_.dispose();
           delayBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
@@ -965,7 +869,7 @@ public Builder clearDelay() {
        * .google.protobuf.Duration delay = 2;
        */
       public com.google.protobuf.Duration.Builder getDelayBuilder() {
-        
+        bitField0_ |= 0x00000002;
         onChanged();
         return getDelayFieldBuilder().getBuilder();
       }
@@ -1037,7 +941,18 @@ public Response parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        return new Response(input, extensionRegistry);
+        Builder builder = newBuilder();
+        try {
+          builder.mergeFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(builder.buildPartial());
+        } catch (com.google.protobuf.UninitializedMessageException e) {
+          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(e)
+              .setUnfinishedMessage(builder.buildPartial());
+        }
+        return builder.buildPartial();
       }
     };
 
@@ -1058,7 +973,8 @@ public com.google.showcase.v1beta1.Sequence.Response getDefaultInstanceForType()
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
    * @return The name.
@@ -1096,6 +1012,7 @@ public java.lang.String getName() {
   }
 
   public static final int RESPONSES_FIELD_NUMBER = 2;
+  @SuppressWarnings("serial")
   private java.util.List responses_;
   /**
    * 
@@ -1180,7 +1097,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < responses_.size(); i++) {
       output.writeMessage(2, responses_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -1196,7 +1113,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, responses_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -1215,7 +1132,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getName())) return false;
     if (!getResponsesList()
         .equals(other.getResponsesList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -1232,7 +1149,7 @@ public int hashCode() {
       hash = (37 * hash) + RESPONSES_FIELD_NUMBER;
       hash = (53 * hash) + getResponsesList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -1349,31 +1266,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.Sequence.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getResponsesFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       if (responsesBuilder_ == null) {
         responses_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        responses_ = null;
         responsesBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000002);
       return this;
     }
 
@@ -1400,19 +1312,29 @@ public com.google.showcase.v1beta1.Sequence build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.Sequence buildPartial() {
       com.google.showcase.v1beta1.Sequence result = new com.google.showcase.v1beta1.Sequence(this);
-      int from_bitField0_ = bitField0_;
-      result.name_ = name_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.Sequence result) {
       if (responsesBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000002) != 0)) {
           responses_ = java.util.Collections.unmodifiableList(responses_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000002);
         }
         result.responses_ = responses_;
       } else {
         result.responses_ = responsesBuilder_.build();
       }
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.Sequence result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
     }
 
     @java.lang.Override
@@ -1461,13 +1383,14 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Sequence other) {
       if (other == com.google.showcase.v1beta1.Sequence.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (responsesBuilder_ == null) {
         if (!other.responses_.isEmpty()) {
           if (responses_.isEmpty()) {
             responses_ = other.responses_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
           } else {
             ensureResponsesIsMutable();
             responses_.addAll(other.responses_);
@@ -1480,7 +1403,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Sequence other) {
             responsesBuilder_.dispose();
             responsesBuilder_ = null;
             responses_ = other.responses_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
             responsesBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getResponsesFieldBuilder() : null;
@@ -1489,7 +1412,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Sequence other) {
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -1504,17 +1427,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.Sequence parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              com.google.showcase.v1beta1.Sequence.Response m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.Sequence.Response.parser(),
+                      extensionRegistry);
+              if (responsesBuilder_ == null) {
+                ensureResponsesIsMutable();
+                responses_.add(m);
+              } else {
+                responsesBuilder_.addMessage(m);
+              }
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.Sequence) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -1560,11 +1514,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -1573,8 +1525,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -1585,12 +1537,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -1598,9 +1548,9 @@ public Builder setNameBytes(
     private java.util.List responses_ =
       java.util.Collections.emptyList();
     private void ensureResponsesIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000002) != 0)) {
         responses_ = new java.util.ArrayList(responses_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000002;
        }
     }
 
@@ -1805,7 +1755,7 @@ public Builder addAllResponses(
     public Builder clearResponses() {
       if (responsesBuilder_ == null) {
         responses_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
       } else {
         responsesBuilder_.clear();
@@ -1917,7 +1867,7 @@ public com.google.showcase.v1beta1.Sequence.Response.Builder addResponsesBuilder
         responsesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             com.google.showcase.v1beta1.Sequence.Response, com.google.showcase.v1beta1.Sequence.Response.Builder, com.google.showcase.v1beta1.Sequence.ResponseOrBuilder>(
                 responses_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000002) != 0),
                 getParentForChildren(),
                 isClean());
         responses_ = null;
@@ -1957,7 +1907,18 @@ public Sequence parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new Sequence(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SequenceReport.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SequenceReport.java
index 768c155ea3..fef77b2584 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SequenceReport.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/SequenceReport.java
@@ -32,64 +32,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private SequenceReport(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              attempts_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            attempts_.add(
-                input.readMessage(com.google.showcase.v1beta1.SequenceReport.Attempt.parser(), extensionRegistry));
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        attempts_ = java.util.Collections.unmodifiableList(attempts_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.SequenceOuterClass.internal_static_google_showcase_v1beta1_SequenceReport_descriptor;
@@ -262,102 +204,6 @@ protected java.lang.Object newInstance(
     getUnknownFields() {
       return this.unknownFields;
     }
-    private Attempt(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 8: {
-
-              attemptNumber_ = input.readInt32();
-              break;
-            }
-            case 18: {
-              com.google.protobuf.Timestamp.Builder subBuilder = null;
-              if (attemptDeadline_ != null) {
-                subBuilder = attemptDeadline_.toBuilder();
-              }
-              attemptDeadline_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(attemptDeadline_);
-                attemptDeadline_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            case 26: {
-              com.google.protobuf.Timestamp.Builder subBuilder = null;
-              if (responseTime_ != null) {
-                subBuilder = responseTime_.toBuilder();
-              }
-              responseTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(responseTime_);
-                responseTime_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            case 34: {
-              com.google.protobuf.Duration.Builder subBuilder = null;
-              if (attemptDelay_ != null) {
-                subBuilder = attemptDelay_.toBuilder();
-              }
-              attemptDelay_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(attemptDelay_);
-                attemptDelay_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            case 42: {
-              com.google.rpc.Status.Builder subBuilder = null;
-              if (status_ != null) {
-                subBuilder = status_.toBuilder();
-              }
-              status_ = input.readMessage(com.google.rpc.Status.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(status_);
-                status_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (com.google.protobuf.UninitializedMessageException e) {
-        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.google.showcase.v1beta1.SequenceOuterClass.internal_static_google_showcase_v1beta1_SequenceReport_Attempt_descriptor;
@@ -372,7 +218,7 @@ private Attempt(
     }
 
     public static final int ATTEMPT_NUMBER_FIELD_NUMBER = 1;
-    private int attemptNumber_;
+    private int attemptNumber_ = 0;
     /**
      * 
      * The attempt number - starting at 0.
@@ -421,7 +267,7 @@ public com.google.protobuf.Timestamp getAttemptDeadline() {
      */
     @java.lang.Override
     public com.google.protobuf.TimestampOrBuilder getAttemptDeadlineOrBuilder() {
-      return getAttemptDeadline();
+      return attemptDeadline_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : attemptDeadline_;
     }
 
     public static final int RESPONSE_TIME_FIELD_NUMBER = 3;
@@ -462,7 +308,7 @@ public com.google.protobuf.Timestamp getResponseTime() {
      */
     @java.lang.Override
     public com.google.protobuf.TimestampOrBuilder getResponseTimeOrBuilder() {
-      return getResponseTime();
+      return responseTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : responseTime_;
     }
 
     public static final int ATTEMPT_DELAY_FIELD_NUMBER = 4;
@@ -503,7 +349,7 @@ public com.google.protobuf.Duration getAttemptDelay() {
      */
     @java.lang.Override
     public com.google.protobuf.DurationOrBuilder getAttemptDelayOrBuilder() {
-      return getAttemptDelay();
+      return attemptDelay_ == null ? com.google.protobuf.Duration.getDefaultInstance() : attemptDelay_;
     }
 
     public static final int STATUS_FIELD_NUMBER = 5;
@@ -541,7 +387,7 @@ public com.google.rpc.Status getStatus() {
      */
     @java.lang.Override
     public com.google.rpc.StatusOrBuilder getStatusOrBuilder() {
-      return getStatus();
+      return status_ == null ? com.google.rpc.Status.getDefaultInstance() : status_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -573,7 +419,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (status_ != null) {
         output.writeMessage(5, getStatus());
       }
-      unknownFields.writeTo(output);
+      getUnknownFields().writeTo(output);
     }
 
     @java.lang.Override
@@ -602,7 +448,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(5, getStatus());
       }
-      size += unknownFields.getSerializedSize();
+      size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -639,7 +485,7 @@ public boolean equals(final java.lang.Object obj) {
         if (!getStatus()
             .equals(other.getStatus())) return false;
       }
-      if (!unknownFields.equals(other.unknownFields)) return false;
+      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
       return true;
     }
 
@@ -668,7 +514,7 @@ public int hashCode() {
         hash = (37 * hash) + STATUS_FIELD_NUMBER;
         hash = (53 * hash) + getStatus().hashCode();
       }
-      hash = (29 * hash) + unknownFields.hashCode();
+      hash = (29 * hash) + getUnknownFields().hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -789,46 +635,37 @@ public static final class Builder extends
 
       // Construct using com.google.showcase.v1beta1.SequenceReport.Attempt.newBuilder()
       private Builder() {
-        maybeForceBuilderInitialization();
+
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
+
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        bitField0_ = 0;
         attemptNumber_ = 0;
-
-        if (attemptDeadlineBuilder_ == null) {
-          attemptDeadline_ = null;
-        } else {
-          attemptDeadline_ = null;
+        attemptDeadline_ = null;
+        if (attemptDeadlineBuilder_ != null) {
+          attemptDeadlineBuilder_.dispose();
           attemptDeadlineBuilder_ = null;
         }
-        if (responseTimeBuilder_ == null) {
-          responseTime_ = null;
-        } else {
-          responseTime_ = null;
+        responseTime_ = null;
+        if (responseTimeBuilder_ != null) {
+          responseTimeBuilder_.dispose();
           responseTimeBuilder_ = null;
         }
-        if (attemptDelayBuilder_ == null) {
-          attemptDelay_ = null;
-        } else {
-          attemptDelay_ = null;
+        attemptDelay_ = null;
+        if (attemptDelayBuilder_ != null) {
+          attemptDelayBuilder_.dispose();
           attemptDelayBuilder_ = null;
         }
-        if (statusBuilder_ == null) {
-          status_ = null;
-        } else {
-          status_ = null;
+        status_ = null;
+        if (statusBuilder_ != null) {
+          statusBuilder_.dispose();
           statusBuilder_ = null;
         }
         return this;
@@ -857,29 +694,36 @@ public com.google.showcase.v1beta1.SequenceReport.Attempt build() {
       @java.lang.Override
       public com.google.showcase.v1beta1.SequenceReport.Attempt buildPartial() {
         com.google.showcase.v1beta1.SequenceReport.Attempt result = new com.google.showcase.v1beta1.SequenceReport.Attempt(this);
-        result.attemptNumber_ = attemptNumber_;
-        if (attemptDeadlineBuilder_ == null) {
-          result.attemptDeadline_ = attemptDeadline_;
-        } else {
-          result.attemptDeadline_ = attemptDeadlineBuilder_.build();
+        if (bitField0_ != 0) { buildPartial0(result); }
+        onBuilt();
+        return result;
+      }
+
+      private void buildPartial0(com.google.showcase.v1beta1.SequenceReport.Attempt result) {
+        int from_bitField0_ = bitField0_;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.attemptNumber_ = attemptNumber_;
         }
-        if (responseTimeBuilder_ == null) {
-          result.responseTime_ = responseTime_;
-        } else {
-          result.responseTime_ = responseTimeBuilder_.build();
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.attemptDeadline_ = attemptDeadlineBuilder_ == null
+              ? attemptDeadline_
+              : attemptDeadlineBuilder_.build();
         }
-        if (attemptDelayBuilder_ == null) {
-          result.attemptDelay_ = attemptDelay_;
-        } else {
-          result.attemptDelay_ = attemptDelayBuilder_.build();
+        if (((from_bitField0_ & 0x00000004) != 0)) {
+          result.responseTime_ = responseTimeBuilder_ == null
+              ? responseTime_
+              : responseTimeBuilder_.build();
         }
-        if (statusBuilder_ == null) {
-          result.status_ = status_;
-        } else {
-          result.status_ = statusBuilder_.build();
+        if (((from_bitField0_ & 0x00000008) != 0)) {
+          result.attemptDelay_ = attemptDelayBuilder_ == null
+              ? attemptDelay_
+              : attemptDelayBuilder_.build();
+        }
+        if (((from_bitField0_ & 0x00000010) != 0)) {
+          result.status_ = statusBuilder_ == null
+              ? status_
+              : statusBuilder_.build();
         }
-        onBuilt();
-        return result;
       }
 
       @java.lang.Override
@@ -941,7 +785,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.SequenceReport.Attempt othe
         if (other.hasStatus()) {
           mergeStatus(other.getStatus());
         }
-        this.mergeUnknownFields(other.unknownFields);
+        this.mergeUnknownFields(other.getUnknownFields());
         onChanged();
         return this;
       }
@@ -956,19 +800,66 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        com.google.showcase.v1beta1.SequenceReport.Attempt parsedMessage = null;
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
         try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+          boolean done = false;
+          while (!done) {
+            int tag = input.readTag();
+            switch (tag) {
+              case 0:
+                done = true;
+                break;
+              case 8: {
+                attemptNumber_ = input.readInt32();
+                bitField0_ |= 0x00000001;
+                break;
+              } // case 8
+              case 18: {
+                input.readMessage(
+                    getAttemptDeadlineFieldBuilder().getBuilder(),
+                    extensionRegistry);
+                bitField0_ |= 0x00000002;
+                break;
+              } // case 18
+              case 26: {
+                input.readMessage(
+                    getResponseTimeFieldBuilder().getBuilder(),
+                    extensionRegistry);
+                bitField0_ |= 0x00000004;
+                break;
+              } // case 26
+              case 34: {
+                input.readMessage(
+                    getAttemptDelayFieldBuilder().getBuilder(),
+                    extensionRegistry);
+                bitField0_ |= 0x00000008;
+                break;
+              } // case 34
+              case 42: {
+                input.readMessage(
+                    getStatusFieldBuilder().getBuilder(),
+                    extensionRegistry);
+                bitField0_ |= 0x00000010;
+                break;
+              } // case 42
+              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) {
-          parsedMessage = (com.google.showcase.v1beta1.SequenceReport.Attempt) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
+          onChanged();
+        } // finally
         return this;
       }
+      private int bitField0_;
 
       private int attemptNumber_ ;
       /**
@@ -995,6 +886,7 @@ public int getAttemptNumber() {
       public Builder setAttemptNumber(int value) {
         
         attemptNumber_ = value;
+        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -1007,7 +899,7 @@ public Builder setAttemptNumber(int value) {
        * @return This builder for chaining.
        */
       public Builder clearAttemptNumber() {
-        
+        bitField0_ = (bitField0_ & ~0x00000001);
         attemptNumber_ = 0;
         onChanged();
         return this;
@@ -1025,7 +917,7 @@ public Builder clearAttemptNumber() {
        * @return Whether the attemptDeadline field is set.
        */
       public boolean hasAttemptDeadline() {
-        return attemptDeadlineBuilder_ != null || attemptDeadline_ != null;
+        return ((bitField0_ & 0x00000002) != 0);
       }
       /**
        * 
@@ -1055,11 +947,11 @@ public Builder setAttemptDeadline(com.google.protobuf.Timestamp value) {
             throw new NullPointerException();
           }
           attemptDeadline_ = value;
-          onChanged();
         } else {
           attemptDeadlineBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -1073,11 +965,11 @@ public Builder setAttemptDeadline(
           com.google.protobuf.Timestamp.Builder builderForValue) {
         if (attemptDeadlineBuilder_ == null) {
           attemptDeadline_ = builderForValue.build();
-          onChanged();
         } else {
           attemptDeadlineBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -1089,17 +981,18 @@ public Builder setAttemptDeadline(
        */
       public Builder mergeAttemptDeadline(com.google.protobuf.Timestamp value) {
         if (attemptDeadlineBuilder_ == null) {
-          if (attemptDeadline_ != null) {
-            attemptDeadline_ =
-              com.google.protobuf.Timestamp.newBuilder(attemptDeadline_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000002) != 0) &&
+            attemptDeadline_ != null &&
+            attemptDeadline_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+            getAttemptDeadlineBuilder().mergeFrom(value);
           } else {
             attemptDeadline_ = value;
           }
-          onChanged();
         } else {
           attemptDeadlineBuilder_.mergeFrom(value);
         }
-
+        bitField0_ |= 0x00000002;
+        onChanged();
         return this;
       }
       /**
@@ -1110,14 +1003,13 @@ public Builder mergeAttemptDeadline(com.google.protobuf.Timestamp value) {
        * .google.protobuf.Timestamp attempt_deadline = 2;
        */
       public Builder clearAttemptDeadline() {
-        if (attemptDeadlineBuilder_ == null) {
-          attemptDeadline_ = null;
-          onChanged();
-        } else {
-          attemptDeadline_ = null;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        attemptDeadline_ = null;
+        if (attemptDeadlineBuilder_ != null) {
+          attemptDeadlineBuilder_.dispose();
           attemptDeadlineBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
@@ -1128,7 +1020,7 @@ public Builder clearAttemptDeadline() {
        * .google.protobuf.Timestamp attempt_deadline = 2;
        */
       public com.google.protobuf.Timestamp.Builder getAttemptDeadlineBuilder() {
-        
+        bitField0_ |= 0x00000002;
         onChanged();
         return getAttemptDeadlineFieldBuilder().getBuilder();
       }
@@ -1181,7 +1073,7 @@ public com.google.protobuf.TimestampOrBuilder getAttemptDeadlineOrBuilder() {
        * @return Whether the responseTime field is set.
        */
       public boolean hasResponseTime() {
-        return responseTimeBuilder_ != null || responseTime_ != null;
+        return ((bitField0_ & 0x00000004) != 0);
       }
       /**
        * 
@@ -1213,11 +1105,11 @@ public Builder setResponseTime(com.google.protobuf.Timestamp value) {
             throw new NullPointerException();
           }
           responseTime_ = value;
-          onChanged();
         } else {
           responseTimeBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -1232,11 +1124,11 @@ public Builder setResponseTime(
           com.google.protobuf.Timestamp.Builder builderForValue) {
         if (responseTimeBuilder_ == null) {
           responseTime_ = builderForValue.build();
-          onChanged();
         } else {
           responseTimeBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -1249,17 +1141,18 @@ public Builder setResponseTime(
        */
       public Builder mergeResponseTime(com.google.protobuf.Timestamp value) {
         if (responseTimeBuilder_ == null) {
-          if (responseTime_ != null) {
-            responseTime_ =
-              com.google.protobuf.Timestamp.newBuilder(responseTime_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000004) != 0) &&
+            responseTime_ != null &&
+            responseTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+            getResponseTimeBuilder().mergeFrom(value);
           } else {
             responseTime_ = value;
           }
-          onChanged();
         } else {
           responseTimeBuilder_.mergeFrom(value);
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -1271,14 +1164,13 @@ public Builder mergeResponseTime(com.google.protobuf.Timestamp value) {
        * .google.protobuf.Timestamp response_time = 3;
        */
       public Builder clearResponseTime() {
-        if (responseTimeBuilder_ == null) {
-          responseTime_ = null;
-          onChanged();
-        } else {
-          responseTime_ = null;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        responseTime_ = null;
+        if (responseTimeBuilder_ != null) {
+          responseTimeBuilder_.dispose();
           responseTimeBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
@@ -1290,7 +1182,7 @@ public Builder clearResponseTime() {
        * .google.protobuf.Timestamp response_time = 3;
        */
       public com.google.protobuf.Timestamp.Builder getResponseTimeBuilder() {
-        
+        bitField0_ |= 0x00000004;
         onChanged();
         return getResponseTimeFieldBuilder().getBuilder();
       }
@@ -1345,7 +1237,7 @@ public com.google.protobuf.TimestampOrBuilder getResponseTimeOrBuilder() {
        * @return Whether the attemptDelay field is set.
        */
       public boolean hasAttemptDelay() {
-        return attemptDelayBuilder_ != null || attemptDelay_ != null;
+        return ((bitField0_ & 0x00000008) != 0);
       }
       /**
        * 
@@ -1377,11 +1269,11 @@ public Builder setAttemptDelay(com.google.protobuf.Duration value) {
             throw new NullPointerException();
           }
           attemptDelay_ = value;
-          onChanged();
         } else {
           attemptDelayBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000008;
+        onChanged();
         return this;
       }
       /**
@@ -1396,11 +1288,11 @@ public Builder setAttemptDelay(
           com.google.protobuf.Duration.Builder builderForValue) {
         if (attemptDelayBuilder_ == null) {
           attemptDelay_ = builderForValue.build();
-          onChanged();
         } else {
           attemptDelayBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000008;
+        onChanged();
         return this;
       }
       /**
@@ -1413,17 +1305,18 @@ public Builder setAttemptDelay(
        */
       public Builder mergeAttemptDelay(com.google.protobuf.Duration value) {
         if (attemptDelayBuilder_ == null) {
-          if (attemptDelay_ != null) {
-            attemptDelay_ =
-              com.google.protobuf.Duration.newBuilder(attemptDelay_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000008) != 0) &&
+            attemptDelay_ != null &&
+            attemptDelay_ != com.google.protobuf.Duration.getDefaultInstance()) {
+            getAttemptDelayBuilder().mergeFrom(value);
           } else {
             attemptDelay_ = value;
           }
-          onChanged();
         } else {
           attemptDelayBuilder_.mergeFrom(value);
         }
-
+        bitField0_ |= 0x00000008;
+        onChanged();
         return this;
       }
       /**
@@ -1435,14 +1328,13 @@ public Builder mergeAttemptDelay(com.google.protobuf.Duration value) {
        * .google.protobuf.Duration attempt_delay = 4;
        */
       public Builder clearAttemptDelay() {
-        if (attemptDelayBuilder_ == null) {
-          attemptDelay_ = null;
-          onChanged();
-        } else {
-          attemptDelay_ = null;
+        bitField0_ = (bitField0_ & ~0x00000008);
+        attemptDelay_ = null;
+        if (attemptDelayBuilder_ != null) {
+          attemptDelayBuilder_.dispose();
           attemptDelayBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
@@ -1454,7 +1346,7 @@ public Builder clearAttemptDelay() {
        * .google.protobuf.Duration attempt_delay = 4;
        */
       public com.google.protobuf.Duration.Builder getAttemptDelayBuilder() {
-        
+        bitField0_ |= 0x00000008;
         onChanged();
         return getAttemptDelayFieldBuilder().getBuilder();
       }
@@ -1508,7 +1400,7 @@ public com.google.protobuf.DurationOrBuilder getAttemptDelayOrBuilder() {
        * @return Whether the status field is set.
        */
       public boolean hasStatus() {
-        return statusBuilder_ != null || status_ != null;
+        return ((bitField0_ & 0x00000010) != 0);
       }
       /**
        * 
@@ -1538,11 +1430,11 @@ public Builder setStatus(com.google.rpc.Status value) {
             throw new NullPointerException();
           }
           status_ = value;
-          onChanged();
         } else {
           statusBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000010;
+        onChanged();
         return this;
       }
       /**
@@ -1556,11 +1448,11 @@ public Builder setStatus(
           com.google.rpc.Status.Builder builderForValue) {
         if (statusBuilder_ == null) {
           status_ = builderForValue.build();
-          onChanged();
         } else {
           statusBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000010;
+        onChanged();
         return this;
       }
       /**
@@ -1572,17 +1464,18 @@ public Builder setStatus(
        */
       public Builder mergeStatus(com.google.rpc.Status value) {
         if (statusBuilder_ == null) {
-          if (status_ != null) {
-            status_ =
-              com.google.rpc.Status.newBuilder(status_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000010) != 0) &&
+            status_ != null &&
+            status_ != com.google.rpc.Status.getDefaultInstance()) {
+            getStatusBuilder().mergeFrom(value);
           } else {
             status_ = value;
           }
-          onChanged();
         } else {
           statusBuilder_.mergeFrom(value);
         }
-
+        bitField0_ |= 0x00000010;
+        onChanged();
         return this;
       }
       /**
@@ -1593,14 +1486,13 @@ public Builder mergeStatus(com.google.rpc.Status value) {
        * .google.rpc.Status status = 5;
        */
       public Builder clearStatus() {
-        if (statusBuilder_ == null) {
-          status_ = null;
-          onChanged();
-        } else {
-          status_ = null;
+        bitField0_ = (bitField0_ & ~0x00000010);
+        status_ = null;
+        if (statusBuilder_ != null) {
+          statusBuilder_.dispose();
           statusBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
@@ -1611,7 +1503,7 @@ public Builder clearStatus() {
        * .google.rpc.Status status = 5;
        */
       public com.google.rpc.Status.Builder getStatusBuilder() {
-        
+        bitField0_ |= 0x00000010;
         onChanged();
         return getStatusFieldBuilder().getBuilder();
       }
@@ -1683,7 +1575,18 @@ public Attempt parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        return new Attempt(input, extensionRegistry);
+        Builder builder = newBuilder();
+        try {
+          builder.mergeFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(builder.buildPartial());
+        } catch (com.google.protobuf.UninitializedMessageException e) {
+          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(e)
+              .setUnfinishedMessage(builder.buildPartial());
+        }
+        return builder.buildPartial();
       }
     };
 
@@ -1704,7 +1607,8 @@ public com.google.showcase.v1beta1.SequenceReport.Attempt getDefaultInstanceForT
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
    * @return The name.
@@ -1742,6 +1646,7 @@ public java.lang.String getName() {
   }
 
   public static final int ATTEMPTS_FIELD_NUMBER = 2;
+  @SuppressWarnings("serial")
   private java.util.List attempts_;
   /**
    * 
@@ -1821,7 +1726,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < attempts_.size(); i++) {
       output.writeMessage(2, attempts_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -1837,7 +1742,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, attempts_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -1856,7 +1761,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getName())) return false;
     if (!getAttemptsList()
         .equals(other.getAttemptsList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -1873,7 +1778,7 @@ public int hashCode() {
       hash = (37 * hash) + ATTEMPTS_FIELD_NUMBER;
       hash = (53 * hash) + getAttemptsList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -1990,31 +1895,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.SequenceReport.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getAttemptsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       if (attemptsBuilder_ == null) {
         attempts_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        attempts_ = null;
         attemptsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000002);
       return this;
     }
 
@@ -2041,19 +1941,29 @@ public com.google.showcase.v1beta1.SequenceReport build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.SequenceReport buildPartial() {
       com.google.showcase.v1beta1.SequenceReport result = new com.google.showcase.v1beta1.SequenceReport(this);
-      int from_bitField0_ = bitField0_;
-      result.name_ = name_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.SequenceReport result) {
       if (attemptsBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000002) != 0)) {
           attempts_ = java.util.Collections.unmodifiableList(attempts_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000002);
         }
         result.attempts_ = attempts_;
       } else {
         result.attempts_ = attemptsBuilder_.build();
       }
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.SequenceReport result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
     }
 
     @java.lang.Override
@@ -2102,13 +2012,14 @@ public Builder mergeFrom(com.google.showcase.v1beta1.SequenceReport other) {
       if (other == com.google.showcase.v1beta1.SequenceReport.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (attemptsBuilder_ == null) {
         if (!other.attempts_.isEmpty()) {
           if (attempts_.isEmpty()) {
             attempts_ = other.attempts_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
           } else {
             ensureAttemptsIsMutable();
             attempts_.addAll(other.attempts_);
@@ -2121,7 +2032,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.SequenceReport other) {
             attemptsBuilder_.dispose();
             attemptsBuilder_ = null;
             attempts_ = other.attempts_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000002);
             attemptsBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getAttemptsFieldBuilder() : null;
@@ -2130,7 +2041,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.SequenceReport other) {
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -2145,17 +2056,48 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.SequenceReport parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              com.google.showcase.v1beta1.SequenceReport.Attempt m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.SequenceReport.Attempt.parser(),
+                      extensionRegistry);
+              if (attemptsBuilder_ == null) {
+                ensureAttemptsIsMutable();
+                attempts_.add(m);
+              } else {
+                attemptsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.SequenceReport) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -2201,11 +2143,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -2214,8 +2154,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -2226,12 +2166,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -2239,9 +2177,9 @@ public Builder setNameBytes(
     private java.util.List attempts_ =
       java.util.Collections.emptyList();
     private void ensureAttemptsIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000002) != 0)) {
         attempts_ = new java.util.ArrayList(attempts_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000002;
        }
     }
 
@@ -2435,7 +2373,7 @@ public Builder addAllAttempts(
     public Builder clearAttempts() {
       if (attemptsBuilder_ == null) {
         attempts_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
       } else {
         attemptsBuilder_.clear();
@@ -2540,7 +2478,7 @@ public com.google.showcase.v1beta1.SequenceReport.Attempt.Builder addAttemptsBui
         attemptsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             com.google.showcase.v1beta1.SequenceReport.Attempt, com.google.showcase.v1beta1.SequenceReport.Attempt.Builder, com.google.showcase.v1beta1.SequenceReport.AttemptOrBuilder>(
                 attempts_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000002) != 0),
                 getParentForChildren(),
                 isClean());
         attempts_ = null;
@@ -2580,7 +2518,18 @@ public SequenceReport parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new SequenceReport(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Session.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Session.java
index 3da8c29963..215f8ce655 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Session.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Session.java
@@ -39,57 +39,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private Session(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 16: {
-            int rawValue = input.readEnum();
-
-            version_ = rawValue;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_Session_descriptor;
@@ -251,7 +200,8 @@ private Version(int value) {
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The name of the session. The ID must conform to ^[a-z]+$
@@ -299,7 +249,7 @@ public java.lang.String getName() {
   }
 
   public static final int VERSION_FIELD_NUMBER = 2;
-  private int version_;
+  private int version_ = 0;
   /**
    * 
    * Required. The version this session is using.
@@ -320,8 +270,7 @@ public java.lang.String getName() {
    * @return The version.
    */
   @java.lang.Override public com.google.showcase.v1beta1.Session.Version getVersion() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.Session.Version result = com.google.showcase.v1beta1.Session.Version.valueOf(version_);
+    com.google.showcase.v1beta1.Session.Version result = com.google.showcase.v1beta1.Session.Version.forNumber(version_);
     return result == null ? com.google.showcase.v1beta1.Session.Version.UNRECOGNIZED : result;
   }
 
@@ -345,7 +294,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (version_ != com.google.showcase.v1beta1.Session.Version.VERSION_UNSPECIFIED.getNumber()) {
       output.writeEnum(2, version_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -361,7 +310,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(2, version_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -379,7 +328,7 @@ public boolean equals(final java.lang.Object obj) {
     if (!getName()
         .equals(other.getName())) return false;
     if (version_ != other.version_) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -394,7 +343,7 @@ public int hashCode() {
     hash = (53 * hash) + getName().hashCode();
     hash = (37 * hash) + VERSION_FIELD_NUMBER;
     hash = (53 * hash) + version_;
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -518,26 +467,20 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.Session.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       version_ = 0;
-
       return this;
     }
 
@@ -564,12 +507,21 @@ public com.google.showcase.v1beta1.Session build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.Session buildPartial() {
       com.google.showcase.v1beta1.Session result = new com.google.showcase.v1beta1.Session(this);
-      result.name_ = name_;
-      result.version_ = version_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.Session result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.version_ = version_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -616,12 +568,13 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Session other) {
       if (other == com.google.showcase.v1beta1.Session.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.version_ != 0) {
         setVersionValue(other.getVersionValue());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -636,19 +589,43 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.Session parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              version_ = input.readEnum();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.Session) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -706,11 +683,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -724,8 +699,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -741,12 +716,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -773,8 +746,8 @@ public Builder setNameBytes(
      * @return This builder for chaining.
      */
     public Builder setVersionValue(int value) {
-      
       version_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -788,8 +761,7 @@ public Builder setVersionValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.Session.Version getVersion() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.Session.Version result = com.google.showcase.v1beta1.Session.Version.valueOf(version_);
+      com.google.showcase.v1beta1.Session.Version result = com.google.showcase.v1beta1.Session.Version.forNumber(version_);
       return result == null ? com.google.showcase.v1beta1.Session.Version.UNRECOGNIZED : result;
     }
     /**
@@ -805,7 +777,7 @@ public Builder setVersion(com.google.showcase.v1beta1.Session.Version value) {
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000002;
       version_ = value.getNumber();
       onChanged();
       return this;
@@ -819,7 +791,7 @@ public Builder setVersion(com.google.showcase.v1beta1.Session.Version value) {
      * @return This builder for chaining.
      */
     public Builder clearVersion() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       version_ = 0;
       onChanged();
       return this;
@@ -857,7 +829,18 @@ public Session parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new Session(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/StreamBlurbsRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/StreamBlurbsRequest.java
index 204ec91396..0c9520f6db 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/StreamBlurbsRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/StreamBlurbsRequest.java
@@ -36,64 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private StreamBlurbsRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            com.google.protobuf.Timestamp.Builder subBuilder = null;
-            if (expireTime_ != null) {
-              subBuilder = expireTime_.toBuilder();
-            }
-            expireTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(expireTime_);
-              expireTime_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_StreamBlurbsRequest_descriptor;
@@ -108,7 +50,8 @@ private StreamBlurbsRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The resource name of a chat room or user profile whose blurbs to stream.
@@ -188,7 +131,7 @@ public com.google.protobuf.Timestamp getExpireTime() {
    */
   @java.lang.Override
   public com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder() {
-    return getExpireTime();
+    return expireTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : expireTime_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -211,7 +154,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (expireTime_ != null) {
       output.writeMessage(2, getExpireTime());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -227,7 +170,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, getExpireTime());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -249,7 +192,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getExpireTime()
           .equals(other.getExpireTime())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -266,7 +209,7 @@ public int hashCode() {
       hash = (37 * hash) + EXPIRE_TIME_FIELD_NUMBER;
       hash = (53 * hash) + getExpireTime().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -388,28 +331,22 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.StreamBlurbsRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
-      if (expireTimeBuilder_ == null) {
-        expireTime_ = null;
-      } else {
-        expireTime_ = null;
+      expireTime_ = null;
+      if (expireTimeBuilder_ != null) {
+        expireTimeBuilder_.dispose();
         expireTimeBuilder_ = null;
       }
       return this;
@@ -438,16 +375,23 @@ public com.google.showcase.v1beta1.StreamBlurbsRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.StreamBlurbsRequest buildPartial() {
       com.google.showcase.v1beta1.StreamBlurbsRequest result = new com.google.showcase.v1beta1.StreamBlurbsRequest(this);
-      result.name_ = name_;
-      if (expireTimeBuilder_ == null) {
-        result.expireTime_ = expireTime_;
-      } else {
-        result.expireTime_ = expireTimeBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.StreamBlurbsRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.expireTime_ = expireTimeBuilder_ == null
+            ? expireTime_
+            : expireTimeBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -494,12 +438,13 @@ public Builder mergeFrom(com.google.showcase.v1beta1.StreamBlurbsRequest other)
       if (other == com.google.showcase.v1beta1.StreamBlurbsRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.hasExpireTime()) {
         mergeExpireTime(other.getExpireTime());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -514,19 +459,45 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.StreamBlurbsRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getExpireTimeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.StreamBlurbsRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object name_ = "";
     /**
@@ -581,11 +552,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -598,8 +567,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -614,12 +583,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -636,7 +603,7 @@ public Builder setNameBytes(
      * @return Whether the expireTime field is set.
      */
     public boolean hasExpireTime() {
-      return expireTimeBuilder_ != null || expireTime_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -666,11 +633,11 @@ public Builder setExpireTime(com.google.protobuf.Timestamp value) {
           throw new NullPointerException();
         }
         expireTime_ = value;
-        onChanged();
       } else {
         expireTimeBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -684,11 +651,11 @@ public Builder setExpireTime(
         com.google.protobuf.Timestamp.Builder builderForValue) {
       if (expireTimeBuilder_ == null) {
         expireTime_ = builderForValue.build();
-        onChanged();
       } else {
         expireTimeBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -700,17 +667,18 @@ public Builder setExpireTime(
      */
     public Builder mergeExpireTime(com.google.protobuf.Timestamp value) {
       if (expireTimeBuilder_ == null) {
-        if (expireTime_ != null) {
-          expireTime_ =
-            com.google.protobuf.Timestamp.newBuilder(expireTime_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000002) != 0) &&
+          expireTime_ != null &&
+          expireTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+          getExpireTimeBuilder().mergeFrom(value);
         } else {
           expireTime_ = value;
         }
-        onChanged();
       } else {
         expireTimeBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -721,14 +689,13 @@ public Builder mergeExpireTime(com.google.protobuf.Timestamp value) {
      * .google.protobuf.Timestamp expire_time = 2 [(.google.api.field_behavior) = REQUIRED];
      */
     public Builder clearExpireTime() {
-      if (expireTimeBuilder_ == null) {
-        expireTime_ = null;
-        onChanged();
-      } else {
-        expireTime_ = null;
+      bitField0_ = (bitField0_ & ~0x00000002);
+      expireTime_ = null;
+      if (expireTimeBuilder_ != null) {
+        expireTimeBuilder_.dispose();
         expireTimeBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -739,7 +706,7 @@ public Builder clearExpireTime() {
      * .google.protobuf.Timestamp expire_time = 2 [(.google.api.field_behavior) = REQUIRED];
      */
     public com.google.protobuf.Timestamp.Builder getExpireTimeBuilder() {
-      
+      bitField0_ |= 0x00000002;
       onChanged();
       return getExpireTimeFieldBuilder().getBuilder();
     }
@@ -811,7 +778,18 @@ public StreamBlurbsRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new StreamBlurbsRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/StreamBlurbsResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/StreamBlurbsResponse.java
index 5d3d9a5208..5310bca677 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/StreamBlurbsResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/StreamBlurbsResponse.java
@@ -36,64 +36,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private StreamBlurbsResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.showcase.v1beta1.Blurb.Builder subBuilder = null;
-            if (blurb_ != null) {
-              subBuilder = blurb_.toBuilder();
-            }
-            blurb_ = input.readMessage(com.google.showcase.v1beta1.Blurb.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(blurb_);
-              blurb_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 16: {
-            int rawValue = input.readEnum();
-
-            action_ = rawValue;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_StreamBlurbsResponse_descriptor;
@@ -296,11 +238,11 @@ public com.google.showcase.v1beta1.Blurb getBlurb() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.BlurbOrBuilder getBlurbOrBuilder() {
-    return getBlurb();
+    return blurb_ == null ? com.google.showcase.v1beta1.Blurb.getDefaultInstance() : blurb_;
   }
 
   public static final int ACTION_FIELD_NUMBER = 2;
-  private int action_;
+  private int action_ = 0;
   /**
    * 
    * The action that triggered the blurb to be returned.
@@ -321,8 +263,7 @@ public com.google.showcase.v1beta1.BlurbOrBuilder getBlurbOrBuilder() {
    * @return The action.
    */
   @java.lang.Override public com.google.showcase.v1beta1.StreamBlurbsResponse.Action getAction() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.StreamBlurbsResponse.Action result = com.google.showcase.v1beta1.StreamBlurbsResponse.Action.valueOf(action_);
+    com.google.showcase.v1beta1.StreamBlurbsResponse.Action result = com.google.showcase.v1beta1.StreamBlurbsResponse.Action.forNumber(action_);
     return result == null ? com.google.showcase.v1beta1.StreamBlurbsResponse.Action.UNRECOGNIZED : result;
   }
 
@@ -346,7 +287,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (action_ != com.google.showcase.v1beta1.StreamBlurbsResponse.Action.ACTION_UNSPECIFIED.getNumber()) {
       output.writeEnum(2, action_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -363,7 +304,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeEnumSize(2, action_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -384,7 +325,7 @@ public boolean equals(final java.lang.Object obj) {
           .equals(other.getBlurb())) return false;
     }
     if (action_ != other.action_) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -401,7 +342,7 @@ public int hashCode() {
     }
     hash = (37 * hash) + ACTION_FIELD_NUMBER;
     hash = (53 * hash) + action_;
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -523,30 +464,24 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.StreamBlurbsResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (blurbBuilder_ == null) {
-        blurb_ = null;
-      } else {
-        blurb_ = null;
+      bitField0_ = 0;
+      blurb_ = null;
+      if (blurbBuilder_ != null) {
+        blurbBuilder_.dispose();
         blurbBuilder_ = null;
       }
       action_ = 0;
-
       return this;
     }
 
@@ -573,16 +508,23 @@ public com.google.showcase.v1beta1.StreamBlurbsResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.StreamBlurbsResponse buildPartial() {
       com.google.showcase.v1beta1.StreamBlurbsResponse result = new com.google.showcase.v1beta1.StreamBlurbsResponse(this);
-      if (blurbBuilder_ == null) {
-        result.blurb_ = blurb_;
-      } else {
-        result.blurb_ = blurbBuilder_.build();
-      }
-      result.action_ = action_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.StreamBlurbsResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.blurb_ = blurbBuilder_ == null
+            ? blurb_
+            : blurbBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.action_ = action_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -633,7 +575,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.StreamBlurbsResponse other)
       if (other.action_ != 0) {
         setActionValue(other.getActionValue());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -648,19 +590,45 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.StreamBlurbsResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getBlurbFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              action_ = input.readEnum();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.StreamBlurbsResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.showcase.v1beta1.Blurb blurb_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -674,7 +642,7 @@ public Builder mergeFrom(
      * @return Whether the blurb field is set.
      */
     public boolean hasBlurb() {
-      return blurbBuilder_ != null || blurb_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -704,11 +672,11 @@ public Builder setBlurb(com.google.showcase.v1beta1.Blurb value) {
           throw new NullPointerException();
         }
         blurb_ = value;
-        onChanged();
       } else {
         blurbBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -722,11 +690,11 @@ public Builder setBlurb(
         com.google.showcase.v1beta1.Blurb.Builder builderForValue) {
       if (blurbBuilder_ == null) {
         blurb_ = builderForValue.build();
-        onChanged();
       } else {
         blurbBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -738,17 +706,18 @@ public Builder setBlurb(
      */
     public Builder mergeBlurb(com.google.showcase.v1beta1.Blurb value) {
       if (blurbBuilder_ == null) {
-        if (blurb_ != null) {
-          blurb_ =
-            com.google.showcase.v1beta1.Blurb.newBuilder(blurb_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          blurb_ != null &&
+          blurb_ != com.google.showcase.v1beta1.Blurb.getDefaultInstance()) {
+          getBlurbBuilder().mergeFrom(value);
         } else {
           blurb_ = value;
         }
-        onChanged();
       } else {
         blurbBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -759,14 +728,13 @@ public Builder mergeBlurb(com.google.showcase.v1beta1.Blurb value) {
      * .google.showcase.v1beta1.Blurb blurb = 1;
      */
     public Builder clearBlurb() {
-      if (blurbBuilder_ == null) {
-        blurb_ = null;
-        onChanged();
-      } else {
-        blurb_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      blurb_ = null;
+      if (blurbBuilder_ != null) {
+        blurbBuilder_.dispose();
         blurbBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -777,7 +745,7 @@ public Builder clearBlurb() {
      * .google.showcase.v1beta1.Blurb blurb = 1;
      */
     public com.google.showcase.v1beta1.Blurb.Builder getBlurbBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getBlurbFieldBuilder().getBuilder();
     }
@@ -839,8 +807,8 @@ public com.google.showcase.v1beta1.BlurbOrBuilder getBlurbOrBuilder() {
      * @return This builder for chaining.
      */
     public Builder setActionValue(int value) {
-      
       action_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -854,8 +822,7 @@ public Builder setActionValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.StreamBlurbsResponse.Action getAction() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.StreamBlurbsResponse.Action result = com.google.showcase.v1beta1.StreamBlurbsResponse.Action.valueOf(action_);
+      com.google.showcase.v1beta1.StreamBlurbsResponse.Action result = com.google.showcase.v1beta1.StreamBlurbsResponse.Action.forNumber(action_);
       return result == null ? com.google.showcase.v1beta1.StreamBlurbsResponse.Action.UNRECOGNIZED : result;
     }
     /**
@@ -871,7 +838,7 @@ public Builder setAction(com.google.showcase.v1beta1.StreamBlurbsResponse.Action
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000002;
       action_ = value.getNumber();
       onChanged();
       return this;
@@ -885,7 +852,7 @@ public Builder setAction(com.google.showcase.v1beta1.StreamBlurbsResponse.Action
      * @return This builder for chaining.
      */
     public Builder clearAction() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       action_ = 0;
       onChanged();
       return this;
@@ -923,7 +890,18 @@ public StreamBlurbsResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new StreamBlurbsResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Test.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Test.java
index 7199f69a27..23df212ac0 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Test.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/Test.java
@@ -34,76 +34,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private Test(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 16: {
-            int rawValue = input.readEnum();
-
-            expectationLevel_ = rawValue;
-            break;
-          }
-          case 26: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            description_ = s;
-            break;
-          }
-          case 34: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              blueprints_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            blueprints_.add(
-                input.readMessage(com.google.showcase.v1beta1.Test.Blueprint.parser(), extensionRegistry));
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        blueprints_ = java.util.Collections.unmodifiableList(blueprints_);
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_Test_descriptor;
@@ -441,83 +371,6 @@ protected java.lang.Object newInstance(
     getUnknownFields() {
       return this.unknownFields;
     }
-    private Blueprint(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      int mutable_bitField0_ = 0;
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 10: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              name_ = s;
-              break;
-            }
-            case 18: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              description_ = s;
-              break;
-            }
-            case 26: {
-              com.google.showcase.v1beta1.Test.Blueprint.Invocation.Builder subBuilder = null;
-              if (request_ != null) {
-                subBuilder = request_.toBuilder();
-              }
-              request_ = input.readMessage(com.google.showcase.v1beta1.Test.Blueprint.Invocation.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(request_);
-                request_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            case 34: {
-              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-                additionalRequests_ = new java.util.ArrayList();
-                mutable_bitField0_ |= 0x00000001;
-              }
-              additionalRequests_.add(
-                  input.readMessage(com.google.showcase.v1beta1.Test.Blueprint.Invocation.parser(), extensionRegistry));
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (com.google.protobuf.UninitializedMessageException e) {
-        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        if (((mutable_bitField0_ & 0x00000001) != 0)) {
-          additionalRequests_ = java.util.Collections.unmodifiableList(additionalRequests_);
-        }
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_Test_Blueprint_descriptor;
@@ -598,56 +451,6 @@ protected java.lang.Object newInstance(
       getUnknownFields() {
         return this.unknownFields;
       }
-      private Invocation(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        this();
-        if (extensionRegistry == null) {
-          throw new java.lang.NullPointerException();
-        }
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-            com.google.protobuf.UnknownFieldSet.newBuilder();
-        try {
-          boolean done = false;
-          while (!done) {
-            int tag = input.readTag();
-            switch (tag) {
-              case 0:
-                done = true;
-                break;
-              case 10: {
-                java.lang.String s = input.readStringRequireUtf8();
-
-                method_ = s;
-                break;
-              }
-              case 18: {
-
-                serializedRequest_ = input.readBytes();
-                break;
-              }
-              default: {
-                if (!parseUnknownField(
-                    input, unknownFields, extensionRegistry, tag)) {
-                  done = true;
-                }
-                break;
-              }
-            }
-          }
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          throw e.setUnfinishedMessage(this);
-        } catch (com.google.protobuf.UninitializedMessageException e) {
-          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-        } catch (java.io.IOException e) {
-          throw new com.google.protobuf.InvalidProtocolBufferException(
-              e).setUnfinishedMessage(this);
-        } finally {
-          this.unknownFields = unknownFields.build();
-          makeExtensionsImmutable();
-        }
-      }
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_Test_Blueprint_Invocation_descriptor;
@@ -662,7 +465,8 @@ private Invocation(
       }
 
       public static final int METHOD_FIELD_NUMBER = 1;
-      private volatile java.lang.Object method_;
+      @SuppressWarnings("serial")
+      private volatile java.lang.Object method_ = "";
       /**
        * 
        * The fully qualified name of the showcase method to be invoked.
@@ -708,7 +512,7 @@ public java.lang.String getMethod() {
       }
 
       public static final int SERIALIZED_REQUEST_FIELD_NUMBER = 2;
-      private com.google.protobuf.ByteString serializedRequest_;
+      private com.google.protobuf.ByteString serializedRequest_ = com.google.protobuf.ByteString.EMPTY;
       /**
        * 
        * The request to be made if a specific request is necessary.
@@ -742,7 +546,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
         if (!serializedRequest_.isEmpty()) {
           output.writeBytes(2, serializedRequest_);
         }
-        unknownFields.writeTo(output);
+        getUnknownFields().writeTo(output);
       }
 
       @java.lang.Override
@@ -758,7 +562,7 @@ public int getSerializedSize() {
           size += com.google.protobuf.CodedOutputStream
             .computeBytesSize(2, serializedRequest_);
         }
-        size += unknownFields.getSerializedSize();
+        size += getUnknownFields().getSerializedSize();
         memoizedSize = size;
         return size;
       }
@@ -777,7 +581,7 @@ public boolean equals(final java.lang.Object obj) {
             .equals(other.getMethod())) return false;
         if (!getSerializedRequest()
             .equals(other.getSerializedRequest())) return false;
-        if (!unknownFields.equals(other.unknownFields)) return false;
+        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
         return true;
       }
 
@@ -792,7 +596,7 @@ public int hashCode() {
         hash = (53 * hash) + getMethod().hashCode();
         hash = (37 * hash) + SERIALIZED_REQUEST_FIELD_NUMBER;
         hash = (53 * hash) + getSerializedRequest().hashCode();
-        hash = (29 * hash) + unknownFields.hashCode();
+        hash = (29 * hash) + getUnknownFields().hashCode();
         memoizedHashCode = hash;
         return hash;
       }
@@ -913,26 +717,20 @@ public static final class Builder extends
 
         // Construct using com.google.showcase.v1beta1.Test.Blueprint.Invocation.newBuilder()
         private Builder() {
-          maybeForceBuilderInitialization();
+
         }
 
         private Builder(
             com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
           super(parent);
-          maybeForceBuilderInitialization();
-        }
-        private void maybeForceBuilderInitialization() {
-          if (com.google.protobuf.GeneratedMessageV3
-                  .alwaysUseFieldBuilders) {
-          }
+
         }
         @java.lang.Override
         public Builder clear() {
           super.clear();
+          bitField0_ = 0;
           method_ = "";
-
           serializedRequest_ = com.google.protobuf.ByteString.EMPTY;
-
           return this;
         }
 
@@ -959,12 +757,21 @@ public com.google.showcase.v1beta1.Test.Blueprint.Invocation build() {
         @java.lang.Override
         public com.google.showcase.v1beta1.Test.Blueprint.Invocation buildPartial() {
           com.google.showcase.v1beta1.Test.Blueprint.Invocation result = new com.google.showcase.v1beta1.Test.Blueprint.Invocation(this);
-          result.method_ = method_;
-          result.serializedRequest_ = serializedRequest_;
+          if (bitField0_ != 0) { buildPartial0(result); }
           onBuilt();
           return result;
         }
 
+        private void buildPartial0(com.google.showcase.v1beta1.Test.Blueprint.Invocation result) {
+          int from_bitField0_ = bitField0_;
+          if (((from_bitField0_ & 0x00000001) != 0)) {
+            result.method_ = method_;
+          }
+          if (((from_bitField0_ & 0x00000002) != 0)) {
+            result.serializedRequest_ = serializedRequest_;
+          }
+        }
+
         @java.lang.Override
         public Builder clone() {
           return super.clone();
@@ -1011,12 +818,13 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Test.Blueprint.Invocation o
           if (other == com.google.showcase.v1beta1.Test.Blueprint.Invocation.getDefaultInstance()) return this;
           if (!other.getMethod().isEmpty()) {
             method_ = other.method_;
+            bitField0_ |= 0x00000001;
             onChanged();
           }
           if (other.getSerializedRequest() != com.google.protobuf.ByteString.EMPTY) {
             setSerializedRequest(other.getSerializedRequest());
           }
-          this.mergeUnknownFields(other.unknownFields);
+          this.mergeUnknownFields(other.getUnknownFields());
           onChanged();
           return this;
         }
@@ -1031,19 +839,43 @@ public Builder mergeFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          com.google.showcase.v1beta1.Test.Blueprint.Invocation parsedMessage = null;
+          if (extensionRegistry == null) {
+            throw new java.lang.NullPointerException();
+          }
           try {
-            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+            boolean done = false;
+            while (!done) {
+              int tag = input.readTag();
+              switch (tag) {
+                case 0:
+                  done = true;
+                  break;
+                case 10: {
+                  method_ = input.readStringRequireUtf8();
+                  bitField0_ |= 0x00000001;
+                  break;
+                } // case 10
+                case 18: {
+                  serializedRequest_ = input.readBytes();
+                  bitField0_ |= 0x00000002;
+                  break;
+                } // case 18
+                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) {
-            parsedMessage = (com.google.showcase.v1beta1.Test.Blueprint.Invocation) e.getUnfinishedMessage();
             throw e.unwrapIOException();
           } finally {
-            if (parsedMessage != null) {
-              mergeFrom(parsedMessage);
-            }
-          }
+            onChanged();
+          } // finally
           return this;
         }
+        private int bitField0_;
 
         private java.lang.Object method_ = "";
         /**
@@ -1098,11 +930,9 @@ public java.lang.String getMethod() {
          */
         public Builder setMethod(
             java.lang.String value) {
-          if (value == null) {
-    throw new NullPointerException();
-  }
-  
+          if (value == null) { throw new NullPointerException(); }
           method_ = value;
+          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -1115,8 +945,8 @@ public Builder setMethod(
          * @return This builder for chaining.
          */
         public Builder clearMethod() {
-          
           method_ = getDefaultInstance().getMethod();
+          bitField0_ = (bitField0_ & ~0x00000001);
           onChanged();
           return this;
         }
@@ -1131,12 +961,10 @@ public Builder clearMethod() {
          */
         public Builder setMethodBytes(
             com.google.protobuf.ByteString value) {
-          if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-          
+          if (value == null) { throw new NullPointerException(); }
+          checkByteStringIsUtf8(value);
           method_ = value;
+          bitField0_ |= 0x00000001;
           onChanged();
           return this;
         }
@@ -1164,11 +992,9 @@ public com.google.protobuf.ByteString getSerializedRequest() {
          * @return This builder for chaining.
          */
         public Builder setSerializedRequest(com.google.protobuf.ByteString value) {
-          if (value == null) {
-    throw new NullPointerException();
-  }
-  
+          if (value == null) { throw new NullPointerException(); }
           serializedRequest_ = value;
+          bitField0_ |= 0x00000002;
           onChanged();
           return this;
         }
@@ -1181,7 +1007,7 @@ public Builder setSerializedRequest(com.google.protobuf.ByteString value) {
          * @return This builder for chaining.
          */
         public Builder clearSerializedRequest() {
-          
+          bitField0_ = (bitField0_ & ~0x00000002);
           serializedRequest_ = getDefaultInstance().getSerializedRequest();
           onChanged();
           return this;
@@ -1219,7 +1045,18 @@ public Invocation parsePartialFrom(
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-          return new Invocation(input, extensionRegistry);
+          Builder builder = newBuilder();
+          try {
+            builder.mergeFrom(input, extensionRegistry);
+          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            throw e.setUnfinishedMessage(builder.buildPartial());
+          } catch (com.google.protobuf.UninitializedMessageException e) {
+            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+          } catch (java.io.IOException e) {
+            throw new com.google.protobuf.InvalidProtocolBufferException(e)
+                .setUnfinishedMessage(builder.buildPartial());
+          }
+          return builder.buildPartial();
         }
       };
 
@@ -1240,7 +1077,8 @@ public com.google.showcase.v1beta1.Test.Blueprint.Invocation getDefaultInstanceF
     }
 
     public static final int NAME_FIELD_NUMBER = 1;
-    private volatile java.lang.Object name_;
+    @SuppressWarnings("serial")
+    private volatile java.lang.Object name_ = "";
     /**
      * 
      * The name of this blueprint.
@@ -1286,7 +1124,8 @@ public java.lang.String getName() {
     }
 
     public static final int DESCRIPTION_FIELD_NUMBER = 2;
-    private volatile java.lang.Object description_;
+    @SuppressWarnings("serial")
+    private volatile java.lang.Object description_ = "";
     /**
      * 
      * A description of this blueprint.
@@ -1366,10 +1205,11 @@ public com.google.showcase.v1beta1.Test.Blueprint.Invocation getRequest() {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.Test.Blueprint.InvocationOrBuilder getRequestOrBuilder() {
-      return getRequest();
+      return request_ == null ? com.google.showcase.v1beta1.Test.Blueprint.Invocation.getDefaultInstance() : request_;
     }
 
     public static final int ADDITIONAL_REQUESTS_FIELD_NUMBER = 4;
+    @SuppressWarnings("serial")
     private java.util.List additionalRequests_;
     /**
      * 
@@ -1455,7 +1295,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       for (int i = 0; i < additionalRequests_.size(); i++) {
         output.writeMessage(4, additionalRequests_.get(i));
       }
-      unknownFields.writeTo(output);
+      getUnknownFields().writeTo(output);
     }
 
     @java.lang.Override
@@ -1478,7 +1318,7 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(4, additionalRequests_.get(i));
       }
-      size += unknownFields.getSerializedSize();
+      size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
     }
@@ -1504,7 +1344,7 @@ public boolean equals(final java.lang.Object obj) {
       }
       if (!getAdditionalRequestsList()
           .equals(other.getAdditionalRequestsList())) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
+      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
       return true;
     }
 
@@ -1527,7 +1367,7 @@ public int hashCode() {
         hash = (37 * hash) + ADDITIONAL_REQUESTS_FIELD_NUMBER;
         hash = (53 * hash) + getAdditionalRequestsList().hashCode();
       }
-      hash = (29 * hash) + unknownFields.hashCode();
+      hash = (29 * hash) + getUnknownFields().hashCode();
       memoizedHashCode = hash;
       return hash;
     }
@@ -1651,39 +1491,32 @@ public static final class Builder extends
 
       // Construct using com.google.showcase.v1beta1.Test.Blueprint.newBuilder()
       private Builder() {
-        maybeForceBuilderInitialization();
+
       }
 
       private Builder(
           com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-          getAdditionalRequestsFieldBuilder();
-        }
+
       }
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        bitField0_ = 0;
         name_ = "";
-
         description_ = "";
-
-        if (requestBuilder_ == null) {
-          request_ = null;
-        } else {
-          request_ = null;
+        request_ = null;
+        if (requestBuilder_ != null) {
+          requestBuilder_.dispose();
           requestBuilder_ = null;
         }
         if (additionalRequestsBuilder_ == null) {
           additionalRequests_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
         } else {
+          additionalRequests_ = null;
           additionalRequestsBuilder_.clear();
         }
+        bitField0_ = (bitField0_ & ~0x00000008);
         return this;
       }
 
@@ -1710,25 +1543,37 @@ public com.google.showcase.v1beta1.Test.Blueprint build() {
       @java.lang.Override
       public com.google.showcase.v1beta1.Test.Blueprint buildPartial() {
         com.google.showcase.v1beta1.Test.Blueprint result = new com.google.showcase.v1beta1.Test.Blueprint(this);
-        int from_bitField0_ = bitField0_;
-        result.name_ = name_;
-        result.description_ = description_;
-        if (requestBuilder_ == null) {
-          result.request_ = request_;
-        } else {
-          result.request_ = requestBuilder_.build();
-        }
+        buildPartialRepeatedFields(result);
+        if (bitField0_ != 0) { buildPartial0(result); }
+        onBuilt();
+        return result;
+      }
+
+      private void buildPartialRepeatedFields(com.google.showcase.v1beta1.Test.Blueprint result) {
         if (additionalRequestsBuilder_ == null) {
-          if (((bitField0_ & 0x00000001) != 0)) {
+          if (((bitField0_ & 0x00000008) != 0)) {
             additionalRequests_ = java.util.Collections.unmodifiableList(additionalRequests_);
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000008);
           }
           result.additionalRequests_ = additionalRequests_;
         } else {
           result.additionalRequests_ = additionalRequestsBuilder_.build();
         }
-        onBuilt();
-        return result;
+      }
+
+      private void buildPartial0(com.google.showcase.v1beta1.Test.Blueprint result) {
+        int from_bitField0_ = bitField0_;
+        if (((from_bitField0_ & 0x00000001) != 0)) {
+          result.name_ = name_;
+        }
+        if (((from_bitField0_ & 0x00000002) != 0)) {
+          result.description_ = description_;
+        }
+        if (((from_bitField0_ & 0x00000004) != 0)) {
+          result.request_ = requestBuilder_ == null
+              ? request_
+              : requestBuilder_.build();
+        }
       }
 
       @java.lang.Override
@@ -1777,10 +1622,12 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Test.Blueprint other) {
         if (other == com.google.showcase.v1beta1.Test.Blueprint.getDefaultInstance()) return this;
         if (!other.getName().isEmpty()) {
           name_ = other.name_;
+          bitField0_ |= 0x00000001;
           onChanged();
         }
         if (!other.getDescription().isEmpty()) {
           description_ = other.description_;
+          bitField0_ |= 0x00000002;
           onChanged();
         }
         if (other.hasRequest()) {
@@ -1790,7 +1637,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Test.Blueprint other) {
           if (!other.additionalRequests_.isEmpty()) {
             if (additionalRequests_.isEmpty()) {
               additionalRequests_ = other.additionalRequests_;
-              bitField0_ = (bitField0_ & ~0x00000001);
+              bitField0_ = (bitField0_ & ~0x00000008);
             } else {
               ensureAdditionalRequestsIsMutable();
               additionalRequests_.addAll(other.additionalRequests_);
@@ -1803,7 +1650,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Test.Blueprint other) {
               additionalRequestsBuilder_.dispose();
               additionalRequestsBuilder_ = null;
               additionalRequests_ = other.additionalRequests_;
-              bitField0_ = (bitField0_ & ~0x00000001);
+              bitField0_ = (bitField0_ & ~0x00000008);
               additionalRequestsBuilder_ = 
                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                    getAdditionalRequestsFieldBuilder() : null;
@@ -1812,7 +1659,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Test.Blueprint other) {
             }
           }
         }
-        this.mergeUnknownFields(other.unknownFields);
+        this.mergeUnknownFields(other.getUnknownFields());
         onChanged();
         return this;
       }
@@ -1827,17 +1674,60 @@ public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        com.google.showcase.v1beta1.Test.Blueprint parsedMessage = null;
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
         try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+          boolean done = false;
+          while (!done) {
+            int tag = input.readTag();
+            switch (tag) {
+              case 0:
+                done = true;
+                break;
+              case 10: {
+                name_ = input.readStringRequireUtf8();
+                bitField0_ |= 0x00000001;
+                break;
+              } // case 10
+              case 18: {
+                description_ = input.readStringRequireUtf8();
+                bitField0_ |= 0x00000002;
+                break;
+              } // case 18
+              case 26: {
+                input.readMessage(
+                    getRequestFieldBuilder().getBuilder(),
+                    extensionRegistry);
+                bitField0_ |= 0x00000004;
+                break;
+              } // case 26
+              case 34: {
+                com.google.showcase.v1beta1.Test.Blueprint.Invocation m =
+                    input.readMessage(
+                        com.google.showcase.v1beta1.Test.Blueprint.Invocation.parser(),
+                        extensionRegistry);
+                if (additionalRequestsBuilder_ == null) {
+                  ensureAdditionalRequestsIsMutable();
+                  additionalRequests_.add(m);
+                } else {
+                  additionalRequestsBuilder_.addMessage(m);
+                }
+                break;
+              } // case 34
+              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) {
-          parsedMessage = (com.google.showcase.v1beta1.Test.Blueprint) e.getUnfinishedMessage();
           throw e.unwrapIOException();
         } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
+          onChanged();
+        } // finally
         return this;
       }
       private int bitField0_;
@@ -1895,11 +1785,9 @@ public java.lang.String getName() {
        */
       public Builder setName(
           java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
+        if (value == null) { throw new NullPointerException(); }
         name_ = value;
+        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -1912,8 +1800,8 @@ public Builder setName(
        * @return This builder for chaining.
        */
       public Builder clearName() {
-        
         name_ = getDefaultInstance().getName();
+        bitField0_ = (bitField0_ & ~0x00000001);
         onChanged();
         return this;
       }
@@ -1928,12 +1816,10 @@ public Builder clearName() {
        */
       public Builder setNameBytes(
           com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
+        if (value == null) { throw new NullPointerException(); }
+        checkByteStringIsUtf8(value);
         name_ = value;
+        bitField0_ |= 0x00000001;
         onChanged();
         return this;
       }
@@ -1991,11 +1877,9 @@ public java.lang.String getDescription() {
        */
       public Builder setDescription(
           java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
+        if (value == null) { throw new NullPointerException(); }
         description_ = value;
+        bitField0_ |= 0x00000002;
         onChanged();
         return this;
       }
@@ -2008,8 +1892,8 @@ public Builder setDescription(
        * @return This builder for chaining.
        */
       public Builder clearDescription() {
-        
         description_ = getDefaultInstance().getDescription();
+        bitField0_ = (bitField0_ & ~0x00000002);
         onChanged();
         return this;
       }
@@ -2024,12 +1908,10 @@ public Builder clearDescription() {
        */
       public Builder setDescriptionBytes(
           com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
+        if (value == null) { throw new NullPointerException(); }
+        checkByteStringIsUtf8(value);
         description_ = value;
+        bitField0_ |= 0x00000002;
         onChanged();
         return this;
       }
@@ -2046,7 +1928,7 @@ public Builder setDescriptionBytes(
        * @return Whether the request field is set.
        */
       public boolean hasRequest() {
-        return requestBuilder_ != null || request_ != null;
+        return ((bitField0_ & 0x00000004) != 0);
       }
       /**
        * 
@@ -2076,11 +1958,11 @@ public Builder setRequest(com.google.showcase.v1beta1.Test.Blueprint.Invocation
             throw new NullPointerException();
           }
           request_ = value;
-          onChanged();
         } else {
           requestBuilder_.setMessage(value);
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -2094,11 +1976,11 @@ public Builder setRequest(
           com.google.showcase.v1beta1.Test.Blueprint.Invocation.Builder builderForValue) {
         if (requestBuilder_ == null) {
           request_ = builderForValue.build();
-          onChanged();
         } else {
           requestBuilder_.setMessage(builderForValue.build());
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -2110,17 +1992,18 @@ public Builder setRequest(
        */
       public Builder mergeRequest(com.google.showcase.v1beta1.Test.Blueprint.Invocation value) {
         if (requestBuilder_ == null) {
-          if (request_ != null) {
-            request_ =
-              com.google.showcase.v1beta1.Test.Blueprint.Invocation.newBuilder(request_).mergeFrom(value).buildPartial();
+          if (((bitField0_ & 0x00000004) != 0) &&
+            request_ != null &&
+            request_ != com.google.showcase.v1beta1.Test.Blueprint.Invocation.getDefaultInstance()) {
+            getRequestBuilder().mergeFrom(value);
           } else {
             request_ = value;
           }
-          onChanged();
         } else {
           requestBuilder_.mergeFrom(value);
         }
-
+        bitField0_ |= 0x00000004;
+        onChanged();
         return this;
       }
       /**
@@ -2131,14 +2014,13 @@ public Builder mergeRequest(com.google.showcase.v1beta1.Test.Blueprint.Invocatio
        * .google.showcase.v1beta1.Test.Blueprint.Invocation request = 3;
        */
       public Builder clearRequest() {
-        if (requestBuilder_ == null) {
-          request_ = null;
-          onChanged();
-        } else {
-          request_ = null;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        request_ = null;
+        if (requestBuilder_ != null) {
+          requestBuilder_.dispose();
           requestBuilder_ = null;
         }
-
+        onChanged();
         return this;
       }
       /**
@@ -2149,7 +2031,7 @@ public Builder clearRequest() {
        * .google.showcase.v1beta1.Test.Blueprint.Invocation request = 3;
        */
       public com.google.showcase.v1beta1.Test.Blueprint.Invocation.Builder getRequestBuilder() {
-        
+        bitField0_ |= 0x00000004;
         onChanged();
         return getRequestFieldBuilder().getBuilder();
       }
@@ -2192,9 +2074,9 @@ public com.google.showcase.v1beta1.Test.Blueprint.InvocationOrBuilder getRequest
       private java.util.List additionalRequests_ =
         java.util.Collections.emptyList();
       private void ensureAdditionalRequestsIsMutable() {
-        if (!((bitField0_ & 0x00000001) != 0)) {
+        if (!((bitField0_ & 0x00000008) != 0)) {
           additionalRequests_ = new java.util.ArrayList(additionalRequests_);
-          bitField0_ |= 0x00000001;
+          bitField0_ |= 0x00000008;
          }
       }
 
@@ -2388,7 +2270,7 @@ public Builder addAllAdditionalRequests(
       public Builder clearAdditionalRequests() {
         if (additionalRequestsBuilder_ == null) {
           additionalRequests_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000008);
           onChanged();
         } else {
           additionalRequestsBuilder_.clear();
@@ -2493,7 +2375,7 @@ public com.google.showcase.v1beta1.Test.Blueprint.Invocation.Builder addAddition
           additionalRequestsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
               com.google.showcase.v1beta1.Test.Blueprint.Invocation, com.google.showcase.v1beta1.Test.Blueprint.Invocation.Builder, com.google.showcase.v1beta1.Test.Blueprint.InvocationOrBuilder>(
                   additionalRequests_,
-                  ((bitField0_ & 0x00000001) != 0),
+                  ((bitField0_ & 0x00000008) != 0),
                   getParentForChildren(),
                   isClean());
           additionalRequests_ = null;
@@ -2533,7 +2415,18 @@ public Blueprint parsePartialFrom(
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-        return new Blueprint(input, extensionRegistry);
+        Builder builder = newBuilder();
+        try {
+          builder.mergeFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(builder.buildPartial());
+        } catch (com.google.protobuf.UninitializedMessageException e) {
+          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(e)
+              .setUnfinishedMessage(builder.buildPartial());
+        }
+        return builder.buildPartial();
       }
     };
 
@@ -2554,7 +2447,8 @@ public com.google.showcase.v1beta1.Test.Blueprint getDefaultInstanceForType() {
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The name of the test.
@@ -2604,7 +2498,7 @@ public java.lang.String getName() {
   }
 
   public static final int EXPECTATION_LEVEL_FIELD_NUMBER = 2;
-  private int expectationLevel_;
+  private int expectationLevel_ = 0;
   /**
    * 
    * The expectation level for this test.
@@ -2625,13 +2519,13 @@ public java.lang.String getName() {
    * @return The expectationLevel.
    */
   @java.lang.Override public com.google.showcase.v1beta1.Test.ExpectationLevel getExpectationLevel() {
-    @SuppressWarnings("deprecation")
-    com.google.showcase.v1beta1.Test.ExpectationLevel result = com.google.showcase.v1beta1.Test.ExpectationLevel.valueOf(expectationLevel_);
+    com.google.showcase.v1beta1.Test.ExpectationLevel result = com.google.showcase.v1beta1.Test.ExpectationLevel.forNumber(expectationLevel_);
     return result == null ? com.google.showcase.v1beta1.Test.ExpectationLevel.UNRECOGNIZED : result;
   }
 
   public static final int DESCRIPTION_FIELD_NUMBER = 3;
-  private volatile java.lang.Object description_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object description_ = "";
   /**
    * 
    * A description of the test.
@@ -2677,6 +2571,7 @@ public java.lang.String getDescription() {
   }
 
   public static final int BLUEPRINTS_FIELD_NUMBER = 4;
+  @SuppressWarnings("serial")
   private java.util.List blueprints_;
   /**
    * 
@@ -2777,7 +2672,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < blueprints_.size(); i++) {
       output.writeMessage(4, blueprints_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -2800,7 +2695,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(4, blueprints_.get(i));
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -2822,7 +2717,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getDescription())) return false;
     if (!getBlueprintsList()
         .equals(other.getBlueprintsList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -2843,7 +2738,7 @@ public int hashCode() {
       hash = (37 * hash) + BLUEPRINTS_FIELD_NUMBER;
       hash = (53 * hash) + getBlueprintsList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -2960,35 +2855,28 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.Test.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-        getBlueprintsFieldBuilder();
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       expectationLevel_ = 0;
-
       description_ = "";
-
       if (blueprintsBuilder_ == null) {
         blueprints_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
       } else {
+        blueprints_ = null;
         blueprintsBuilder_.clear();
       }
+      bitField0_ = (bitField0_ & ~0x00000008);
       return this;
     }
 
@@ -3015,21 +2903,35 @@ public com.google.showcase.v1beta1.Test build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.Test buildPartial() {
       com.google.showcase.v1beta1.Test result = new com.google.showcase.v1beta1.Test(this);
-      int from_bitField0_ = bitField0_;
-      result.name_ = name_;
-      result.expectationLevel_ = expectationLevel_;
-      result.description_ = description_;
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.Test result) {
       if (blueprintsBuilder_ == null) {
-        if (((bitField0_ & 0x00000001) != 0)) {
+        if (((bitField0_ & 0x00000008) != 0)) {
           blueprints_ = java.util.Collections.unmodifiableList(blueprints_);
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000008);
         }
         result.blueprints_ = blueprints_;
       } else {
         result.blueprints_ = blueprintsBuilder_.build();
       }
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.Test result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.expectationLevel_ = expectationLevel_;
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.description_ = description_;
+      }
     }
 
     @java.lang.Override
@@ -3078,6 +2980,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Test other) {
       if (other == com.google.showcase.v1beta1.Test.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.expectationLevel_ != 0) {
@@ -3085,13 +2988,14 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Test other) {
       }
       if (!other.getDescription().isEmpty()) {
         description_ = other.description_;
+        bitField0_ |= 0x00000004;
         onChanged();
       }
       if (blueprintsBuilder_ == null) {
         if (!other.blueprints_.isEmpty()) {
           if (blueprints_.isEmpty()) {
             blueprints_ = other.blueprints_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000008);
           } else {
             ensureBlueprintsIsMutable();
             blueprints_.addAll(other.blueprints_);
@@ -3104,7 +3008,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Test other) {
             blueprintsBuilder_.dispose();
             blueprintsBuilder_ = null;
             blueprints_ = other.blueprints_;
-            bitField0_ = (bitField0_ & ~0x00000001);
+            bitField0_ = (bitField0_ & ~0x00000008);
             blueprintsBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                  getBlueprintsFieldBuilder() : null;
@@ -3113,7 +3017,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.Test other) {
           }
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -3128,17 +3032,58 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.Test parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 16: {
+              expectationLevel_ = input.readEnum();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 16
+            case 26: {
+              description_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 26
+            case 34: {
+              com.google.showcase.v1beta1.Test.Blueprint m =
+                  input.readMessage(
+                      com.google.showcase.v1beta1.Test.Blueprint.parser(),
+                      extensionRegistry);
+              if (blueprintsBuilder_ == null) {
+                ensureBlueprintsIsMutable();
+                blueprints_.add(m);
+              } else {
+                blueprintsBuilder_.addMessage(m);
+              }
+              break;
+            } // case 34
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.Test) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -3202,11 +3147,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -3221,8 +3164,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -3239,12 +3182,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -3271,8 +3212,8 @@ public Builder setNameBytes(
      * @return This builder for chaining.
      */
     public Builder setExpectationLevelValue(int value) {
-      
       expectationLevel_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -3286,8 +3227,7 @@ public Builder setExpectationLevelValue(int value) {
      */
     @java.lang.Override
     public com.google.showcase.v1beta1.Test.ExpectationLevel getExpectationLevel() {
-      @SuppressWarnings("deprecation")
-      com.google.showcase.v1beta1.Test.ExpectationLevel result = com.google.showcase.v1beta1.Test.ExpectationLevel.valueOf(expectationLevel_);
+      com.google.showcase.v1beta1.Test.ExpectationLevel result = com.google.showcase.v1beta1.Test.ExpectationLevel.forNumber(expectationLevel_);
       return result == null ? com.google.showcase.v1beta1.Test.ExpectationLevel.UNRECOGNIZED : result;
     }
     /**
@@ -3303,7 +3243,7 @@ public Builder setExpectationLevel(com.google.showcase.v1beta1.Test.ExpectationL
       if (value == null) {
         throw new NullPointerException();
       }
-      
+      bitField0_ |= 0x00000002;
       expectationLevel_ = value.getNumber();
       onChanged();
       return this;
@@ -3317,7 +3257,7 @@ public Builder setExpectationLevel(com.google.showcase.v1beta1.Test.ExpectationL
      * @return This builder for chaining.
      */
     public Builder clearExpectationLevel() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       expectationLevel_ = 0;
       onChanged();
       return this;
@@ -3376,11 +3316,9 @@ public java.lang.String getDescription() {
      */
     public Builder setDescription(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       description_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -3393,8 +3331,8 @@ public Builder setDescription(
      * @return This builder for chaining.
      */
     public Builder clearDescription() {
-      
       description_ = getDefaultInstance().getDescription();
+      bitField0_ = (bitField0_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -3409,12 +3347,10 @@ public Builder clearDescription() {
      */
     public Builder setDescriptionBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       description_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -3422,9 +3358,9 @@ public Builder setDescriptionBytes(
     private java.util.List blueprints_ =
       java.util.Collections.emptyList();
     private void ensureBlueprintsIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000008) != 0)) {
         blueprints_ = new java.util.ArrayList(blueprints_);
-        bitField0_ |= 0x00000001;
+        bitField0_ |= 0x00000008;
        }
     }
 
@@ -3651,7 +3587,7 @@ public Builder addAllBlueprints(
     public Builder clearBlueprints() {
       if (blueprintsBuilder_ == null) {
         blueprints_ = java.util.Collections.emptyList();
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000008);
         onChanged();
       } else {
         blueprintsBuilder_.clear();
@@ -3777,7 +3713,7 @@ public com.google.showcase.v1beta1.Test.Blueprint.Builder addBlueprintsBuilder(
         blueprintsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
             com.google.showcase.v1beta1.Test.Blueprint, com.google.showcase.v1beta1.Test.Blueprint.Builder, com.google.showcase.v1beta1.Test.BlueprintOrBuilder>(
                 blueprints_,
-                ((bitField0_ & 0x00000001) != 0),
+                ((bitField0_ & 0x00000008) != 0),
                 getParentForChildren(),
                 isClean());
         blueprints_ = null;
@@ -3817,7 +3753,18 @@ public Test parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new Test(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/TestRun.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/TestRun.java
index f83126f72c..be4f7a4af2 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/TestRun.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/TestRun.java
@@ -35,64 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private TestRun(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            test_ = s;
-            break;
-          }
-          case 18: {
-            com.google.showcase.v1beta1.Issue.Builder subBuilder = null;
-            if (issue_ != null) {
-              subBuilder = issue_.toBuilder();
-            }
-            issue_ = input.readMessage(com.google.showcase.v1beta1.Issue.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(issue_);
-              issue_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_TestRun_descriptor;
@@ -107,7 +49,8 @@ private TestRun(
   }
 
   public static final int TEST_FIELD_NUMBER = 1;
-  private volatile java.lang.Object test_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object test_ = "";
   /**
    * 
    * The name of the test.
@@ -191,7 +134,7 @@ public com.google.showcase.v1beta1.Issue getIssue() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.IssueOrBuilder getIssueOrBuilder() {
-    return getIssue();
+    return issue_ == null ? com.google.showcase.v1beta1.Issue.getDefaultInstance() : issue_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -214,7 +157,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (issue_ != null) {
       output.writeMessage(2, getIssue());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -230,7 +173,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, getIssue());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -252,7 +195,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getIssue()
           .equals(other.getIssue())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -269,7 +212,7 @@ public int hashCode() {
       hash = (37 * hash) + ISSUE_FIELD_NUMBER;
       hash = (53 * hash) + getIssue().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -390,28 +333,22 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.TestRun.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       test_ = "";
-
-      if (issueBuilder_ == null) {
-        issue_ = null;
-      } else {
-        issue_ = null;
+      issue_ = null;
+      if (issueBuilder_ != null) {
+        issueBuilder_.dispose();
         issueBuilder_ = null;
       }
       return this;
@@ -440,16 +377,23 @@ public com.google.showcase.v1beta1.TestRun build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.TestRun buildPartial() {
       com.google.showcase.v1beta1.TestRun result = new com.google.showcase.v1beta1.TestRun(this);
-      result.test_ = test_;
-      if (issueBuilder_ == null) {
-        result.issue_ = issue_;
-      } else {
-        result.issue_ = issueBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.TestRun result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.test_ = test_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.issue_ = issueBuilder_ == null
+            ? issue_
+            : issueBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -496,12 +440,13 @@ public Builder mergeFrom(com.google.showcase.v1beta1.TestRun other) {
       if (other == com.google.showcase.v1beta1.TestRun.getDefaultInstance()) return this;
       if (!other.getTest().isEmpty()) {
         test_ = other.test_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.hasIssue()) {
         mergeIssue(other.getIssue());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -516,19 +461,45 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.TestRun parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              test_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getIssueFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.TestRun) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object test_ = "";
     /**
@@ -589,11 +560,9 @@ public java.lang.String getTest() {
      */
     public Builder setTest(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       test_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -608,8 +577,8 @@ public Builder setTest(
      * @return This builder for chaining.
      */
     public Builder clearTest() {
-      
       test_ = getDefaultInstance().getTest();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -626,12 +595,10 @@ public Builder clearTest() {
      */
     public Builder setTestBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       test_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -648,7 +615,7 @@ public Builder setTestBytes(
      * @return Whether the issue field is set.
      */
     public boolean hasIssue() {
-      return issueBuilder_ != null || issue_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -678,11 +645,11 @@ public Builder setIssue(com.google.showcase.v1beta1.Issue value) {
           throw new NullPointerException();
         }
         issue_ = value;
-        onChanged();
       } else {
         issueBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -696,11 +663,11 @@ public Builder setIssue(
         com.google.showcase.v1beta1.Issue.Builder builderForValue) {
       if (issueBuilder_ == null) {
         issue_ = builderForValue.build();
-        onChanged();
       } else {
         issueBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -712,17 +679,18 @@ public Builder setIssue(
      */
     public Builder mergeIssue(com.google.showcase.v1beta1.Issue value) {
       if (issueBuilder_ == null) {
-        if (issue_ != null) {
-          issue_ =
-            com.google.showcase.v1beta1.Issue.newBuilder(issue_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000002) != 0) &&
+          issue_ != null &&
+          issue_ != com.google.showcase.v1beta1.Issue.getDefaultInstance()) {
+          getIssueBuilder().mergeFrom(value);
         } else {
           issue_ = value;
         }
-        onChanged();
       } else {
         issueBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -733,14 +701,13 @@ public Builder mergeIssue(com.google.showcase.v1beta1.Issue value) {
      * .google.showcase.v1beta1.Issue issue = 2;
      */
     public Builder clearIssue() {
-      if (issueBuilder_ == null) {
-        issue_ = null;
-        onChanged();
-      } else {
-        issue_ = null;
+      bitField0_ = (bitField0_ & ~0x00000002);
+      issue_ = null;
+      if (issueBuilder_ != null) {
+        issueBuilder_.dispose();
         issueBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -751,7 +718,7 @@ public Builder clearIssue() {
      * .google.showcase.v1beta1.Issue issue = 2;
      */
     public com.google.showcase.v1beta1.Issue.Builder getIssueBuilder() {
-      
+      bitField0_ |= 0x00000002;
       onChanged();
       return getIssueFieldBuilder().getBuilder();
     }
@@ -823,7 +790,18 @@ public TestRun parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new TestRun(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/UpdateBlurbRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/UpdateBlurbRequest.java
index 3a0e37969d..1836baf1a4 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/UpdateBlurbRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/UpdateBlurbRequest.java
@@ -35,71 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private UpdateBlurbRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.showcase.v1beta1.Blurb.Builder subBuilder = null;
-            if (blurb_ != null) {
-              subBuilder = blurb_.toBuilder();
-            }
-            blurb_ = input.readMessage(com.google.showcase.v1beta1.Blurb.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(blurb_);
-              blurb_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            com.google.protobuf.FieldMask.Builder subBuilder = null;
-            if (updateMask_ != null) {
-              subBuilder = updateMask_.toBuilder();
-            }
-            updateMask_ = input.readMessage(com.google.protobuf.FieldMask.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(updateMask_);
-              updateMask_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_UpdateBlurbRequest_descriptor;
@@ -148,7 +83,7 @@ public com.google.showcase.v1beta1.Blurb getBlurb() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.BlurbOrBuilder getBlurbOrBuilder() {
-    return getBlurb();
+    return blurb_ == null ? com.google.showcase.v1beta1.Blurb.getDefaultInstance() : blurb_;
   }
 
   public static final int UPDATE_MASK_FIELD_NUMBER = 2;
@@ -189,7 +124,7 @@ public com.google.protobuf.FieldMask getUpdateMask() {
    */
   @java.lang.Override
   public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
-    return getUpdateMask();
+    return updateMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : updateMask_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -212,7 +147,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (updateMask_ != null) {
       output.writeMessage(2, getUpdateMask());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -229,7 +164,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, getUpdateMask());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -254,7 +189,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getUpdateMask()
           .equals(other.getUpdateMask())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -273,7 +208,7 @@ public int hashCode() {
       hash = (37 * hash) + UPDATE_MASK_FIELD_NUMBER;
       hash = (53 * hash) + getUpdateMask().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -395,32 +330,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.UpdateBlurbRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (blurbBuilder_ == null) {
-        blurb_ = null;
-      } else {
-        blurb_ = null;
+      bitField0_ = 0;
+      blurb_ = null;
+      if (blurbBuilder_ != null) {
+        blurbBuilder_.dispose();
         blurbBuilder_ = null;
       }
-      if (updateMaskBuilder_ == null) {
-        updateMask_ = null;
-      } else {
-        updateMask_ = null;
+      updateMask_ = null;
+      if (updateMaskBuilder_ != null) {
+        updateMaskBuilder_.dispose();
         updateMaskBuilder_ = null;
       }
       return this;
@@ -449,20 +378,25 @@ public com.google.showcase.v1beta1.UpdateBlurbRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.UpdateBlurbRequest buildPartial() {
       com.google.showcase.v1beta1.UpdateBlurbRequest result = new com.google.showcase.v1beta1.UpdateBlurbRequest(this);
-      if (blurbBuilder_ == null) {
-        result.blurb_ = blurb_;
-      } else {
-        result.blurb_ = blurbBuilder_.build();
-      }
-      if (updateMaskBuilder_ == null) {
-        result.updateMask_ = updateMask_;
-      } else {
-        result.updateMask_ = updateMaskBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.UpdateBlurbRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.blurb_ = blurbBuilder_ == null
+            ? blurb_
+            : blurbBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.updateMask_ = updateMaskBuilder_ == null
+            ? updateMask_
+            : updateMaskBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -513,7 +447,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.UpdateBlurbRequest other) {
       if (other.hasUpdateMask()) {
         mergeUpdateMask(other.getUpdateMask());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -528,19 +462,47 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.UpdateBlurbRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getBlurbFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getUpdateMaskFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.UpdateBlurbRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.showcase.v1beta1.Blurb blurb_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -554,7 +516,7 @@ public Builder mergeFrom(
      * @return Whether the blurb field is set.
      */
     public boolean hasBlurb() {
-      return blurbBuilder_ != null || blurb_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -584,11 +546,11 @@ public Builder setBlurb(com.google.showcase.v1beta1.Blurb value) {
           throw new NullPointerException();
         }
         blurb_ = value;
-        onChanged();
       } else {
         blurbBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -602,11 +564,11 @@ public Builder setBlurb(
         com.google.showcase.v1beta1.Blurb.Builder builderForValue) {
       if (blurbBuilder_ == null) {
         blurb_ = builderForValue.build();
-        onChanged();
       } else {
         blurbBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -618,17 +580,18 @@ public Builder setBlurb(
      */
     public Builder mergeBlurb(com.google.showcase.v1beta1.Blurb value) {
       if (blurbBuilder_ == null) {
-        if (blurb_ != null) {
-          blurb_ =
-            com.google.showcase.v1beta1.Blurb.newBuilder(blurb_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          blurb_ != null &&
+          blurb_ != com.google.showcase.v1beta1.Blurb.getDefaultInstance()) {
+          getBlurbBuilder().mergeFrom(value);
         } else {
           blurb_ = value;
         }
-        onChanged();
       } else {
         blurbBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -639,14 +602,13 @@ public Builder mergeBlurb(com.google.showcase.v1beta1.Blurb value) {
      * .google.showcase.v1beta1.Blurb blurb = 1;
      */
     public Builder clearBlurb() {
-      if (blurbBuilder_ == null) {
-        blurb_ = null;
-        onChanged();
-      } else {
-        blurb_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      blurb_ = null;
+      if (blurbBuilder_ != null) {
+        blurbBuilder_.dispose();
         blurbBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -657,7 +619,7 @@ public Builder clearBlurb() {
      * .google.showcase.v1beta1.Blurb blurb = 1;
      */
     public com.google.showcase.v1beta1.Blurb.Builder getBlurbBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getBlurbFieldBuilder().getBuilder();
     }
@@ -710,7 +672,7 @@ public com.google.showcase.v1beta1.BlurbOrBuilder getBlurbOrBuilder() {
      * @return Whether the updateMask field is set.
      */
     public boolean hasUpdateMask() {
-      return updateMaskBuilder_ != null || updateMask_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -742,11 +704,11 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) {
           throw new NullPointerException();
         }
         updateMask_ = value;
-        onChanged();
       } else {
         updateMaskBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -761,11 +723,11 @@ public Builder setUpdateMask(
         com.google.protobuf.FieldMask.Builder builderForValue) {
       if (updateMaskBuilder_ == null) {
         updateMask_ = builderForValue.build();
-        onChanged();
       } else {
         updateMaskBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -778,17 +740,18 @@ public Builder setUpdateMask(
      */
     public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
       if (updateMaskBuilder_ == null) {
-        if (updateMask_ != null) {
-          updateMask_ =
-            com.google.protobuf.FieldMask.newBuilder(updateMask_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000002) != 0) &&
+          updateMask_ != null &&
+          updateMask_ != com.google.protobuf.FieldMask.getDefaultInstance()) {
+          getUpdateMaskBuilder().mergeFrom(value);
         } else {
           updateMask_ = value;
         }
-        onChanged();
       } else {
         updateMaskBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -800,14 +763,13 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
      * .google.protobuf.FieldMask update_mask = 2;
      */
     public Builder clearUpdateMask() {
-      if (updateMaskBuilder_ == null) {
-        updateMask_ = null;
-        onChanged();
-      } else {
-        updateMask_ = null;
+      bitField0_ = (bitField0_ & ~0x00000002);
+      updateMask_ = null;
+      if (updateMaskBuilder_ != null) {
+        updateMaskBuilder_.dispose();
         updateMaskBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -819,7 +781,7 @@ public Builder clearUpdateMask() {
      * .google.protobuf.FieldMask update_mask = 2;
      */
     public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() {
-      
+      bitField0_ |= 0x00000002;
       onChanged();
       return getUpdateMaskFieldBuilder().getBuilder();
     }
@@ -893,7 +855,18 @@ public UpdateBlurbRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new UpdateBlurbRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/UpdateRoomRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/UpdateRoomRequest.java
index d3defe92cd..1fdf515410 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/UpdateRoomRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/UpdateRoomRequest.java
@@ -35,71 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private UpdateRoomRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.showcase.v1beta1.Room.Builder subBuilder = null;
-            if (room_ != null) {
-              subBuilder = room_.toBuilder();
-            }
-            room_ = input.readMessage(com.google.showcase.v1beta1.Room.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(room_);
-              room_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            com.google.protobuf.FieldMask.Builder subBuilder = null;
-            if (updateMask_ != null) {
-              subBuilder = updateMask_.toBuilder();
-            }
-            updateMask_ = input.readMessage(com.google.protobuf.FieldMask.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(updateMask_);
-              updateMask_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.MessagingOuterClass.internal_static_google_showcase_v1beta1_UpdateRoomRequest_descriptor;
@@ -148,7 +83,7 @@ public com.google.showcase.v1beta1.Room getRoom() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.RoomOrBuilder getRoomOrBuilder() {
-    return getRoom();
+    return room_ == null ? com.google.showcase.v1beta1.Room.getDefaultInstance() : room_;
   }
 
   public static final int UPDATE_MASK_FIELD_NUMBER = 2;
@@ -189,7 +124,7 @@ public com.google.protobuf.FieldMask getUpdateMask() {
    */
   @java.lang.Override
   public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
-    return getUpdateMask();
+    return updateMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : updateMask_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -212,7 +147,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (updateMask_ != null) {
       output.writeMessage(2, getUpdateMask());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -229,7 +164,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, getUpdateMask());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -254,7 +189,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getUpdateMask()
           .equals(other.getUpdateMask())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -273,7 +208,7 @@ public int hashCode() {
       hash = (37 * hash) + UPDATE_MASK_FIELD_NUMBER;
       hash = (53 * hash) + getUpdateMask().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -395,32 +330,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.UpdateRoomRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (roomBuilder_ == null) {
-        room_ = null;
-      } else {
-        room_ = null;
+      bitField0_ = 0;
+      room_ = null;
+      if (roomBuilder_ != null) {
+        roomBuilder_.dispose();
         roomBuilder_ = null;
       }
-      if (updateMaskBuilder_ == null) {
-        updateMask_ = null;
-      } else {
-        updateMask_ = null;
+      updateMask_ = null;
+      if (updateMaskBuilder_ != null) {
+        updateMaskBuilder_.dispose();
         updateMaskBuilder_ = null;
       }
       return this;
@@ -449,20 +378,25 @@ public com.google.showcase.v1beta1.UpdateRoomRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.UpdateRoomRequest buildPartial() {
       com.google.showcase.v1beta1.UpdateRoomRequest result = new com.google.showcase.v1beta1.UpdateRoomRequest(this);
-      if (roomBuilder_ == null) {
-        result.room_ = room_;
-      } else {
-        result.room_ = roomBuilder_.build();
-      }
-      if (updateMaskBuilder_ == null) {
-        result.updateMask_ = updateMask_;
-      } else {
-        result.updateMask_ = updateMaskBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.UpdateRoomRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.room_ = roomBuilder_ == null
+            ? room_
+            : roomBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.updateMask_ = updateMaskBuilder_ == null
+            ? updateMask_
+            : updateMaskBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -513,7 +447,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.UpdateRoomRequest other) {
       if (other.hasUpdateMask()) {
         mergeUpdateMask(other.getUpdateMask());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -528,19 +462,47 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.UpdateRoomRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getRoomFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getUpdateMaskFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.UpdateRoomRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.showcase.v1beta1.Room room_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -554,7 +516,7 @@ public Builder mergeFrom(
      * @return Whether the room field is set.
      */
     public boolean hasRoom() {
-      return roomBuilder_ != null || room_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -584,11 +546,11 @@ public Builder setRoom(com.google.showcase.v1beta1.Room value) {
           throw new NullPointerException();
         }
         room_ = value;
-        onChanged();
       } else {
         roomBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -602,11 +564,11 @@ public Builder setRoom(
         com.google.showcase.v1beta1.Room.Builder builderForValue) {
       if (roomBuilder_ == null) {
         room_ = builderForValue.build();
-        onChanged();
       } else {
         roomBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -618,17 +580,18 @@ public Builder setRoom(
      */
     public Builder mergeRoom(com.google.showcase.v1beta1.Room value) {
       if (roomBuilder_ == null) {
-        if (room_ != null) {
-          room_ =
-            com.google.showcase.v1beta1.Room.newBuilder(room_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          room_ != null &&
+          room_ != com.google.showcase.v1beta1.Room.getDefaultInstance()) {
+          getRoomBuilder().mergeFrom(value);
         } else {
           room_ = value;
         }
-        onChanged();
       } else {
         roomBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -639,14 +602,13 @@ public Builder mergeRoom(com.google.showcase.v1beta1.Room value) {
      * .google.showcase.v1beta1.Room room = 1;
      */
     public Builder clearRoom() {
-      if (roomBuilder_ == null) {
-        room_ = null;
-        onChanged();
-      } else {
-        room_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      room_ = null;
+      if (roomBuilder_ != null) {
+        roomBuilder_.dispose();
         roomBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -657,7 +619,7 @@ public Builder clearRoom() {
      * .google.showcase.v1beta1.Room room = 1;
      */
     public com.google.showcase.v1beta1.Room.Builder getRoomBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getRoomFieldBuilder().getBuilder();
     }
@@ -710,7 +672,7 @@ public com.google.showcase.v1beta1.RoomOrBuilder getRoomOrBuilder() {
      * @return Whether the updateMask field is set.
      */
     public boolean hasUpdateMask() {
-      return updateMaskBuilder_ != null || updateMask_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -742,11 +704,11 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) {
           throw new NullPointerException();
         }
         updateMask_ = value;
-        onChanged();
       } else {
         updateMaskBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -761,11 +723,11 @@ public Builder setUpdateMask(
         com.google.protobuf.FieldMask.Builder builderForValue) {
       if (updateMaskBuilder_ == null) {
         updateMask_ = builderForValue.build();
-        onChanged();
       } else {
         updateMaskBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -778,17 +740,18 @@ public Builder setUpdateMask(
      */
     public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
       if (updateMaskBuilder_ == null) {
-        if (updateMask_ != null) {
-          updateMask_ =
-            com.google.protobuf.FieldMask.newBuilder(updateMask_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000002) != 0) &&
+          updateMask_ != null &&
+          updateMask_ != com.google.protobuf.FieldMask.getDefaultInstance()) {
+          getUpdateMaskBuilder().mergeFrom(value);
         } else {
           updateMask_ = value;
         }
-        onChanged();
       } else {
         updateMaskBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -800,14 +763,13 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
      * .google.protobuf.FieldMask update_mask = 2;
      */
     public Builder clearUpdateMask() {
-      if (updateMaskBuilder_ == null) {
-        updateMask_ = null;
-        onChanged();
-      } else {
-        updateMask_ = null;
+      bitField0_ = (bitField0_ & ~0x00000002);
+      updateMask_ = null;
+      if (updateMaskBuilder_ != null) {
+        updateMaskBuilder_.dispose();
         updateMaskBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -819,7 +781,7 @@ public Builder clearUpdateMask() {
      * .google.protobuf.FieldMask update_mask = 2;
      */
     public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() {
-      
+      bitField0_ |= 0x00000002;
       onChanged();
       return getUpdateMaskFieldBuilder().getBuilder();
     }
@@ -893,7 +855,18 @@ public UpdateRoomRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new UpdateRoomRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/UpdateUserRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/UpdateUserRequest.java
index 68d8b179a1..81d5c7b720 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/UpdateUserRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/UpdateUserRequest.java
@@ -35,71 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private UpdateUserRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.showcase.v1beta1.User.Builder subBuilder = null;
-            if (user_ != null) {
-              subBuilder = user_.toBuilder();
-            }
-            user_ = input.readMessage(com.google.showcase.v1beta1.User.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(user_);
-              user_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 18: {
-            com.google.protobuf.FieldMask.Builder subBuilder = null;
-            if (updateMask_ != null) {
-              subBuilder = updateMask_.toBuilder();
-            }
-            updateMask_ = input.readMessage(com.google.protobuf.FieldMask.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(updateMask_);
-              updateMask_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.IdentityOuterClass.internal_static_google_showcase_v1beta1_UpdateUserRequest_descriptor;
@@ -148,7 +83,7 @@ public com.google.showcase.v1beta1.User getUser() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.UserOrBuilder getUserOrBuilder() {
-    return getUser();
+    return user_ == null ? com.google.showcase.v1beta1.User.getDefaultInstance() : user_;
   }
 
   public static final int UPDATE_MASK_FIELD_NUMBER = 2;
@@ -189,7 +124,7 @@ public com.google.protobuf.FieldMask getUpdateMask() {
    */
   @java.lang.Override
   public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
-    return getUpdateMask();
+    return updateMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : updateMask_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -212,7 +147,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (updateMask_ != null) {
       output.writeMessage(2, getUpdateMask());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -229,7 +164,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, getUpdateMask());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -254,7 +189,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getUpdateMask()
           .equals(other.getUpdateMask())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -273,7 +208,7 @@ public int hashCode() {
       hash = (37 * hash) + UPDATE_MASK_FIELD_NUMBER;
       hash = (53 * hash) + getUpdateMask().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -395,32 +330,26 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.UpdateUserRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (userBuilder_ == null) {
-        user_ = null;
-      } else {
-        user_ = null;
+      bitField0_ = 0;
+      user_ = null;
+      if (userBuilder_ != null) {
+        userBuilder_.dispose();
         userBuilder_ = null;
       }
-      if (updateMaskBuilder_ == null) {
-        updateMask_ = null;
-      } else {
-        updateMask_ = null;
+      updateMask_ = null;
+      if (updateMaskBuilder_ != null) {
+        updateMaskBuilder_.dispose();
         updateMaskBuilder_ = null;
       }
       return this;
@@ -449,20 +378,25 @@ public com.google.showcase.v1beta1.UpdateUserRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.UpdateUserRequest buildPartial() {
       com.google.showcase.v1beta1.UpdateUserRequest result = new com.google.showcase.v1beta1.UpdateUserRequest(this);
-      if (userBuilder_ == null) {
-        result.user_ = user_;
-      } else {
-        result.user_ = userBuilder_.build();
-      }
-      if (updateMaskBuilder_ == null) {
-        result.updateMask_ = updateMask_;
-      } else {
-        result.updateMask_ = updateMaskBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.UpdateUserRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.user_ = userBuilder_ == null
+            ? user_
+            : userBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.updateMask_ = updateMaskBuilder_ == null
+            ? updateMask_
+            : updateMaskBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -513,7 +447,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.UpdateUserRequest other) {
       if (other.hasUpdateMask()) {
         mergeUpdateMask(other.getUpdateMask());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -528,19 +462,47 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.UpdateUserRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getUserFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getUpdateMaskFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.UpdateUserRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.showcase.v1beta1.User user_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -554,7 +516,7 @@ public Builder mergeFrom(
      * @return Whether the user field is set.
      */
     public boolean hasUser() {
-      return userBuilder_ != null || user_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -584,11 +546,11 @@ public Builder setUser(com.google.showcase.v1beta1.User value) {
           throw new NullPointerException();
         }
         user_ = value;
-        onChanged();
       } else {
         userBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -602,11 +564,11 @@ public Builder setUser(
         com.google.showcase.v1beta1.User.Builder builderForValue) {
       if (userBuilder_ == null) {
         user_ = builderForValue.build();
-        onChanged();
       } else {
         userBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -618,17 +580,18 @@ public Builder setUser(
      */
     public Builder mergeUser(com.google.showcase.v1beta1.User value) {
       if (userBuilder_ == null) {
-        if (user_ != null) {
-          user_ =
-            com.google.showcase.v1beta1.User.newBuilder(user_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          user_ != null &&
+          user_ != com.google.showcase.v1beta1.User.getDefaultInstance()) {
+          getUserBuilder().mergeFrom(value);
         } else {
           user_ = value;
         }
-        onChanged();
       } else {
         userBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -639,14 +602,13 @@ public Builder mergeUser(com.google.showcase.v1beta1.User value) {
      * .google.showcase.v1beta1.User user = 1;
      */
     public Builder clearUser() {
-      if (userBuilder_ == null) {
-        user_ = null;
-        onChanged();
-      } else {
-        user_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      user_ = null;
+      if (userBuilder_ != null) {
+        userBuilder_.dispose();
         userBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -657,7 +619,7 @@ public Builder clearUser() {
      * .google.showcase.v1beta1.User user = 1;
      */
     public com.google.showcase.v1beta1.User.Builder getUserBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getUserFieldBuilder().getBuilder();
     }
@@ -710,7 +672,7 @@ public com.google.showcase.v1beta1.UserOrBuilder getUserOrBuilder() {
      * @return Whether the updateMask field is set.
      */
     public boolean hasUpdateMask() {
-      return updateMaskBuilder_ != null || updateMask_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      * 
@@ -742,11 +704,11 @@ public Builder setUpdateMask(com.google.protobuf.FieldMask value) {
           throw new NullPointerException();
         }
         updateMask_ = value;
-        onChanged();
       } else {
         updateMaskBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -761,11 +723,11 @@ public Builder setUpdateMask(
         com.google.protobuf.FieldMask.Builder builderForValue) {
       if (updateMaskBuilder_ == null) {
         updateMask_ = builderForValue.build();
-        onChanged();
       } else {
         updateMaskBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -778,17 +740,18 @@ public Builder setUpdateMask(
      */
     public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
       if (updateMaskBuilder_ == null) {
-        if (updateMask_ != null) {
-          updateMask_ =
-            com.google.protobuf.FieldMask.newBuilder(updateMask_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000002) != 0) &&
+          updateMask_ != null &&
+          updateMask_ != com.google.protobuf.FieldMask.getDefaultInstance()) {
+          getUpdateMaskBuilder().mergeFrom(value);
         } else {
           updateMask_ = value;
         }
-        onChanged();
       } else {
         updateMaskBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000002;
+      onChanged();
       return this;
     }
     /**
@@ -800,14 +763,13 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
      * .google.protobuf.FieldMask update_mask = 2;
      */
     public Builder clearUpdateMask() {
-      if (updateMaskBuilder_ == null) {
-        updateMask_ = null;
-        onChanged();
-      } else {
-        updateMask_ = null;
+      bitField0_ = (bitField0_ & ~0x00000002);
+      updateMask_ = null;
+      if (updateMaskBuilder_ != null) {
+        updateMaskBuilder_.dispose();
         updateMaskBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -819,7 +781,7 @@ public Builder clearUpdateMask() {
      * .google.protobuf.FieldMask update_mask = 2;
      */
     public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() {
-      
+      bitField0_ |= 0x00000002;
       onChanged();
       return getUpdateMaskFieldBuilder().getBuilder();
     }
@@ -893,7 +855,18 @@ public UpdateUserRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new UpdateUserRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/User.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/User.java
index 5eb29fdbbb..225f7a2fac 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/User.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/User.java
@@ -38,111 +38,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private User(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            displayName_ = s;
-            break;
-          }
-          case 26: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            email_ = s;
-            break;
-          }
-          case 34: {
-            com.google.protobuf.Timestamp.Builder subBuilder = null;
-            if (createTime_ != null) {
-              subBuilder = createTime_.toBuilder();
-            }
-            createTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(createTime_);
-              createTime_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 42: {
-            com.google.protobuf.Timestamp.Builder subBuilder = null;
-            if (updateTime_ != null) {
-              subBuilder = updateTime_.toBuilder();
-            }
-            updateTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(updateTime_);
-              updateTime_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          case 48: {
-            bitField0_ |= 0x00000001;
-            age_ = input.readInt32();
-            break;
-          }
-          case 57: {
-            bitField0_ |= 0x00000002;
-            heightFeet_ = input.readDouble();
-            break;
-          }
-          case 66: {
-            java.lang.String s = input.readStringRequireUtf8();
-            bitField0_ |= 0x00000004;
-            nickname_ = s;
-            break;
-          }
-          case 72: {
-            bitField0_ |= 0x00000008;
-            enableNotifications_ = input.readBool();
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.IdentityOuterClass.internal_static_google_showcase_v1beta1_User_descriptor;
@@ -158,7 +53,8 @@ private User(
 
   private int bitField0_;
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The resource name of the user.
@@ -204,7 +100,8 @@ public java.lang.String getName() {
   }
 
   public static final int DISPLAY_NAME_FIELD_NUMBER = 2;
-  private volatile java.lang.Object displayName_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object displayName_ = "";
   /**
    * 
    * The display_name of the user.
@@ -250,7 +147,8 @@ public java.lang.String getDisplayName() {
   }
 
   public static final int EMAIL_FIELD_NUMBER = 3;
-  private volatile java.lang.Object email_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object email_ = "";
   /**
    * 
    * The email address of the user.
@@ -330,7 +228,7 @@ public com.google.protobuf.Timestamp getCreateTime() {
    */
   @java.lang.Override
   public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
-    return getCreateTime();
+    return createTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : createTime_;
   }
 
   public static final int UPDATE_TIME_FIELD_NUMBER = 5;
@@ -368,11 +266,11 @@ public com.google.protobuf.Timestamp getUpdateTime() {
    */
   @java.lang.Override
   public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
-    return getUpdateTime();
+    return updateTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : updateTime_;
   }
 
   public static final int AGE_FIELD_NUMBER = 6;
-  private int age_;
+  private int age_ = 0;
   /**
    * 
    * The age of the user in years.
@@ -399,7 +297,7 @@ public int getAge() {
   }
 
   public static final int HEIGHT_FEET_FIELD_NUMBER = 7;
-  private double heightFeet_;
+  private double heightFeet_ = 0D;
   /**
    * 
    * The height of the user in feet.
@@ -426,7 +324,8 @@ public double getHeightFeet() {
   }
 
   public static final int NICKNAME_FIELD_NUMBER = 8;
-  private volatile java.lang.Object nickname_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object nickname_ = "";
   /**
    * 
    * The nickname of the user.
@@ -490,7 +389,7 @@ public java.lang.String getNickname() {
   }
 
   public static final int ENABLE_NOTIFICATIONS_FIELD_NUMBER = 9;
-  private boolean enableNotifications_;
+  private boolean enableNotifications_ = false;
   /**
    * 
    * Enables the receiving of notifications. The default is true if unset.
@@ -561,7 +460,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (((bitField0_ & 0x00000008) != 0)) {
       output.writeBool(9, enableNotifications_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -602,7 +501,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeBoolSize(9, enableNotifications_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -654,7 +553,7 @@ public boolean equals(final java.lang.Object obj) {
       if (getEnableNotifications()
           != other.getEnableNotifications()) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -697,7 +596,7 @@ public int hashCode() {
       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
           getEnableNotifications());
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -818,48 +717,35 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.User.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       displayName_ = "";
-
       email_ = "";
-
-      if (createTimeBuilder_ == null) {
-        createTime_ = null;
-      } else {
-        createTime_ = null;
+      createTime_ = null;
+      if (createTimeBuilder_ != null) {
+        createTimeBuilder_.dispose();
         createTimeBuilder_ = null;
       }
-      if (updateTimeBuilder_ == null) {
-        updateTime_ = null;
-      } else {
-        updateTime_ = null;
+      updateTime_ = null;
+      if (updateTimeBuilder_ != null) {
+        updateTimeBuilder_.dispose();
         updateTimeBuilder_ = null;
       }
       age_ = 0;
-      bitField0_ = (bitField0_ & ~0x00000001);
       heightFeet_ = 0D;
-      bitField0_ = (bitField0_ & ~0x00000002);
       nickname_ = "";
-      bitField0_ = (bitField0_ & ~0x00000004);
       enableNotifications_ = false;
-      bitField0_ = (bitField0_ & ~0x00000008);
       return this;
     }
 
@@ -886,40 +772,50 @@ public com.google.showcase.v1beta1.User build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.User buildPartial() {
       com.google.showcase.v1beta1.User result = new com.google.showcase.v1beta1.User(this);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.User result) {
       int from_bitField0_ = bitField0_;
-      int to_bitField0_ = 0;
-      result.name_ = name_;
-      result.displayName_ = displayName_;
-      result.email_ = email_;
-      if (createTimeBuilder_ == null) {
-        result.createTime_ = createTime_;
-      } else {
-        result.createTime_ = createTimeBuilder_.build();
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
       }
-      if (updateTimeBuilder_ == null) {
-        result.updateTime_ = updateTime_;
-      } else {
-        result.updateTime_ = updateTimeBuilder_.build();
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.displayName_ = displayName_;
       }
-      if (((from_bitField0_ & 0x00000001) != 0)) {
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.email_ = email_;
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.createTime_ = createTimeBuilder_ == null
+            ? createTime_
+            : createTimeBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.updateTime_ = updateTimeBuilder_ == null
+            ? updateTime_
+            : updateTimeBuilder_.build();
+      }
+      int to_bitField0_ = 0;
+      if (((from_bitField0_ & 0x00000020) != 0)) {
         result.age_ = age_;
         to_bitField0_ |= 0x00000001;
       }
-      if (((from_bitField0_ & 0x00000002) != 0)) {
+      if (((from_bitField0_ & 0x00000040) != 0)) {
         result.heightFeet_ = heightFeet_;
         to_bitField0_ |= 0x00000002;
       }
-      if (((from_bitField0_ & 0x00000004) != 0)) {
+      if (((from_bitField0_ & 0x00000080) != 0)) {
+        result.nickname_ = nickname_;
         to_bitField0_ |= 0x00000004;
       }
-      result.nickname_ = nickname_;
-      if (((from_bitField0_ & 0x00000008) != 0)) {
+      if (((from_bitField0_ & 0x00000100) != 0)) {
         result.enableNotifications_ = enableNotifications_;
         to_bitField0_ |= 0x00000008;
       }
-      result.bitField0_ = to_bitField0_;
-      onBuilt();
-      return result;
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -968,14 +864,17 @@ public Builder mergeFrom(com.google.showcase.v1beta1.User other) {
       if (other == com.google.showcase.v1beta1.User.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (!other.getDisplayName().isEmpty()) {
         displayName_ = other.displayName_;
+        bitField0_ |= 0x00000002;
         onChanged();
       }
       if (!other.getEmail().isEmpty()) {
         email_ = other.email_;
+        bitField0_ |= 0x00000004;
         onChanged();
       }
       if (other.hasCreateTime()) {
@@ -991,14 +890,14 @@ public Builder mergeFrom(com.google.showcase.v1beta1.User other) {
         setHeightFeet(other.getHeightFeet());
       }
       if (other.hasNickname()) {
-        bitField0_ |= 0x00000004;
         nickname_ = other.nickname_;
+        bitField0_ |= 0x00000080;
         onChanged();
       }
       if (other.hasEnableNotifications()) {
         setEnableNotifications(other.getEnableNotifications());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -1013,17 +912,79 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.User parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              displayName_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 26: {
+              email_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000004;
+              break;
+            } // case 26
+            case 34: {
+              input.readMessage(
+                  getCreateTimeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000008;
+              break;
+            } // case 34
+            case 42: {
+              input.readMessage(
+                  getUpdateTimeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000010;
+              break;
+            } // case 42
+            case 48: {
+              age_ = input.readInt32();
+              bitField0_ |= 0x00000020;
+              break;
+            } // case 48
+            case 57: {
+              heightFeet_ = input.readDouble();
+              bitField0_ |= 0x00000040;
+              break;
+            } // case 57
+            case 66: {
+              nickname_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000080;
+              break;
+            } // case 66
+            case 72: {
+              enableNotifications_ = input.readBool();
+              bitField0_ |= 0x00000100;
+              break;
+            } // case 72
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.User) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -1081,11 +1042,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -1098,8 +1057,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -1114,12 +1073,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -1177,11 +1134,9 @@ public java.lang.String getDisplayName() {
      */
     public Builder setDisplayName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       displayName_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1194,8 +1149,8 @@ public Builder setDisplayName(
      * @return This builder for chaining.
      */
     public Builder clearDisplayName() {
-      
       displayName_ = getDefaultInstance().getDisplayName();
+      bitField0_ = (bitField0_ & ~0x00000002);
       onChanged();
       return this;
     }
@@ -1210,12 +1165,10 @@ public Builder clearDisplayName() {
      */
     public Builder setDisplayNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       displayName_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -1273,11 +1226,9 @@ public java.lang.String getEmail() {
      */
     public Builder setEmail(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       email_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1290,8 +1241,8 @@ public Builder setEmail(
      * @return This builder for chaining.
      */
     public Builder clearEmail() {
-      
       email_ = getDefaultInstance().getEmail();
+      bitField0_ = (bitField0_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -1306,12 +1257,10 @@ public Builder clearEmail() {
      */
     public Builder setEmailBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       email_ = value;
+      bitField0_ |= 0x00000004;
       onChanged();
       return this;
     }
@@ -1328,7 +1277,7 @@ public Builder setEmailBytes(
      * @return Whether the createTime field is set.
      */
     public boolean hasCreateTime() {
-      return createTimeBuilder_ != null || createTime_ != null;
+      return ((bitField0_ & 0x00000008) != 0);
     }
     /**
      * 
@@ -1358,11 +1307,11 @@ public Builder setCreateTime(com.google.protobuf.Timestamp value) {
           throw new NullPointerException();
         }
         createTime_ = value;
-        onChanged();
       } else {
         createTimeBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000008;
+      onChanged();
       return this;
     }
     /**
@@ -1376,11 +1325,11 @@ public Builder setCreateTime(
         com.google.protobuf.Timestamp.Builder builderForValue) {
       if (createTimeBuilder_ == null) {
         createTime_ = builderForValue.build();
-        onChanged();
       } else {
         createTimeBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000008;
+      onChanged();
       return this;
     }
     /**
@@ -1392,17 +1341,18 @@ public Builder setCreateTime(
      */
     public Builder mergeCreateTime(com.google.protobuf.Timestamp value) {
       if (createTimeBuilder_ == null) {
-        if (createTime_ != null) {
-          createTime_ =
-            com.google.protobuf.Timestamp.newBuilder(createTime_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000008) != 0) &&
+          createTime_ != null &&
+          createTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+          getCreateTimeBuilder().mergeFrom(value);
         } else {
           createTime_ = value;
         }
-        onChanged();
       } else {
         createTimeBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000008;
+      onChanged();
       return this;
     }
     /**
@@ -1413,14 +1363,13 @@ public Builder mergeCreateTime(com.google.protobuf.Timestamp value) {
      * .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
      */
     public Builder clearCreateTime() {
-      if (createTimeBuilder_ == null) {
-        createTime_ = null;
-        onChanged();
-      } else {
-        createTime_ = null;
+      bitField0_ = (bitField0_ & ~0x00000008);
+      createTime_ = null;
+      if (createTimeBuilder_ != null) {
+        createTimeBuilder_.dispose();
         createTimeBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -1431,7 +1380,7 @@ public Builder clearCreateTime() {
      * .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
      */
     public com.google.protobuf.Timestamp.Builder getCreateTimeBuilder() {
-      
+      bitField0_ |= 0x00000008;
       onChanged();
       return getCreateTimeFieldBuilder().getBuilder();
     }
@@ -1483,7 +1432,7 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
      * @return Whether the updateTime field is set.
      */
     public boolean hasUpdateTime() {
-      return updateTimeBuilder_ != null || updateTime_ != null;
+      return ((bitField0_ & 0x00000010) != 0);
     }
     /**
      * 
@@ -1513,11 +1462,11 @@ public Builder setUpdateTime(com.google.protobuf.Timestamp value) {
           throw new NullPointerException();
         }
         updateTime_ = value;
-        onChanged();
       } else {
         updateTimeBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000010;
+      onChanged();
       return this;
     }
     /**
@@ -1531,11 +1480,11 @@ public Builder setUpdateTime(
         com.google.protobuf.Timestamp.Builder builderForValue) {
       if (updateTimeBuilder_ == null) {
         updateTime_ = builderForValue.build();
-        onChanged();
       } else {
         updateTimeBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000010;
+      onChanged();
       return this;
     }
     /**
@@ -1547,17 +1496,18 @@ public Builder setUpdateTime(
      */
     public Builder mergeUpdateTime(com.google.protobuf.Timestamp value) {
       if (updateTimeBuilder_ == null) {
-        if (updateTime_ != null) {
-          updateTime_ =
-            com.google.protobuf.Timestamp.newBuilder(updateTime_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000010) != 0) &&
+          updateTime_ != null &&
+          updateTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+          getUpdateTimeBuilder().mergeFrom(value);
         } else {
           updateTime_ = value;
         }
-        onChanged();
       } else {
         updateTimeBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000010;
+      onChanged();
       return this;
     }
     /**
@@ -1568,14 +1518,13 @@ public Builder mergeUpdateTime(com.google.protobuf.Timestamp value) {
      * .google.protobuf.Timestamp update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
      */
     public Builder clearUpdateTime() {
-      if (updateTimeBuilder_ == null) {
-        updateTime_ = null;
-        onChanged();
-      } else {
-        updateTime_ = null;
+      bitField0_ = (bitField0_ & ~0x00000010);
+      updateTime_ = null;
+      if (updateTimeBuilder_ != null) {
+        updateTimeBuilder_.dispose();
         updateTimeBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -1586,7 +1535,7 @@ public Builder clearUpdateTime() {
      * .google.protobuf.Timestamp update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
      */
     public com.google.protobuf.Timestamp.Builder getUpdateTimeBuilder() {
-      
+      bitField0_ |= 0x00000010;
       onChanged();
       return getUpdateTimeFieldBuilder().getBuilder();
     }
@@ -1637,7 +1586,7 @@ public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
      */
     @java.lang.Override
     public boolean hasAge() {
-      return ((bitField0_ & 0x00000001) != 0);
+      return ((bitField0_ & 0x00000020) != 0);
     }
     /**
      * 
@@ -1661,8 +1610,9 @@ public int getAge() {
      * @return This builder for chaining.
      */
     public Builder setAge(int value) {
-      bitField0_ |= 0x00000001;
+      
       age_ = value;
+      bitField0_ |= 0x00000020;
       onChanged();
       return this;
     }
@@ -1675,7 +1625,7 @@ public Builder setAge(int value) {
      * @return This builder for chaining.
      */
     public Builder clearAge() {
-      bitField0_ = (bitField0_ & ~0x00000001);
+      bitField0_ = (bitField0_ & ~0x00000020);
       age_ = 0;
       onChanged();
       return this;
@@ -1692,7 +1642,7 @@ public Builder clearAge() {
      */
     @java.lang.Override
     public boolean hasHeightFeet() {
-      return ((bitField0_ & 0x00000002) != 0);
+      return ((bitField0_ & 0x00000040) != 0);
     }
     /**
      * 
@@ -1716,8 +1666,9 @@ public double getHeightFeet() {
      * @return This builder for chaining.
      */
     public Builder setHeightFeet(double value) {
-      bitField0_ |= 0x00000002;
+      
       heightFeet_ = value;
+      bitField0_ |= 0x00000040;
       onChanged();
       return this;
     }
@@ -1730,7 +1681,7 @@ public Builder setHeightFeet(double value) {
      * @return This builder for chaining.
      */
     public Builder clearHeightFeet() {
-      bitField0_ = (bitField0_ & ~0x00000002);
+      bitField0_ = (bitField0_ & ~0x00000040);
       heightFeet_ = 0D;
       onChanged();
       return this;
@@ -1748,7 +1699,7 @@ public Builder clearHeightFeet() {
      * @return Whether the nickname field is set.
      */
     public boolean hasNickname() {
-      return ((bitField0_ & 0x00000004) != 0);
+      return ((bitField0_ & 0x00000080) != 0);
     }
     /**
      * 
@@ -1808,11 +1759,9 @@ public java.lang.String getNickname() {
      */
     public Builder setNickname(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000004;
+      if (value == null) { throw new NullPointerException(); }
       nickname_ = value;
+      bitField0_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -1827,8 +1776,8 @@ public Builder setNickname(
      * @return This builder for chaining.
      */
     public Builder clearNickname() {
-      bitField0_ = (bitField0_ & ~0x00000004);
       nickname_ = getDefaultInstance().getNickname();
+      bitField0_ = (bitField0_ & ~0x00000080);
       onChanged();
       return this;
     }
@@ -1845,12 +1794,10 @@ public Builder clearNickname() {
      */
     public Builder setNicknameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      bitField0_ |= 0x00000004;
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       nickname_ = value;
+      bitField0_ |= 0x00000080;
       onChanged();
       return this;
     }
@@ -1868,7 +1815,7 @@ public Builder setNicknameBytes(
      */
     @java.lang.Override
     public boolean hasEnableNotifications() {
-      return ((bitField0_ & 0x00000008) != 0);
+      return ((bitField0_ & 0x00000100) != 0);
     }
     /**
      * 
@@ -1896,8 +1843,9 @@ public boolean getEnableNotifications() {
      * @return This builder for chaining.
      */
     public Builder setEnableNotifications(boolean value) {
-      bitField0_ |= 0x00000008;
+      
       enableNotifications_ = value;
+      bitField0_ |= 0x00000100;
       onChanged();
       return this;
     }
@@ -1912,7 +1860,7 @@ public Builder setEnableNotifications(boolean value) {
      * @return This builder for chaining.
      */
     public Builder clearEnableNotifications() {
-      bitField0_ = (bitField0_ & ~0x00000008);
+      bitField0_ = (bitField0_ & ~0x00000100);
       enableNotifications_ = false;
       onChanged();
       return this;
@@ -1950,7 +1898,18 @@ public User parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new User(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/VerifyTestRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/VerifyTestRequest.java
index f2dd6332e6..d0687846be 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/VerifyTestRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/VerifyTestRequest.java
@@ -33,68 +33,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private VerifyTestRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    int mutable_bitField0_ = 0;
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            name_ = s;
-            break;
-          }
-          case 18: {
-
-            answer_ = input.readBytes();
-            break;
-          }
-          case 26: {
-            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              answers_ = new java.util.ArrayList();
-              mutable_bitField0_ |= 0x00000001;
-            }
-            answers_.add(input.readBytes());
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        answers_ = java.util.Collections.unmodifiableList(answers_); // C
-      }
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_VerifyTestRequest_descriptor;
@@ -109,7 +47,8 @@ private VerifyTestRequest(
   }
 
   public static final int NAME_FIELD_NUMBER = 1;
-  private volatile java.lang.Object name_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object name_ = "";
   /**
    * 
    * The test to have an answer registered to it.
@@ -155,7 +94,7 @@ public java.lang.String getName() {
   }
 
   public static final int ANSWER_FIELD_NUMBER = 2;
-  private com.google.protobuf.ByteString answer_;
+  private com.google.protobuf.ByteString answer_ = com.google.protobuf.ByteString.EMPTY;
   /**
    * 
    * The answer from the test.
@@ -170,6 +109,7 @@ public com.google.protobuf.ByteString getAnswer() {
   }
 
   public static final int ANSWERS_FIELD_NUMBER = 3;
+  @SuppressWarnings("serial")
   private java.util.List answers_;
   /**
    * 
@@ -231,7 +171,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     for (int i = 0; i < answers_.size(); i++) {
       output.writeBytes(3, answers_.get(i));
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -256,7 +196,7 @@ public int getSerializedSize() {
       size += dataSize;
       size += 1 * getAnswersList().size();
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -277,7 +217,7 @@ public boolean equals(final java.lang.Object obj) {
         .equals(other.getAnswer())) return false;
     if (!getAnswersList()
         .equals(other.getAnswersList())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -296,7 +236,7 @@ public int hashCode() {
       hash = (37 * hash) + ANSWERS_FIELD_NUMBER;
       hash = (53 * hash) + getAnswersList().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -413,28 +353,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.VerifyTestRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       name_ = "";
-
       answer_ = com.google.protobuf.ByteString.EMPTY;
-
       answers_ = java.util.Collections.emptyList();
-      bitField0_ = (bitField0_ & ~0x00000001);
       return this;
     }
 
@@ -461,16 +394,28 @@ public com.google.showcase.v1beta1.VerifyTestRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.VerifyTestRequest buildPartial() {
       com.google.showcase.v1beta1.VerifyTestRequest result = new com.google.showcase.v1beta1.VerifyTestRequest(this);
-      int from_bitField0_ = bitField0_;
-      result.name_ = name_;
-      result.answer_ = answer_;
-      if (((bitField0_ & 0x00000001) != 0)) {
+      buildPartialRepeatedFields(result);
+      if (bitField0_ != 0) { buildPartial0(result); }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartialRepeatedFields(com.google.showcase.v1beta1.VerifyTestRequest result) {
+      if (((bitField0_ & 0x00000004) != 0)) {
         answers_ = java.util.Collections.unmodifiableList(answers_);
-        bitField0_ = (bitField0_ & ~0x00000001);
+        bitField0_ = (bitField0_ & ~0x00000004);
       }
       result.answers_ = answers_;
-      onBuilt();
-      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.VerifyTestRequest result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.name_ = name_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.answer_ = answer_;
+      }
     }
 
     @java.lang.Override
@@ -519,6 +464,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.VerifyTestRequest other) {
       if (other == com.google.showcase.v1beta1.VerifyTestRequest.getDefaultInstance()) return this;
       if (!other.getName().isEmpty()) {
         name_ = other.name_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
       if (other.getAnswer() != com.google.protobuf.ByteString.EMPTY) {
@@ -527,14 +473,14 @@ public Builder mergeFrom(com.google.showcase.v1beta1.VerifyTestRequest other) {
       if (!other.answers_.isEmpty()) {
         if (answers_.isEmpty()) {
           answers_ = other.answers_;
-          bitField0_ = (bitField0_ & ~0x00000001);
+          bitField0_ = (bitField0_ & ~0x00000004);
         } else {
           ensureAnswersIsMutable();
           answers_.addAll(other.answers_);
         }
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -549,17 +495,46 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.VerifyTestRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              name_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            case 18: {
+              answer_ = input.readBytes();
+              bitField0_ |= 0x00000002;
+              break;
+            } // case 18
+            case 26: {
+              com.google.protobuf.ByteString v = input.readBytes();
+              ensureAnswersIsMutable();
+              answers_.add(v);
+              break;
+            } // case 26
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.VerifyTestRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int bitField0_;
@@ -617,11 +592,9 @@ public java.lang.String getName() {
      */
     public Builder setName(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -634,8 +607,8 @@ public Builder setName(
      * @return This builder for chaining.
      */
     public Builder clearName() {
-      
       name_ = getDefaultInstance().getName();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -650,12 +623,10 @@ public Builder clearName() {
      */
     public Builder setNameBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       name_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -683,11 +654,9 @@ public com.google.protobuf.ByteString getAnswer() {
      * @return This builder for chaining.
      */
     public Builder setAnswer(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       answer_ = value;
+      bitField0_ |= 0x00000002;
       onChanged();
       return this;
     }
@@ -700,7 +669,7 @@ public Builder setAnswer(com.google.protobuf.ByteString value) {
      * @return This builder for chaining.
      */
     public Builder clearAnswer() {
-      
+      bitField0_ = (bitField0_ & ~0x00000002);
       answer_ = getDefaultInstance().getAnswer();
       onChanged();
       return this;
@@ -708,10 +677,10 @@ public Builder clearAnswer() {
 
     private java.util.List answers_ = java.util.Collections.emptyList();
     private void ensureAnswersIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
+      if (!((bitField0_ & 0x00000004) != 0)) {
         answers_ = new java.util.ArrayList(answers_);
-        bitField0_ |= 0x00000001;
-       }
+        bitField0_ |= 0x00000004;
+      }
     }
     /**
      * 
@@ -723,7 +692,7 @@ private void ensureAnswersIsMutable() {
      */
     public java.util.List
         getAnswersList() {
-      return ((bitField0_ & 0x00000001) != 0) ?
+      return ((bitField0_ & 0x00000004) != 0) ?
                java.util.Collections.unmodifiableList(answers_) : answers_;
     }
     /**
@@ -761,10 +730,8 @@ public com.google.protobuf.ByteString getAnswers(int index) {
      */
     public Builder setAnswers(
         int index, com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureAnswersIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureAnswersIsMutable();
       answers_.set(index, value);
       onChanged();
       return this;
@@ -779,10 +746,8 @@ public Builder setAnswers(
      * @return This builder for chaining.
      */
     public Builder addAnswers(com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureAnswersIsMutable();
+      if (value == null) { throw new NullPointerException(); }
+      ensureAnswersIsMutable();
       answers_.add(value);
       onChanged();
       return this;
@@ -814,7 +779,7 @@ public Builder addAllAnswers(
      */
     public Builder clearAnswers() {
       answers_ = java.util.Collections.emptyList();
-      bitField0_ = (bitField0_ & ~0x00000001);
+      bitField0_ = (bitField0_ & ~0x00000004);
       onChanged();
       return this;
     }
@@ -851,7 +816,18 @@ public VerifyTestRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new VerifyTestRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/VerifyTestResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/VerifyTestResponse.java
index d32e612271..54b08318fd 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/VerifyTestResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/VerifyTestResponse.java
@@ -30,58 +30,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private VerifyTestResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.showcase.v1beta1.Issue.Builder subBuilder = null;
-            if (issue_ != null) {
-              subBuilder = issue_.toBuilder();
-            }
-            issue_ = input.readMessage(com.google.showcase.v1beta1.Issue.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(issue_);
-              issue_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.TestingOuterClass.internal_static_google_showcase_v1beta1_VerifyTestResponse_descriptor;
@@ -130,7 +78,7 @@ public com.google.showcase.v1beta1.Issue getIssue() {
    */
   @java.lang.Override
   public com.google.showcase.v1beta1.IssueOrBuilder getIssueOrBuilder() {
-    return getIssue();
+    return issue_ == null ? com.google.showcase.v1beta1.Issue.getDefaultInstance() : issue_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -150,7 +98,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (issue_ != null) {
       output.writeMessage(1, getIssue());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -163,7 +111,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getIssue());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -183,7 +131,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getIssue()
           .equals(other.getIssue())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -198,7 +146,7 @@ public int hashCode() {
       hash = (37 * hash) + ISSUE_FIELD_NUMBER;
       hash = (53 * hash) + getIssue().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -315,26 +263,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.VerifyTestResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (issueBuilder_ == null) {
-        issue_ = null;
-      } else {
-        issue_ = null;
+      bitField0_ = 0;
+      issue_ = null;
+      if (issueBuilder_ != null) {
+        issueBuilder_.dispose();
         issueBuilder_ = null;
       }
       return this;
@@ -363,15 +306,20 @@ public com.google.showcase.v1beta1.VerifyTestResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.VerifyTestResponse buildPartial() {
       com.google.showcase.v1beta1.VerifyTestResponse result = new com.google.showcase.v1beta1.VerifyTestResponse(this);
-      if (issueBuilder_ == null) {
-        result.issue_ = issue_;
-      } else {
-        result.issue_ = issueBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.VerifyTestResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.issue_ = issueBuilder_ == null
+            ? issue_
+            : issueBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -419,7 +367,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.VerifyTestResponse other) {
       if (other.hasIssue()) {
         mergeIssue(other.getIssue());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -434,19 +382,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.VerifyTestResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getIssueFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.VerifyTestResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.showcase.v1beta1.Issue issue_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -460,7 +429,7 @@ public Builder mergeFrom(
      * @return Whether the issue field is set.
      */
     public boolean hasIssue() {
-      return issueBuilder_ != null || issue_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -490,11 +459,11 @@ public Builder setIssue(com.google.showcase.v1beta1.Issue value) {
           throw new NullPointerException();
         }
         issue_ = value;
-        onChanged();
       } else {
         issueBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -508,11 +477,11 @@ public Builder setIssue(
         com.google.showcase.v1beta1.Issue.Builder builderForValue) {
       if (issueBuilder_ == null) {
         issue_ = builderForValue.build();
-        onChanged();
       } else {
         issueBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -524,17 +493,18 @@ public Builder setIssue(
      */
     public Builder mergeIssue(com.google.showcase.v1beta1.Issue value) {
       if (issueBuilder_ == null) {
-        if (issue_ != null) {
-          issue_ =
-            com.google.showcase.v1beta1.Issue.newBuilder(issue_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          issue_ != null &&
+          issue_ != com.google.showcase.v1beta1.Issue.getDefaultInstance()) {
+          getIssueBuilder().mergeFrom(value);
         } else {
           issue_ = value;
         }
-        onChanged();
       } else {
         issueBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -545,14 +515,13 @@ public Builder mergeIssue(com.google.showcase.v1beta1.Issue value) {
      * .google.showcase.v1beta1.Issue issue = 1;
      */
     public Builder clearIssue() {
-      if (issueBuilder_ == null) {
-        issue_ = null;
-        onChanged();
-      } else {
-        issue_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      issue_ = null;
+      if (issueBuilder_ != null) {
+        issueBuilder_.dispose();
         issueBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -563,7 +532,7 @@ public Builder clearIssue() {
      * .google.showcase.v1beta1.Issue issue = 1;
      */
     public com.google.showcase.v1beta1.Issue.Builder getIssueBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getIssueFieldBuilder().getBuilder();
     }
@@ -635,7 +604,18 @@ public VerifyTestResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new VerifyTestResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/WaitMetadata.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/WaitMetadata.java
index 260e24d7b6..532eedcb00 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/WaitMetadata.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/WaitMetadata.java
@@ -34,58 +34,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private WaitMetadata(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.protobuf.Timestamp.Builder subBuilder = null;
-            if (endTime_ != null) {
-              subBuilder = endTime_.toBuilder();
-            }
-            endTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom(endTime_);
-              endTime_ = subBuilder.buildPartial();
-            }
-
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_WaitMetadata_descriptor;
@@ -134,7 +82,7 @@ public com.google.protobuf.Timestamp getEndTime() {
    */
   @java.lang.Override
   public com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder() {
-    return getEndTime();
+    return endTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : endTime_;
   }
 
   private byte memoizedIsInitialized = -1;
@@ -154,7 +102,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (endTime_ != null) {
       output.writeMessage(1, getEndTime());
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -167,7 +115,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getEndTime());
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -187,7 +135,7 @@ public boolean equals(final java.lang.Object obj) {
       if (!getEndTime()
           .equals(other.getEndTime())) return false;
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -202,7 +150,7 @@ public int hashCode() {
       hash = (37 * hash) + END_TIME_FIELD_NUMBER;
       hash = (53 * hash) + getEndTime().hashCode();
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -323,26 +271,21 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.WaitMetadata.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
-      if (endTimeBuilder_ == null) {
-        endTime_ = null;
-      } else {
-        endTime_ = null;
+      bitField0_ = 0;
+      endTime_ = null;
+      if (endTimeBuilder_ != null) {
+        endTimeBuilder_.dispose();
         endTimeBuilder_ = null;
       }
       return this;
@@ -371,15 +314,20 @@ public com.google.showcase.v1beta1.WaitMetadata build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.WaitMetadata buildPartial() {
       com.google.showcase.v1beta1.WaitMetadata result = new com.google.showcase.v1beta1.WaitMetadata(this);
-      if (endTimeBuilder_ == null) {
-        result.endTime_ = endTime_;
-      } else {
-        result.endTime_ = endTimeBuilder_.build();
-      }
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.WaitMetadata result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.endTime_ = endTimeBuilder_ == null
+            ? endTime_
+            : endTimeBuilder_.build();
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -427,7 +375,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.WaitMetadata other) {
       if (other.hasEndTime()) {
         mergeEndTime(other.getEndTime());
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -442,19 +390,40 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.WaitMetadata parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getEndTimeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.WaitMetadata) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private com.google.protobuf.Timestamp endTime_;
     private com.google.protobuf.SingleFieldBuilderV3<
@@ -468,7 +437,7 @@ public Builder mergeFrom(
      * @return Whether the endTime field is set.
      */
     public boolean hasEndTime() {
-      return endTimeBuilder_ != null || endTime_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      * 
@@ -498,11 +467,11 @@ public Builder setEndTime(com.google.protobuf.Timestamp value) {
           throw new NullPointerException();
         }
         endTime_ = value;
-        onChanged();
       } else {
         endTimeBuilder_.setMessage(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -516,11 +485,11 @@ public Builder setEndTime(
         com.google.protobuf.Timestamp.Builder builderForValue) {
       if (endTimeBuilder_ == null) {
         endTime_ = builderForValue.build();
-        onChanged();
       } else {
         endTimeBuilder_.setMessage(builderForValue.build());
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -532,17 +501,18 @@ public Builder setEndTime(
      */
     public Builder mergeEndTime(com.google.protobuf.Timestamp value) {
       if (endTimeBuilder_ == null) {
-        if (endTime_ != null) {
-          endTime_ =
-            com.google.protobuf.Timestamp.newBuilder(endTime_).mergeFrom(value).buildPartial();
+        if (((bitField0_ & 0x00000001) != 0) &&
+          endTime_ != null &&
+          endTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
+          getEndTimeBuilder().mergeFrom(value);
         } else {
           endTime_ = value;
         }
-        onChanged();
       } else {
         endTimeBuilder_.mergeFrom(value);
       }
-
+      bitField0_ |= 0x00000001;
+      onChanged();
       return this;
     }
     /**
@@ -553,14 +523,13 @@ public Builder mergeEndTime(com.google.protobuf.Timestamp value) {
      * .google.protobuf.Timestamp end_time = 1;
      */
     public Builder clearEndTime() {
-      if (endTimeBuilder_ == null) {
-        endTime_ = null;
-        onChanged();
-      } else {
-        endTime_ = null;
+      bitField0_ = (bitField0_ & ~0x00000001);
+      endTime_ = null;
+      if (endTimeBuilder_ != null) {
+        endTimeBuilder_.dispose();
         endTimeBuilder_ = null;
       }
-
+      onChanged();
       return this;
     }
     /**
@@ -571,7 +540,7 @@ public Builder clearEndTime() {
      * .google.protobuf.Timestamp end_time = 1;
      */
     public com.google.protobuf.Timestamp.Builder getEndTimeBuilder() {
-      
+      bitField0_ |= 0x00000001;
       onChanged();
       return getEndTimeFieldBuilder().getBuilder();
     }
@@ -643,7 +612,18 @@ public WaitMetadata parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new WaitMetadata(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/WaitRequest.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/WaitRequest.java
index 97d4d2413c..58dfeb2365 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/WaitRequest.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/WaitRequest.java
@@ -34,101 +34,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private WaitRequest(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            com.google.protobuf.Timestamp.Builder subBuilder = null;
-            if (endCase_ == 1) {
-              subBuilder = ((com.google.protobuf.Timestamp) end_).toBuilder();
-            }
-            end_ =
-                input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((com.google.protobuf.Timestamp) end_);
-              end_ = subBuilder.buildPartial();
-            }
-            endCase_ = 1;
-            break;
-          }
-          case 18: {
-            com.google.rpc.Status.Builder subBuilder = null;
-            if (responseCase_ == 2) {
-              subBuilder = ((com.google.rpc.Status) response_).toBuilder();
-            }
-            response_ =
-                input.readMessage(com.google.rpc.Status.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((com.google.rpc.Status) response_);
-              response_ = subBuilder.buildPartial();
-            }
-            responseCase_ = 2;
-            break;
-          }
-          case 26: {
-            com.google.showcase.v1beta1.WaitResponse.Builder subBuilder = null;
-            if (responseCase_ == 3) {
-              subBuilder = ((com.google.showcase.v1beta1.WaitResponse) response_).toBuilder();
-            }
-            response_ =
-                input.readMessage(com.google.showcase.v1beta1.WaitResponse.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((com.google.showcase.v1beta1.WaitResponse) response_);
-              response_ = subBuilder.buildPartial();
-            }
-            responseCase_ = 3;
-            break;
-          }
-          case 34: {
-            com.google.protobuf.Duration.Builder subBuilder = null;
-            if (endCase_ == 4) {
-              subBuilder = ((com.google.protobuf.Duration) end_).toBuilder();
-            }
-            end_ =
-                input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry);
-            if (subBuilder != null) {
-              subBuilder.mergeFrom((com.google.protobuf.Duration) end_);
-              end_ = subBuilder.buildPartial();
-            }
-            endCase_ = 4;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_WaitRequest_descriptor;
@@ -425,7 +330,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (endCase_ == 4) {
       output.writeMessage(4, (com.google.protobuf.Duration) end_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -450,7 +355,7 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(4, (com.google.protobuf.Duration) end_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -491,7 +396,7 @@ public boolean equals(final java.lang.Object obj) {
       case 0:
       default:
     }
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -526,7 +431,7 @@ public int hashCode() {
       case 0:
       default:
     }
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -647,22 +552,30 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.WaitRequest.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
+      if (endTimeBuilder_ != null) {
+        endTimeBuilder_.clear();
+      }
+      if (ttlBuilder_ != null) {
+        ttlBuilder_.clear();
+      }
+      if (errorBuilder_ != null) {
+        errorBuilder_.clear();
+      }
+      if (successBuilder_ != null) {
+        successBuilder_.clear();
+      }
       endCase_ = 0;
       end_ = null;
       responseCase_ = 0;
@@ -693,38 +606,37 @@ public com.google.showcase.v1beta1.WaitRequest build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.WaitRequest buildPartial() {
       com.google.showcase.v1beta1.WaitRequest result = new com.google.showcase.v1beta1.WaitRequest(this);
-      if (endCase_ == 1) {
-        if (endTimeBuilder_ == null) {
-          result.end_ = end_;
-        } else {
-          result.end_ = endTimeBuilder_.build();
-        }
+      if (bitField0_ != 0) { buildPartial0(result); }
+      buildPartialOneofs(result);
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartial0(com.google.showcase.v1beta1.WaitRequest result) {
+      int from_bitField0_ = bitField0_;
+    }
+
+    private void buildPartialOneofs(com.google.showcase.v1beta1.WaitRequest result) {
+      result.endCase_ = endCase_;
+      result.end_ = this.end_;
+      if (endCase_ == 1 &&
+          endTimeBuilder_ != null) {
+        result.end_ = endTimeBuilder_.build();
       }
-      if (endCase_ == 4) {
-        if (ttlBuilder_ == null) {
-          result.end_ = end_;
-        } else {
-          result.end_ = ttlBuilder_.build();
-        }
+      if (endCase_ == 4 &&
+          ttlBuilder_ != null) {
+        result.end_ = ttlBuilder_.build();
       }
-      if (responseCase_ == 2) {
-        if (errorBuilder_ == null) {
-          result.response_ = response_;
-        } else {
-          result.response_ = errorBuilder_.build();
-        }
+      result.responseCase_ = responseCase_;
+      result.response_ = this.response_;
+      if (responseCase_ == 2 &&
+          errorBuilder_ != null) {
+        result.response_ = errorBuilder_.build();
       }
-      if (responseCase_ == 3) {
-        if (successBuilder_ == null) {
-          result.response_ = response_;
-        } else {
-          result.response_ = successBuilder_.build();
-        }
+      if (responseCase_ == 3 &&
+          successBuilder_ != null) {
+        result.response_ = successBuilder_.build();
       }
-      result.endCase_ = endCase_;
-      result.responseCase_ = responseCase_;
-      onBuilt();
-      return result;
     }
 
     @java.lang.Override
@@ -797,7 +709,7 @@ public Builder mergeFrom(com.google.showcase.v1beta1.WaitRequest other) {
           break;
         }
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -812,17 +724,58 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.WaitRequest parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              input.readMessage(
+                  getEndTimeFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              endCase_ = 1;
+              break;
+            } // case 10
+            case 18: {
+              input.readMessage(
+                  getErrorFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              responseCase_ = 2;
+              break;
+            } // case 18
+            case 26: {
+              input.readMessage(
+                  getSuccessFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              responseCase_ = 3;
+              break;
+            } // case 26
+            case 34: {
+              input.readMessage(
+                  getTtlFieldBuilder().getBuilder(),
+                  extensionRegistry);
+              endCase_ = 4;
+              break;
+            } // case 34
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.WaitRequest) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
     private int endCase_ = 0;
@@ -855,6 +808,7 @@ public Builder clearResponse() {
       return this;
     }
 
+    private int bitField0_;
 
     private com.google.protobuf.SingleFieldBuilderV3<
         com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> endTimeBuilder_;
@@ -1030,7 +984,7 @@ public com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder() {
         end_ = null;
       }
       endCase_ = 1;
-      onChanged();;
+      onChanged();
       return endTimeBuilder_;
     }
 
@@ -1208,7 +1162,7 @@ public com.google.protobuf.DurationOrBuilder getTtlOrBuilder() {
         end_ = null;
       }
       endCase_ = 4;
-      onChanged();;
+      onChanged();
       return ttlBuilder_;
     }
 
@@ -1395,7 +1349,7 @@ public com.google.rpc.StatusOrBuilder getErrorOrBuilder() {
         response_ = null;
       }
       responseCase_ = 2;
-      onChanged();;
+      onChanged();
       return errorBuilder_;
     }
 
@@ -1573,7 +1527,7 @@ public com.google.showcase.v1beta1.WaitResponseOrBuilder getSuccessOrBuilder() {
         response_ = null;
       }
       responseCase_ = 3;
-      onChanged();;
+      onChanged();
       return successBuilder_;
     }
     @java.lang.Override
@@ -1609,7 +1563,18 @@ public WaitRequest parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new WaitRequest(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };
 
diff --git a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/WaitResponse.java b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/WaitResponse.java
index d992163846..4c9d077850 100644
--- a/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/WaitResponse.java
+++ b/showcase/proto-gapic-showcase-v1beta1/src/main/java/com/google/showcase/v1beta1/WaitResponse.java
@@ -35,51 +35,6 @@ protected java.lang.Object newInstance(
   getUnknownFields() {
     return this.unknownFields;
   }
-  private WaitResponse(
-      com.google.protobuf.CodedInputStream input,
-      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-      throws com.google.protobuf.InvalidProtocolBufferException {
-    this();
-    if (extensionRegistry == null) {
-      throw new java.lang.NullPointerException();
-    }
-    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-        com.google.protobuf.UnknownFieldSet.newBuilder();
-    try {
-      boolean done = false;
-      while (!done) {
-        int tag = input.readTag();
-        switch (tag) {
-          case 0:
-            done = true;
-            break;
-          case 10: {
-            java.lang.String s = input.readStringRequireUtf8();
-
-            content_ = s;
-            break;
-          }
-          default: {
-            if (!parseUnknownField(
-                input, unknownFields, extensionRegistry, tag)) {
-              done = true;
-            }
-            break;
-          }
-        }
-      }
-    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-      throw e.setUnfinishedMessage(this);
-    } catch (com.google.protobuf.UninitializedMessageException e) {
-      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
-    } catch (java.io.IOException e) {
-      throw new com.google.protobuf.InvalidProtocolBufferException(
-          e).setUnfinishedMessage(this);
-    } finally {
-      this.unknownFields = unknownFields.build();
-      makeExtensionsImmutable();
-    }
-  }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
     return com.google.showcase.v1beta1.EchoOuterClass.internal_static_google_showcase_v1beta1_WaitResponse_descriptor;
@@ -94,7 +49,8 @@ private WaitResponse(
   }
 
   public static final int CONTENT_FIELD_NUMBER = 1;
-  private volatile java.lang.Object content_;
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object content_ = "";
   /**
    * 
    * This content of the result.
@@ -156,7 +112,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, content_);
     }
-    unknownFields.writeTo(output);
+    getUnknownFields().writeTo(output);
   }
 
   @java.lang.Override
@@ -168,7 +124,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, content_);
     }
-    size += unknownFields.getSerializedSize();
+    size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
   }
@@ -185,7 +141,7 @@ public boolean equals(final java.lang.Object obj) {
 
     if (!getContent()
         .equals(other.getContent())) return false;
-    if (!unknownFields.equals(other.unknownFields)) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
 
@@ -198,7 +154,7 @@ public int hashCode() {
     hash = (19 * hash) + getDescriptor().hashCode();
     hash = (37 * hash) + CONTENT_FIELD_NUMBER;
     hash = (53 * hash) + getContent().hashCode();
-    hash = (29 * hash) + unknownFields.hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
   }
@@ -319,24 +275,19 @@ public static final class Builder extends
 
     // Construct using com.google.showcase.v1beta1.WaitResponse.newBuilder()
     private Builder() {
-      maybeForceBuilderInitialization();
+
     }
 
     private Builder(
         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
-      maybeForceBuilderInitialization();
-    }
-    private void maybeForceBuilderInitialization() {
-      if (com.google.protobuf.GeneratedMessageV3
-              .alwaysUseFieldBuilders) {
-      }
+
     }
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      bitField0_ = 0;
       content_ = "";
-
       return this;
     }
 
@@ -363,11 +314,18 @@ public com.google.showcase.v1beta1.WaitResponse build() {
     @java.lang.Override
     public com.google.showcase.v1beta1.WaitResponse buildPartial() {
       com.google.showcase.v1beta1.WaitResponse result = new com.google.showcase.v1beta1.WaitResponse(this);
-      result.content_ = content_;
+      if (bitField0_ != 0) { buildPartial0(result); }
       onBuilt();
       return result;
     }
 
+    private void buildPartial0(com.google.showcase.v1beta1.WaitResponse result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.content_ = content_;
+      }
+    }
+
     @java.lang.Override
     public Builder clone() {
       return super.clone();
@@ -414,9 +372,10 @@ public Builder mergeFrom(com.google.showcase.v1beta1.WaitResponse other) {
       if (other == com.google.showcase.v1beta1.WaitResponse.getDefaultInstance()) return this;
       if (!other.getContent().isEmpty()) {
         content_ = other.content_;
+        bitField0_ |= 0x00000001;
         onChanged();
       }
-      this.mergeUnknownFields(other.unknownFields);
+      this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
     }
@@ -431,19 +390,38 @@ public Builder mergeFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      com.google.showcase.v1beta1.WaitResponse parsedMessage = null;
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       try {
-        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              content_ = input.readStringRequireUtf8();
+              bitField0_ |= 0x00000001;
+              break;
+            } // case 10
+            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) {
-        parsedMessage = (com.google.showcase.v1beta1.WaitResponse) e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
-        if (parsedMessage != null) {
-          mergeFrom(parsedMessage);
-        }
-      }
+        onChanged();
+      } // finally
       return this;
     }
+    private int bitField0_;
 
     private java.lang.Object content_ = "";
     /**
@@ -498,11 +476,9 @@ public java.lang.String getContent() {
      */
     public Builder setContent(
         java.lang.String value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  
+      if (value == null) { throw new NullPointerException(); }
       content_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -515,8 +491,8 @@ public Builder setContent(
      * @return This builder for chaining.
      */
     public Builder clearContent() {
-      
       content_ = getDefaultInstance().getContent();
+      bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
     }
@@ -531,12 +507,10 @@ public Builder clearContent() {
      */
     public Builder setContentBytes(
         com.google.protobuf.ByteString value) {
-      if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-      
+      if (value == null) { throw new NullPointerException(); }
+      checkByteStringIsUtf8(value);
       content_ = value;
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -573,7 +547,18 @@ public WaitResponse parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new WaitResponse(input, extensionRegistry);
+      Builder builder = newBuilder();
+      try {
+        builder.mergeFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(builder.buildPartial());
+      } catch (com.google.protobuf.UninitializedMessageException e) {
+        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(e)
+            .setUnfinishedMessage(builder.buildPartial());
+      }
+      return builder.buildPartial();
     }
   };