diff --git a/google-cloud-bigtable/src/main/resources/META-INF/native-image/com.google.cloud.bigtable.admin.v2/reflect-config.json b/google-cloud-bigtable/src/main/resources/META-INF/native-image/com.google.cloud.bigtable.admin.v2/reflect-config.json
index 327b42fe84..7a72cb06c3 100644
--- a/google-cloud-bigtable/src/main/resources/META-INF/native-image/com.google.cloud.bigtable.admin.v2/reflect-config.json
+++ b/google-cloud-bigtable/src/main/resources/META-INF/native-image/com.google.cloud.bigtable.admin.v2/reflect-config.json
@@ -2555,6 +2555,15 @@
     "allDeclaredClasses": true,
     "allPublicClasses": true
   },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$Edition",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
   {
     "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto",
     "queryAllDeclaredConstructors": true,
@@ -2690,6 +2699,114 @@
     "allDeclaredClasses": true,
     "allPublicClasses": true
   },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$Builder",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$EnumType",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$FieldPresence",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$JsonFormat",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$MessageEncoding",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$RepeatedFieldEncoding",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$Utf8Validation",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults$Builder",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults$FeatureSetEditionDefault",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults$FeatureSetEditionDefault$Builder",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
   {
     "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto",
     "queryAllDeclaredConstructors": true,
@@ -2753,6 +2870,24 @@
     "allDeclaredClasses": true,
     "allPublicClasses": true
   },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FieldOptions$EditionDefault",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FieldOptions$EditionDefault$Builder",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
   {
     "name": "com.google.protobuf.DescriptorProtos$FieldOptions$JSType",
     "queryAllDeclaredConstructors": true,
diff --git a/google-cloud-bigtable/src/main/resources/META-INF/native-image/com.google.cloud.bigtable.data.v2/reflect-config.json b/google-cloud-bigtable/src/main/resources/META-INF/native-image/com.google.cloud.bigtable.data.v2/reflect-config.json
index c512a0664d..bf1f79e8ba 100644
--- a/google-cloud-bigtable/src/main/resources/META-INF/native-image/com.google.cloud.bigtable.data.v2/reflect-config.json
+++ b/google-cloud-bigtable/src/main/resources/META-INF/native-image/com.google.cloud.bigtable.data.v2/reflect-config.json
@@ -1529,6 +1529,15 @@
     "allDeclaredClasses": true,
     "allPublicClasses": true
   },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$Edition",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
   {
     "name": "com.google.protobuf.DescriptorProtos$EnumDescriptorProto",
     "queryAllDeclaredConstructors": true,
@@ -1664,6 +1673,114 @@
     "allDeclaredClasses": true,
     "allPublicClasses": true
   },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$Builder",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$EnumType",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$FieldPresence",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$JsonFormat",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$MessageEncoding",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$RepeatedFieldEncoding",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSet$Utf8Validation",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults$Builder",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults$FeatureSetEditionDefault",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FeatureSetDefaults$FeatureSetEditionDefault$Builder",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
   {
     "name": "com.google.protobuf.DescriptorProtos$FieldDescriptorProto",
     "queryAllDeclaredConstructors": true,
@@ -1727,6 +1844,24 @@
     "allDeclaredClasses": true,
     "allPublicClasses": true
   },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FieldOptions$EditionDefault",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
+  {
+    "name": "com.google.protobuf.DescriptorProtos$FieldOptions$EditionDefault$Builder",
+    "queryAllDeclaredConstructors": true,
+    "queryAllPublicConstructors": true,
+    "queryAllDeclaredMethods": true,
+    "allPublicMethods": true,
+    "allDeclaredClasses": true,
+    "allPublicClasses": true
+  },
   {
     "name": "com.google.protobuf.DescriptorProtos$FieldOptions$JSType",
     "queryAllDeclaredConstructors": true,
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfile.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfile.java
index 124fb03f49..e9fbfaa569 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfile.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfile.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfileOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfileOrBuilder.java
index fe0e1b025c..262136da9e 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfileOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfileOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface AppProfileOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingLimits.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingLimits.java
index 7d2a31a323..8aa99f6d54 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingLimits.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingLimits.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingLimitsOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingLimitsOrBuilder.java
index 145781d0a5..78523a08c2 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingLimitsOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingLimitsOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface AutoscalingLimitsOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingTargets.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingTargets.java
index 835cb2fa92..cbce3ed6d1 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingTargets.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingTargets.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingTargetsOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingTargetsOrBuilder.java
index 3555c16420..a1053a0658 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingTargetsOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AutoscalingTargetsOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface AutoscalingTargetsOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Backup.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Backup.java
index 1849019c8b..c494e971fc 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Backup.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Backup.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -224,6 +225,7 @@ private State(int value) {
     // @@protoc_insertion_point(enum_scope:google.bigtable.admin.v2.Backup.State)
   }
 
+  private int bitField0_;
   public static final int NAME_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -427,7 +429,7 @@ public com.google.protobuf.ByteString getSourceBackupBytes() {
    */
   @java.lang.Override
   public boolean hasExpireTime() {
-    return expireTime_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -488,7 +490,7 @@ public com.google.protobuf.TimestampOrBuilder getExpireTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasStartTime() {
-    return startTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -546,7 +548,7 @@ public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasEndTime() {
-    return endTime_ != null;
+    return ((bitField0_ & 0x00000004) != 0);
   }
   /**
    *
@@ -655,7 +657,7 @@ public com.google.bigtable.admin.v2.Backup.State getState() {
    */
   @java.lang.Override
   public boolean hasEncryptionInfo() {
-    return encryptionInfo_ != null;
+    return ((bitField0_ & 0x00000008) != 0);
   }
   /**
    *
@@ -714,13 +716,13 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceTable_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, sourceTable_);
     }
-    if (expireTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(3, getExpireTime());
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(4, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       output.writeMessage(5, getEndTime());
     }
     if (sizeBytes_ != 0L) {
@@ -729,7 +731,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (state_ != com.google.bigtable.admin.v2.Backup.State.STATE_UNSPECIFIED.getNumber()) {
       output.writeEnum(7, state_);
     }
-    if (encryptionInfo_ != null) {
+    if (((bitField0_ & 0x00000008) != 0)) {
       output.writeMessage(9, getEncryptionInfo());
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceBackup_)) {
@@ -750,13 +752,13 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceTable_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, sourceTable_);
     }
-    if (expireTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getExpireTime());
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getEndTime());
     }
     if (sizeBytes_ != 0L) {
@@ -765,7 +767,7 @@ public int getSerializedSize() {
     if (state_ != com.google.bigtable.admin.v2.Backup.State.STATE_UNSPECIFIED.getNumber()) {
       size += com.google.protobuf.CodedOutputStream.computeEnumSize(7, state_);
     }
-    if (encryptionInfo_ != null) {
+    if (((bitField0_ & 0x00000008) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getEncryptionInfo());
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceBackup_)) {
@@ -972,10 +974,22 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.Backup.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getExpireTimeFieldBuilder();
+        getStartTimeFieldBuilder();
+        getEndTimeFieldBuilder();
+        getEncryptionInfoFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -1051,14 +1065,18 @@ private void buildPartial0(com.google.bigtable.admin.v2.Backup result) {
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.sourceBackup_ = sourceBackup_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.expireTime_ = expireTimeBuilder_ == null ? expireTime_ : expireTimeBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000010) != 0)) {
         result.startTime_ = startTimeBuilder_ == null ? startTime_ : startTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000020) != 0)) {
         result.endTime_ = endTimeBuilder_ == null ? endTime_ : endTimeBuilder_.build();
+        to_bitField0_ |= 0x00000004;
       }
       if (((from_bitField0_ & 0x00000040) != 0)) {
         result.sizeBytes_ = sizeBytes_;
@@ -1069,7 +1087,9 @@ private void buildPartial0(com.google.bigtable.admin.v2.Backup result) {
       if (((from_bitField0_ & 0x00000100) != 0)) {
         result.encryptionInfo_ =
             encryptionInfoBuilder_ == null ? encryptionInfo_ : encryptionInfoBuilder_.build();
+        to_bitField0_ |= 0x00000008;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1769,8 +1789,10 @@ public Builder mergeExpireTime(com.google.protobuf.Timestamp value) {
       } else {
         expireTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000008;
-      onChanged();
+      if (expireTime_ != null) {
+        bitField0_ |= 0x00000008;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1995,8 +2017,10 @@ public Builder mergeStartTime(com.google.protobuf.Timestamp value) {
       } else {
         startTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000010;
-      onChanged();
+      if (startTime_ != null) {
+        bitField0_ |= 0x00000010;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -2204,8 +2228,10 @@ public Builder mergeEndTime(com.google.protobuf.Timestamp value) {
       } else {
         endTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000020;
-      onChanged();
+      if (endTime_ != null) {
+        bitField0_ |= 0x00000020;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -2558,8 +2584,10 @@ public Builder mergeEncryptionInfo(com.google.bigtable.admin.v2.EncryptionInfo v
       } else {
         encryptionInfoBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000100;
-      onChanged();
+      if (encryptionInfo_ != null) {
+        bitField0_ |= 0x00000100;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupInfo.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupInfo.java
index 4059a657e2..9b15de841d 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupInfo.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupInfo.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -64,6 +65,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.BackupInfo.Builder.class);
   }
 
+  private int bitField0_;
   public static final int BACKUP_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -132,7 +134,7 @@ public com.google.protobuf.ByteString getBackupBytes() {
    */
   @java.lang.Override
   public boolean hasStartTime() {
-    return startTime_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -184,7 +186,7 @@ public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasEndTime() {
-    return endTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -342,10 +344,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(backup_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, backup_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(2, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(3, getEndTime());
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceTable_)) {
@@ -366,10 +368,10 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(backup_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, backup_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getEndTime());
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceTable_)) {
@@ -558,10 +560,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.BackupInfo.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getStartTimeFieldBuilder();
+        getEndTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -620,11 +632,14 @@ private void buildPartial0(com.google.bigtable.admin.v2.BackupInfo result) {
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.backup_ = backup_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.startTime_ = startTimeBuilder_ == null ? startTime_ : startTimeBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.endTime_ = endTimeBuilder_ == null ? endTime_ : endTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.sourceTable_ = sourceTable_;
@@ -632,6 +647,7 @@ private void buildPartial0(com.google.bigtable.admin.v2.BackupInfo result) {
       if (((from_bitField0_ & 0x00000010) != 0)) {
         result.sourceBackup_ = sourceBackup_;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -991,8 +1007,10 @@ public Builder mergeStartTime(com.google.protobuf.Timestamp value) {
       } else {
         startTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (startTime_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1188,8 +1206,10 @@ public Builder mergeEndTime(com.google.protobuf.Timestamp value) {
       } else {
         endTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (endTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupInfoOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupInfoOrBuilder.java
index 684f37dade..d450af9277 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupInfoOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupInfoOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface BackupInfoOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupOrBuilder.java
index d11a17c7d0..03ac3e0d58 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BackupOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface BackupOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableInstanceAdminProto.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableInstanceAdminProto.java
index 700b46439d..5bc908c412 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableInstanceAdminProto.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableInstanceAdminProto.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public final class BigtableInstanceAdminProto {
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableTableAdminProto.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableTableAdminProto.java
index df6a9581d0..7554436028 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableTableAdminProto.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableTableAdminProto.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public final class BigtableTableAdminProto {
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ChangeStreamConfig.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ChangeStreamConfig.java
index e3d29e0bef..0ea6747cbb 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ChangeStreamConfig.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ChangeStreamConfig.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -60,6 +61,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.ChangeStreamConfig.Builder.class);
   }
 
+  private int bitField0_;
   public static final int RETENTION_PERIOD_FIELD_NUMBER = 1;
   private com.google.protobuf.Duration retentionPeriod_;
   /**
@@ -79,7 +81,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasRetentionPeriod() {
-    return retentionPeriod_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -136,7 +138,7 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (retentionPeriod_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getRetentionPeriod());
     }
     getUnknownFields().writeTo(output);
@@ -148,7 +150,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (retentionPeriod_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getRetentionPeriod());
     }
     size += getUnknownFields().getSerializedSize();
@@ -315,10 +317,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.ChangeStreamConfig.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getRetentionPeriodFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -366,10 +377,13 @@ public com.google.bigtable.admin.v2.ChangeStreamConfig buildPartial() {
 
     private void buildPartial0(com.google.bigtable.admin.v2.ChangeStreamConfig result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.retentionPeriod_ =
             retentionPeriodBuilder_ == null ? retentionPeriod_ : retentionPeriodBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -594,8 +608,10 @@ public Builder mergeRetentionPeriod(com.google.protobuf.Duration value) {
       } else {
         retentionPeriodBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (retentionPeriod_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ChangeStreamConfigOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ChangeStreamConfigOrBuilder.java
index 6ffe2bac62..2740acc23a 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ChangeStreamConfigOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ChangeStreamConfigOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ChangeStreamConfigOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyRequest.java
index bb41a55bbe..30bcfaf696 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyRequestOrBuilder.java
index 3fbd877ace..7f47bb6720 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CheckConsistencyRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyResponse.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyResponse.java
index aafe3b418f..8d96d04a2b 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyResponse.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyResponseOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyResponseOrBuilder.java
index 545c38dd7b..79fdd57b6b 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CheckConsistencyResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CheckConsistencyResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Cluster.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Cluster.java
index 28b42ffc1d..011ea835ac 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Cluster.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Cluster.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -411,6 +412,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
               com.google.bigtable.admin.v2.Cluster.ClusterAutoscalingConfig.Builder.class);
     }
 
+    private int bitField0_;
     public static final int AUTOSCALING_LIMITS_FIELD_NUMBER = 1;
     private com.google.bigtable.admin.v2.AutoscalingLimits autoscalingLimits_;
     /**
@@ -428,7 +430,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      */
     @java.lang.Override
     public boolean hasAutoscalingLimits() {
-      return autoscalingLimits_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      *
@@ -484,7 +486,7 @@ public com.google.bigtable.admin.v2.AutoscalingLimitsOrBuilder getAutoscalingLim
      */
     @java.lang.Override
     public boolean hasAutoscalingTargets() {
-      return autoscalingTargets_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      *
@@ -538,10 +540,10 @@ public final boolean isInitialized() {
 
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-      if (autoscalingLimits_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(1, getAutoscalingLimits());
       }
-      if (autoscalingTargets_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         output.writeMessage(2, getAutoscalingTargets());
       }
       getUnknownFields().writeTo(output);
@@ -553,10 +555,10 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (autoscalingLimits_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getAutoscalingLimits());
       }
-      if (autoscalingTargets_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         size +=
             com.google.protobuf.CodedOutputStream.computeMessageSize(2, getAutoscalingTargets());
       }
@@ -735,10 +737,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       }
 
       // Construct using com.google.bigtable.admin.v2.Cluster.ClusterAutoscalingConfig.newBuilder()
-      private Builder() {}
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
 
       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
+        maybeForceBuilderInitialization();
+      }
+
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+          getAutoscalingLimitsFieldBuilder();
+          getAutoscalingTargetsFieldBuilder();
+        }
       }
 
       @java.lang.Override
@@ -793,18 +805,22 @@ public com.google.bigtable.admin.v2.Cluster.ClusterAutoscalingConfig buildPartia
       private void buildPartial0(
           com.google.bigtable.admin.v2.Cluster.ClusterAutoscalingConfig result) {
         int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
           result.autoscalingLimits_ =
               autoscalingLimitsBuilder_ == null
                   ? autoscalingLimits_
                   : autoscalingLimitsBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
         if (((from_bitField0_ & 0x00000002) != 0)) {
           result.autoscalingTargets_ =
               autoscalingTargetsBuilder_ == null
                   ? autoscalingTargets_
                   : autoscalingTargetsBuilder_.build();
+          to_bitField0_ |= 0x00000002;
         }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -1036,8 +1052,10 @@ public Builder mergeAutoscalingLimits(com.google.bigtable.admin.v2.AutoscalingLi
         } else {
           autoscalingLimitsBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000001;
-        onChanged();
+        if (autoscalingLimits_ != null) {
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -1241,8 +1259,10 @@ public Builder mergeAutoscalingTargets(
         } else {
           autoscalingTargetsBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000002;
-        onChanged();
+        if (autoscalingTargets_ != null) {
+          bitField0_ |= 0x00000002;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -1488,6 +1508,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
               com.google.bigtable.admin.v2.Cluster.ClusterConfig.Builder.class);
     }
 
+    private int bitField0_;
     public static final int CLUSTER_AUTOSCALING_CONFIG_FIELD_NUMBER = 1;
     private com.google.bigtable.admin.v2.Cluster.ClusterAutoscalingConfig clusterAutoscalingConfig_;
     /**
@@ -1505,7 +1526,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      */
     @java.lang.Override
     public boolean hasClusterAutoscalingConfig() {
-      return clusterAutoscalingConfig_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      *
@@ -1560,7 +1581,7 @@ public final boolean isInitialized() {
 
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-      if (clusterAutoscalingConfig_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(1, getClusterAutoscalingConfig());
       }
       getUnknownFields().writeTo(output);
@@ -1572,7 +1593,7 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (clusterAutoscalingConfig_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size +=
             com.google.protobuf.CodedOutputStream.computeMessageSize(
                 1, getClusterAutoscalingConfig());
@@ -1744,10 +1765,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       }
 
       // Construct using com.google.bigtable.admin.v2.Cluster.ClusterConfig.newBuilder()
-      private Builder() {}
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
 
       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
+        maybeForceBuilderInitialization();
+      }
+
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+          getClusterAutoscalingConfigFieldBuilder();
+        }
       }
 
       @java.lang.Override
@@ -1795,12 +1825,15 @@ public com.google.bigtable.admin.v2.Cluster.ClusterConfig buildPartial() {
 
       private void buildPartial0(com.google.bigtable.admin.v2.Cluster.ClusterConfig result) {
         int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
           result.clusterAutoscalingConfig_ =
               clusterAutoscalingConfigBuilder_ == null
                   ? clusterAutoscalingConfig_
                   : clusterAutoscalingConfigBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -2025,8 +2058,10 @@ public Builder mergeClusterAutoscalingConfig(
         } else {
           clusterAutoscalingConfigBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000001;
-        onChanged();
+        if (clusterAutoscalingConfig_ != null) {
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -2905,6 +2940,7 @@ public com.google.bigtable.admin.v2.Cluster.EncryptionConfig getDefaultInstanceF
     }
   }
 
+  private int bitField0_;
   private int configCase_ = 0;
 
   @SuppressWarnings("serial")
@@ -3232,7 +3268,7 @@ public com.google.bigtable.admin.v2.StorageType getDefaultStorageType() {
    */
   @java.lang.Override
   public boolean hasEncryptionConfig() {
-    return encryptionConfig_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -3302,7 +3338,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
         != com.google.bigtable.admin.v2.StorageType.STORAGE_TYPE_UNSPECIFIED.getNumber()) {
       output.writeEnum(5, defaultStorageType_);
     }
-    if (encryptionConfig_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(6, getEncryptionConfig());
     }
     if (configCase_ == 7) {
@@ -3333,7 +3369,7 @@ public int getSerializedSize() {
         != com.google.bigtable.admin.v2.StorageType.STORAGE_TYPE_UNSPECIFIED.getNumber()) {
       size += com.google.protobuf.CodedOutputStream.computeEnumSize(5, defaultStorageType_);
     }
-    if (encryptionConfig_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getEncryptionConfig());
     }
     if (configCase_ == 7) {
@@ -3536,10 +3572,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.Cluster.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getEncryptionConfigFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -3612,10 +3657,13 @@ private void buildPartial0(com.google.bigtable.admin.v2.Cluster result) {
       if (((from_bitField0_ & 0x00000020) != 0)) {
         result.defaultStorageType_ = defaultStorageType_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000040) != 0)) {
         result.encryptionConfig_ =
             encryptionConfigBuilder_ == null ? encryptionConfig_ : encryptionConfigBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     private void buildPartialOneofs(com.google.bigtable.admin.v2.Cluster result) {
@@ -4634,8 +4682,10 @@ public Builder mergeEncryptionConfig(
       } else {
         encryptionConfigBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000040;
-      onChanged();
+      if (encryptionConfig_ != null) {
+        bitField0_ |= 0x00000040;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ClusterOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ClusterOrBuilder.java
index 461a6c452d..66b910a7eb 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ClusterOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ClusterOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ClusterOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ColumnFamily.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ColumnFamily.java
index adaaac70fd..5442845590 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ColumnFamily.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ColumnFamily.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -60,6 +61,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.ColumnFamily.Builder.class);
   }
 
+  private int bitField0_;
   public static final int GC_RULE_FIELD_NUMBER = 1;
   private com.google.bigtable.admin.v2.GcRule gcRule_;
   /**
@@ -80,7 +82,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasGcRule() {
-    return gcRule_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -135,7 +137,7 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (gcRule_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getGcRule());
     }
     getUnknownFields().writeTo(output);
@@ -147,7 +149,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (gcRule_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getGcRule());
     }
     size += getUnknownFields().getSerializedSize();
@@ -314,10 +316,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.ColumnFamily.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getGcRuleFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -365,9 +376,12 @@ public com.google.bigtable.admin.v2.ColumnFamily buildPartial() {
 
     private void buildPartial0(com.google.bigtable.admin.v2.ColumnFamily result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.gcRule_ = gcRuleBuilder_ == null ? gcRule_ : gcRuleBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -594,8 +608,10 @@ public Builder mergeGcRule(com.google.bigtable.admin.v2.GcRule value) {
       } else {
         gcRuleBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (gcRule_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ColumnFamilyOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ColumnFamilyOrBuilder.java
index 990b1adf2d..007540bb22 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ColumnFamilyOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ColumnFamilyOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ColumnFamilyOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CommonProto.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CommonProto.java
index 4fd725c77b..ff38163999 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CommonProto.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CommonProto.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/common.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public final class CommonProto {
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupMetadata.java
index e23d90f959..63001b2a79 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -63,6 +64,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.CopyBackupMetadata.Builder.class);
   }
 
+  private int bitField0_;
   public static final int NAME_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -133,7 +135,7 @@ public com.google.protobuf.ByteString getNameBytes() {
    */
   @java.lang.Override
   public boolean hasSourceBackupInfo() {
-    return sourceBackupInfo_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -185,7 +187,7 @@ public com.google.bigtable.admin.v2.BackupInfoOrBuilder getSourceBackupInfoOrBui
    */
   @java.lang.Override
   public boolean hasProgress() {
-    return progress_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -241,10 +243,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    if (sourceBackupInfo_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(2, getSourceBackupInfo());
     }
-    if (progress_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(3, getProgress());
     }
     getUnknownFields().writeTo(output);
@@ -259,10 +261,10 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    if (sourceBackupInfo_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSourceBackupInfo());
     }
-    if (progress_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getProgress());
     }
     size += getUnknownFields().getSerializedSize();
@@ -441,10 +443,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.CopyBackupMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getSourceBackupInfoFieldBuilder();
+        getProgressFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -501,13 +513,17 @@ private void buildPartial0(com.google.bigtable.admin.v2.CopyBackupMetadata resul
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.name_ = name_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.sourceBackupInfo_ =
             sourceBackupInfoBuilder_ == null ? sourceBackupInfo_ : sourceBackupInfoBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.progress_ = progressBuilder_ == null ? progress_ : progressBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -850,8 +866,10 @@ public Builder mergeSourceBackupInfo(com.google.bigtable.admin.v2.BackupInfo val
       } else {
         sourceBackupInfoBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (sourceBackupInfo_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1044,8 +1062,10 @@ public Builder mergeProgress(com.google.bigtable.admin.v2.OperationProgress valu
       } else {
         progressBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (progress_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupMetadataOrBuilder.java
index 4db4fc2859..0440477a61 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CopyBackupMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupRequest.java
index 81b1375cec..143791cfd8 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -65,6 +66,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.CopyBackupRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int PARENT_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -272,7 +274,7 @@ public com.google.protobuf.ByteString getSourceBackupBytes() {
    */
   @java.lang.Override
   public boolean hasExpireTime() {
-    return expireTime_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -336,7 +338,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceBackup_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 3, sourceBackup_);
     }
-    if (expireTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(4, getExpireTime());
     }
     getUnknownFields().writeTo(output);
@@ -357,7 +359,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceBackup_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, sourceBackup_);
     }
-    if (expireTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getExpireTime());
     }
     size += getUnknownFields().getSerializedSize();
@@ -534,10 +536,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.CopyBackupRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getExpireTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -597,9 +608,12 @@ private void buildPartial0(com.google.bigtable.admin.v2.CopyBackupRequest result
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.sourceBackup_ = sourceBackup_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.expireTime_ = expireTimeBuilder_ == null ? expireTime_ : expireTimeBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1264,8 +1278,10 @@ public Builder mergeExpireTime(com.google.protobuf.Timestamp value) {
       } else {
         expireTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000008;
-      onChanged();
+      if (expireTime_ != null) {
+        bitField0_ |= 0x00000008;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupRequestOrBuilder.java
index 8798791241..0df36ddffa 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CopyBackupRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CopyBackupRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateAppProfileRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateAppProfileRequest.java
index 8cd38493be..d78e2e99c8 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateAppProfileRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateAppProfileRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -63,6 +64,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.CreateAppProfileRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int PARENT_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -193,7 +195,7 @@ public com.google.protobuf.ByteString getAppProfileIdBytes() {
    */
   @java.lang.Override
   public boolean hasAppProfile() {
-    return appProfile_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -272,7 +274,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(appProfileId_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, appProfileId_);
     }
-    if (appProfile_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(3, getAppProfile());
     }
     if (ignoreWarnings_ != false) {
@@ -293,7 +295,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(appProfileId_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, appProfileId_);
     }
-    if (appProfile_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getAppProfile());
     }
     if (ignoreWarnings_ != false) {
@@ -472,10 +474,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.CreateAppProfileRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getAppProfileFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -532,12 +543,15 @@ private void buildPartial0(com.google.bigtable.admin.v2.CreateAppProfileRequest
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.appProfileId_ = appProfileId_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.appProfile_ = appProfileBuilder_ == null ? appProfile_ : appProfileBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.ignoreWarnings_ = ignoreWarnings_;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1025,8 +1039,10 @@ public Builder mergeAppProfile(com.google.bigtable.admin.v2.AppProfile value) {
       } else {
         appProfileBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (appProfile_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateAppProfileRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateAppProfileRequestOrBuilder.java
index 40dfcafaec..decf83ae89 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateAppProfileRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateAppProfileRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CreateAppProfileRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupMetadata.java
index 6454d5a990..4e8101cf0c 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -64,6 +65,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.CreateBackupMetadata.Builder.class);
   }
 
+  private int bitField0_;
   public static final int NAME_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -181,7 +183,7 @@ public com.google.protobuf.ByteString getSourceTableBytes() {
    */
   @java.lang.Override
   public boolean hasStartTime() {
-    return startTime_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -227,7 +229,7 @@ public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasEndTime() {
-    return endTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -278,10 +280,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceTable_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, sourceTable_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(3, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(4, getEndTime());
     }
     getUnknownFields().writeTo(output);
@@ -299,10 +301,10 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceTable_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, sourceTable_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getEndTime());
     }
     size += getUnknownFields().getSerializedSize();
@@ -484,10 +486,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.CreateBackupMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getStartTimeFieldBuilder();
+        getEndTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -548,12 +560,16 @@ private void buildPartial0(com.google.bigtable.admin.v2.CreateBackupMetadata res
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.sourceTable_ = sourceTable_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.startTime_ = startTimeBuilder_ == null ? startTime_ : startTimeBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.endTime_ = endTimeBuilder_ == null ? endTime_ : endTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -999,8 +1015,10 @@ public Builder mergeStartTime(com.google.protobuf.Timestamp value) {
       } else {
         startTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (startTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1178,8 +1196,10 @@ public Builder mergeEndTime(com.google.protobuf.Timestamp value) {
       } else {
         endTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000008;
-      onChanged();
+      if (endTime_ != null) {
+        bitField0_ |= 0x00000008;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupMetadataOrBuilder.java
index 52514857db..a15750db1a 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CreateBackupMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupRequest.java
index 08e7d30452..8e337b7961 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -64,6 +65,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.CreateBackupRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int PARENT_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -200,7 +202,7 @@ public com.google.protobuf.ByteString getBackupIdBytes() {
    */
   @java.lang.Override
   public boolean hasBackup() {
-    return backup_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -253,7 +255,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(backupId_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, backupId_);
     }
-    if (backup_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(3, getBackup());
     }
     getUnknownFields().writeTo(output);
@@ -271,7 +273,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(backupId_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, backupId_);
     }
-    if (backup_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getBackup());
     }
     size += getUnknownFields().getSerializedSize();
@@ -445,10 +447,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.CreateBackupRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getBackupFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -504,9 +515,12 @@ private void buildPartial0(com.google.bigtable.admin.v2.CreateBackupRequest resu
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.backupId_ = backupId_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.backup_ = backupBuilder_ == null ? backup_ : backupBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -993,8 +1007,10 @@ public Builder mergeBackup(com.google.bigtable.admin.v2.Backup value) {
       } else {
         backupBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (backup_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupRequestOrBuilder.java
index 5abc0258c9..aff45c3c3f 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateBackupRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CreateBackupRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterMetadata.java
index d65730c7d7..b8365ea755 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -52,7 +53,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
 
   @SuppressWarnings({"rawtypes"})
   @java.lang.Override
-  protected com.google.protobuf.MapField internalGetMapField(int number) {
+  protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+      int number) {
     switch (number) {
       case 4:
         return internalGetTables();
@@ -1053,6 +1055,7 @@ public com.google.protobuf.Parser<TableProgress> getParserForType() {
     }
   }
 
+  private int bitField0_;
   public static final int ORIGINAL_REQUEST_FIELD_NUMBER = 1;
   private com.google.bigtable.admin.v2.CreateClusterRequest originalRequest_;
   /**
@@ -1068,7 +1071,7 @@ public com.google.protobuf.Parser<TableProgress> getParserForType() {
    */
   @java.lang.Override
   public boolean hasOriginalRequest() {
-    return originalRequest_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -1118,7 +1121,7 @@ public com.google.bigtable.admin.v2.CreateClusterRequestOrBuilder getOriginalReq
    */
   @java.lang.Override
   public boolean hasRequestTime() {
-    return requestTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -1164,7 +1167,7 @@ public com.google.protobuf.TimestampOrBuilder getRequestTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasFinishTime() {
-    return finishTime_ != null;
+    return ((bitField0_ & 0x00000004) != 0);
   }
   /**
    *
@@ -1367,13 +1370,13 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getOriginalRequest());
     }
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       output.writeMessage(3, getFinishTime());
     }
     com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
@@ -1387,13 +1390,13 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOriginalRequest());
     }
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getFinishTime());
     }
     for (java.util.Map.Entry<
@@ -1584,7 +1587,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     @SuppressWarnings({"rawtypes"})
-    protected com.google.protobuf.MapField internalGetMapField(int number) {
+    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+        int number) {
       switch (number) {
         case 4:
           return internalGetTables();
@@ -1594,7 +1598,8 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
     }
 
     @SuppressWarnings({"rawtypes"})
-    protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
+    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
+        int number) {
       switch (number) {
         case 4:
           return internalGetMutableTables();
@@ -1614,10 +1619,21 @@ protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
     }
 
     // Construct using com.google.bigtable.admin.v2.CreateClusterMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getOriginalRequestFieldBuilder();
+        getRequestTimeFieldBuilder();
+        getFinishTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -1676,21 +1692,25 @@ public com.google.bigtable.admin.v2.CreateClusterMetadata buildPartial() {
 
     private void buildPartial0(com.google.bigtable.admin.v2.CreateClusterMetadata result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.originalRequest_ =
             originalRequestBuilder_ == null ? originalRequest_ : originalRequestBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.requestTime_ =
             requestTimeBuilder_ == null ? requestTime_ : requestTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.finishTime_ = finishTimeBuilder_ == null ? finishTime_ : finishTimeBuilder_.build();
+        to_bitField0_ |= 0x00000004;
       }
       if (((from_bitField0_ & 0x00000008) != 0)) {
-        result.tables_ = internalGetTables();
-        result.tables_.makeImmutable();
+        result.tables_ = internalGetTables().build(TablesDefaultEntryHolder.defaultEntry);
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1804,7 +1824,7 @@ public Builder mergeFrom(
                             TablesDefaultEntryHolder.defaultEntry.getParserForType(),
                             extensionRegistry);
                 internalGetMutableTables()
-                    .getMutableMap()
+                    .ensureBuilderMap()
                     .put(tables__.getKey(), tables__.getValue());
                 bitField0_ |= 0x00000008;
                 break;
@@ -1932,8 +1952,10 @@ public Builder mergeOriginalRequest(com.google.bigtable.admin.v2.CreateClusterRe
       } else {
         originalRequestBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (originalRequest_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -2116,8 +2138,10 @@ public Builder mergeRequestTime(com.google.protobuf.Timestamp value) {
       } else {
         requestTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (requestTime_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -2299,8 +2323,10 @@ public Builder mergeFinishTime(com.google.protobuf.Timestamp value) {
       } else {
         finishTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (finishTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -2380,27 +2406,58 @@ public com.google.protobuf.TimestampOrBuilder getFinishTimeOrBuilder() {
       return finishTimeBuilder_;
     }
 
-    private com.google.protobuf.MapField<
-            java.lang.String, com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress>
+    private static final class TablesConverter
+        implements com.google.protobuf.MapFieldBuilder.Converter<
+            java.lang.String,
+            com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgressOrBuilder,
+            com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress> {
+      @java.lang.Override
+      public com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress build(
+          com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgressOrBuilder val) {
+        if (val instanceof com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress) {
+          return (com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress) val;
+        }
+        return ((com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress.Builder) val)
+            .build();
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.MapEntry<
+              java.lang.String, com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress>
+          defaultEntry() {
+        return TablesDefaultEntryHolder.defaultEntry;
+      }
+    };
+
+    private static final TablesConverter tablesConverter = new TablesConverter();
+
+    private com.google.protobuf.MapFieldBuilder<
+            java.lang.String,
+            com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgressOrBuilder,
+            com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress,
+            com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress.Builder>
         tables_;
 
-    private com.google.protobuf.MapField<
-            java.lang.String, com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress>
+    private com.google.protobuf.MapFieldBuilder<
+            java.lang.String,
+            com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgressOrBuilder,
+            com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress,
+            com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress.Builder>
         internalGetTables() {
       if (tables_ == null) {
-        return com.google.protobuf.MapField.emptyMapField(TablesDefaultEntryHolder.defaultEntry);
+        return new com.google.protobuf.MapFieldBuilder<>(tablesConverter);
       }
       return tables_;
     }
 
-    private com.google.protobuf.MapField<
-            java.lang.String, com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress>
+    private com.google.protobuf.MapFieldBuilder<
+            java.lang.String,
+            com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgressOrBuilder,
+            com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress,
+            com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress.Builder>
         internalGetMutableTables() {
       if (tables_ == null) {
-        tables_ = com.google.protobuf.MapField.newMapField(TablesDefaultEntryHolder.defaultEntry);
-      }
-      if (!tables_.isMutable()) {
-        tables_ = tables_.copy();
+        tables_ = new com.google.protobuf.MapFieldBuilder<>(tablesConverter);
       }
       bitField0_ |= 0x00000008;
       onChanged();
@@ -2408,7 +2465,7 @@ public com.google.protobuf.TimestampOrBuilder getFinishTimeOrBuilder() {
     }
 
     public int getTablesCount() {
-      return internalGetTables().getMap().size();
+      return internalGetTables().ensureBuilderMap().size();
     }
     /**
      *
@@ -2433,7 +2490,7 @@ public boolean containsTables(java.lang.String key) {
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      return internalGetTables().getMap().containsKey(key);
+      return internalGetTables().ensureBuilderMap().containsKey(key);
     }
     /** Use {@link #getTablesMap()} instead. */
     @java.lang.Override
@@ -2465,7 +2522,7 @@ public boolean containsTables(java.lang.String key) {
     public java.util.Map<
             java.lang.String, com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress>
         getTablesMap() {
-      return internalGetTables().getMap();
+      return internalGetTables().getImmutableMap();
     }
     /**
      *
@@ -2495,9 +2552,10 @@ public boolean containsTables(java.lang.String key) {
         throw new NullPointerException("map key");
       }
       java.util.Map<
-              java.lang.String, com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress>
-          map = internalGetTables().getMap();
-      return map.containsKey(key) ? map.get(key) : defaultValue;
+              java.lang.String,
+              com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgressOrBuilder>
+          map = internalGetMutableTables().ensureBuilderMap();
+      return map.containsKey(key) ? tablesConverter.build(map.get(key)) : defaultValue;
     }
     /**
      *
@@ -2524,17 +2582,18 @@ public com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress getTable
         throw new NullPointerException("map key");
       }
       java.util.Map<
-              java.lang.String, com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress>
-          map = internalGetTables().getMap();
+              java.lang.String,
+              com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgressOrBuilder>
+          map = internalGetMutableTables().ensureBuilderMap();
       if (!map.containsKey(key)) {
         throw new java.lang.IllegalArgumentException();
       }
-      return map.get(key);
+      return tablesConverter.build(map.get(key));
     }
 
     public Builder clearTables() {
       bitField0_ = (bitField0_ & ~0x00000008);
-      internalGetMutableTables().getMutableMap().clear();
+      internalGetMutableTables().clear();
       return this;
     }
     /**
@@ -2559,7 +2618,7 @@ public Builder removeTables(java.lang.String key) {
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      internalGetMutableTables().getMutableMap().remove(key);
+      internalGetMutableTables().ensureBuilderMap().remove(key);
       return this;
     }
     /** Use alternate mutation accessors instead. */
@@ -2568,7 +2627,7 @@ public Builder removeTables(java.lang.String key) {
             java.lang.String, com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress>
         getMutableTables() {
       bitField0_ |= 0x00000008;
-      return internalGetMutableTables().getMutableMap();
+      return internalGetMutableTables().ensureMessageMap();
     }
     /**
      *
@@ -2597,7 +2656,7 @@ public Builder putTables(
       if (value == null) {
         throw new NullPointerException("map value");
       }
-      internalGetMutableTables().getMutableMap().put(key, value);
+      internalGetMutableTables().ensureBuilderMap().put(key, value);
       bitField0_ |= 0x00000008;
       return this;
     }
@@ -2623,10 +2682,54 @@ public Builder putAllTables(
         java.util.Map<
                 java.lang.String, com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress>
             values) {
-      internalGetMutableTables().getMutableMap().putAll(values);
+      for (java.util.Map.Entry<
+              java.lang.String, com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress>
+          e : values.entrySet()) {
+        if (e.getKey() == null || e.getValue() == null) {
+          throw new NullPointerException();
+        }
+      }
+      internalGetMutableTables().ensureBuilderMap().putAll(values);
       bitField0_ |= 0x00000008;
       return this;
     }
+    /**
+     *
+     *
+     * <pre>
+     * Keys: the full `name` of each table that existed in the instance when
+     * CreateCluster was first called, i.e.
+     * `projects/&lt;project&gt;/instances/&lt;instance&gt;/tables/&lt;table&gt;`. Any table added
+     * to the instance by a later API call will be created in the new cluster by
+     * that API call, not this one.
+     *
+     * Values: information on how much of a table's data has been copied to the
+     * newly-created cluster so far.
+     * </pre>
+     *
+     * <code>
+     * map&lt;string, .google.bigtable.admin.v2.CreateClusterMetadata.TableProgress&gt; tables = 4;
+     * </code>
+     */
+    public com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress.Builder
+        putTablesBuilderIfAbsent(java.lang.String key) {
+      java.util.Map<
+              java.lang.String,
+              com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgressOrBuilder>
+          builderMap = internalGetMutableTables().ensureBuilderMap();
+      com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgressOrBuilder entry =
+          builderMap.get(key);
+      if (entry == null) {
+        entry = com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress.newBuilder();
+        builderMap.put(key, entry);
+      }
+      if (entry instanceof com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress) {
+        entry =
+            ((com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress) entry).toBuilder();
+        builderMap.put(key, entry);
+      }
+      return (com.google.bigtable.admin.v2.CreateClusterMetadata.TableProgress.Builder) entry;
+    }
 
     @java.lang.Override
     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterMetadataOrBuilder.java
index 77612dc2af..7573b4942f 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CreateClusterMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterRequest.java
index 6ab33fdae0..0c52170cc0 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -63,6 +64,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.CreateClusterRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int PARENT_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -192,7 +194,7 @@ public com.google.protobuf.ByteString getClusterIdBytes() {
    */
   @java.lang.Override
   public boolean hasCluster() {
-    return cluster_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -247,7 +249,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, clusterId_);
     }
-    if (cluster_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(3, getCluster());
     }
     getUnknownFields().writeTo(output);
@@ -265,7 +267,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clusterId_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, clusterId_);
     }
-    if (cluster_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getCluster());
     }
     size += getUnknownFields().getSerializedSize();
@@ -438,10 +440,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.CreateClusterRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getClusterFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -497,9 +508,12 @@ private void buildPartial0(com.google.bigtable.admin.v2.CreateClusterRequest res
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.clusterId_ = clusterId_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.cluster_ = clusterBuilder_ == null ? cluster_ : clusterBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -978,8 +992,10 @@ public Builder mergeCluster(com.google.bigtable.admin.v2.Cluster value) {
       } else {
         clusterBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (cluster_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterRequestOrBuilder.java
index f7db31cd02..3eaf7db6df 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateClusterRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CreateClusterRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceMetadata.java
index bf9fd6255f..f5e3fa3d92 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -60,6 +61,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.CreateInstanceMetadata.Builder.class);
   }
 
+  private int bitField0_;
   public static final int ORIGINAL_REQUEST_FIELD_NUMBER = 1;
   private com.google.bigtable.admin.v2.CreateInstanceRequest originalRequest_;
   /**
@@ -75,7 +77,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasOriginalRequest() {
-    return originalRequest_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -125,7 +127,7 @@ public com.google.bigtable.admin.v2.CreateInstanceRequestOrBuilder getOriginalRe
    */
   @java.lang.Override
   public boolean hasRequestTime() {
-    return requestTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -171,7 +173,7 @@ public com.google.protobuf.TimestampOrBuilder getRequestTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasFinishTime() {
-    return finishTime_ != null;
+    return ((bitField0_ & 0x00000004) != 0);
   }
   /**
    *
@@ -216,13 +218,13 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getOriginalRequest());
     }
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       output.writeMessage(3, getFinishTime());
     }
     getUnknownFields().writeTo(output);
@@ -234,13 +236,13 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOriginalRequest());
     }
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getFinishTime());
     }
     size += getUnknownFields().getSerializedSize();
@@ -423,10 +425,21 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.CreateInstanceMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getOriginalRequestFieldBuilder();
+        getRequestTimeFieldBuilder();
+        getFinishTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -484,17 +497,22 @@ public com.google.bigtable.admin.v2.CreateInstanceMetadata buildPartial() {
 
     private void buildPartial0(com.google.bigtable.admin.v2.CreateInstanceMetadata result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.originalRequest_ =
             originalRequestBuilder_ == null ? originalRequest_ : originalRequestBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.requestTime_ =
             requestTimeBuilder_ == null ? requestTime_ : requestTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.finishTime_ = finishTimeBuilder_ == null ? finishTime_ : finishTimeBuilder_.build();
+        to_bitField0_ |= 0x00000004;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -719,8 +737,10 @@ public Builder mergeOriginalRequest(com.google.bigtable.admin.v2.CreateInstanceR
       } else {
         originalRequestBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (originalRequest_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -903,8 +923,10 @@ public Builder mergeRequestTime(com.google.protobuf.Timestamp value) {
       } else {
         requestTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (requestTime_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1086,8 +1108,10 @@ public Builder mergeFinishTime(com.google.protobuf.Timestamp value) {
       } else {
         finishTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (finishTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceMetadataOrBuilder.java
index 753333e325..8c6ffdb10d 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CreateInstanceMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceRequest.java
index 2f72aed1b7..f9f33776a5 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -55,7 +56,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
 
   @SuppressWarnings({"rawtypes"})
   @java.lang.Override
-  protected com.google.protobuf.MapField internalGetMapField(int number) {
+  protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+      int number) {
     switch (number) {
       case 4:
         return internalGetClusters();
@@ -74,6 +76,7 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
             com.google.bigtable.admin.v2.CreateInstanceRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int PARENT_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -204,7 +207,7 @@ public com.google.protobuf.ByteString getInstanceIdBytes() {
    */
   @java.lang.Override
   public boolean hasInstance() {
-    return instance_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -398,7 +401,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(instanceId_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, instanceId_);
     }
-    if (instance_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(3, getInstance());
     }
     com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
@@ -418,7 +421,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(instanceId_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, instanceId_);
     }
-    if (instance_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getInstance());
     }
     for (java.util.Map.Entry<java.lang.String, com.google.bigtable.admin.v2.Cluster> entry :
@@ -597,7 +600,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     @SuppressWarnings({"rawtypes"})
-    protected com.google.protobuf.MapField internalGetMapField(int number) {
+    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+        int number) {
       switch (number) {
         case 4:
           return internalGetClusters();
@@ -607,7 +611,8 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
     }
 
     @SuppressWarnings({"rawtypes"})
-    protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
+    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
+        int number) {
       switch (number) {
         case 4:
           return internalGetMutableClusters();
@@ -627,10 +632,19 @@ protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
     }
 
     // Construct using com.google.bigtable.admin.v2.CreateInstanceRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getInstanceFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -687,13 +701,15 @@ private void buildPartial0(com.google.bigtable.admin.v2.CreateInstanceRequest re
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.instanceId_ = instanceId_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.instance_ = instanceBuilder_ == null ? instance_ : instanceBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000008) != 0)) {
-        result.clusters_ = internalGetClusters();
-        result.clusters_.makeImmutable();
+        result.clusters_ = internalGetClusters().build(ClustersDefaultEntryHolder.defaultEntry);
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -809,7 +825,7 @@ public Builder mergeFrom(
                             ClustersDefaultEntryHolder.defaultEntry.getParserForType(),
                             extensionRegistry);
                 internalGetMutableClusters()
-                    .getMutableMap()
+                    .ensureBuilderMap()
                     .put(clusters__.getKey(), clusters__.getValue());
                 bitField0_ |= 0x00000008;
                 break;
@@ -1187,8 +1203,10 @@ public Builder mergeInstance(com.google.bigtable.admin.v2.Instance value) {
       } else {
         instanceBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (instance_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1280,25 +1298,56 @@ public com.google.bigtable.admin.v2.InstanceOrBuilder getInstanceOrBuilder() {
       return instanceBuilder_;
     }
 
-    private com.google.protobuf.MapField<java.lang.String, com.google.bigtable.admin.v2.Cluster>
+    private static final class ClustersConverter
+        implements com.google.protobuf.MapFieldBuilder.Converter<
+            java.lang.String,
+            com.google.bigtable.admin.v2.ClusterOrBuilder,
+            com.google.bigtable.admin.v2.Cluster> {
+      @java.lang.Override
+      public com.google.bigtable.admin.v2.Cluster build(
+          com.google.bigtable.admin.v2.ClusterOrBuilder val) {
+        if (val instanceof com.google.bigtable.admin.v2.Cluster) {
+          return (com.google.bigtable.admin.v2.Cluster) val;
+        }
+        return ((com.google.bigtable.admin.v2.Cluster.Builder) val).build();
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.MapEntry<java.lang.String, com.google.bigtable.admin.v2.Cluster>
+          defaultEntry() {
+        return ClustersDefaultEntryHolder.defaultEntry;
+      }
+    };
+
+    private static final ClustersConverter clustersConverter = new ClustersConverter();
+
+    private com.google.protobuf.MapFieldBuilder<
+            java.lang.String,
+            com.google.bigtable.admin.v2.ClusterOrBuilder,
+            com.google.bigtable.admin.v2.Cluster,
+            com.google.bigtable.admin.v2.Cluster.Builder>
         clusters_;
 
-    private com.google.protobuf.MapField<java.lang.String, com.google.bigtable.admin.v2.Cluster>
+    private com.google.protobuf.MapFieldBuilder<
+            java.lang.String,
+            com.google.bigtable.admin.v2.ClusterOrBuilder,
+            com.google.bigtable.admin.v2.Cluster,
+            com.google.bigtable.admin.v2.Cluster.Builder>
         internalGetClusters() {
       if (clusters_ == null) {
-        return com.google.protobuf.MapField.emptyMapField(ClustersDefaultEntryHolder.defaultEntry);
+        return new com.google.protobuf.MapFieldBuilder<>(clustersConverter);
       }
       return clusters_;
     }
 
-    private com.google.protobuf.MapField<java.lang.String, com.google.bigtable.admin.v2.Cluster>
+    private com.google.protobuf.MapFieldBuilder<
+            java.lang.String,
+            com.google.bigtable.admin.v2.ClusterOrBuilder,
+            com.google.bigtable.admin.v2.Cluster,
+            com.google.bigtable.admin.v2.Cluster.Builder>
         internalGetMutableClusters() {
       if (clusters_ == null) {
-        clusters_ =
-            com.google.protobuf.MapField.newMapField(ClustersDefaultEntryHolder.defaultEntry);
-      }
-      if (!clusters_.isMutable()) {
-        clusters_ = clusters_.copy();
+        clusters_ = new com.google.protobuf.MapFieldBuilder<>(clustersConverter);
       }
       bitField0_ |= 0x00000008;
       onChanged();
@@ -1306,7 +1355,7 @@ public com.google.bigtable.admin.v2.InstanceOrBuilder getInstanceOrBuilder() {
     }
 
     public int getClustersCount() {
-      return internalGetClusters().getMap().size();
+      return internalGetClusters().ensureBuilderMap().size();
     }
     /**
      *
@@ -1328,7 +1377,7 @@ public boolean containsClusters(java.lang.String key) {
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      return internalGetClusters().getMap().containsKey(key);
+      return internalGetClusters().ensureBuilderMap().containsKey(key);
     }
     /** Use {@link #getClustersMap()} instead. */
     @java.lang.Override
@@ -1353,7 +1402,7 @@ public java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Cluster> get
      */
     @java.lang.Override
     public java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Cluster> getClustersMap() {
-      return internalGetClusters().getMap();
+      return internalGetClusters().getImmutableMap();
     }
     /**
      *
@@ -1378,9 +1427,9 @@ public java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Cluster> get
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Cluster> map =
-          internalGetClusters().getMap();
-      return map.containsKey(key) ? map.get(key) : defaultValue;
+      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.ClusterOrBuilder> map =
+          internalGetMutableClusters().ensureBuilderMap();
+      return map.containsKey(key) ? clustersConverter.build(map.get(key)) : defaultValue;
     }
     /**
      *
@@ -1402,17 +1451,17 @@ public com.google.bigtable.admin.v2.Cluster getClustersOrThrow(java.lang.String
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Cluster> map =
-          internalGetClusters().getMap();
+      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.ClusterOrBuilder> map =
+          internalGetMutableClusters().ensureBuilderMap();
       if (!map.containsKey(key)) {
         throw new java.lang.IllegalArgumentException();
       }
-      return map.get(key);
+      return clustersConverter.build(map.get(key));
     }
 
     public Builder clearClusters() {
       bitField0_ = (bitField0_ & ~0x00000008);
-      internalGetMutableClusters().getMutableMap().clear();
+      internalGetMutableClusters().clear();
       return this;
     }
     /**
@@ -1434,7 +1483,7 @@ public Builder removeClusters(java.lang.String key) {
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      internalGetMutableClusters().getMutableMap().remove(key);
+      internalGetMutableClusters().ensureBuilderMap().remove(key);
       return this;
     }
     /** Use alternate mutation accessors instead. */
@@ -1442,7 +1491,7 @@ public Builder removeClusters(java.lang.String key) {
     public java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Cluster>
         getMutableClusters() {
       bitField0_ |= 0x00000008;
-      return internalGetMutableClusters().getMutableMap();
+      return internalGetMutableClusters().ensureMessageMap();
     }
     /**
      *
@@ -1466,7 +1515,7 @@ public Builder putClusters(java.lang.String key, com.google.bigtable.admin.v2.Cl
       if (value == null) {
         throw new NullPointerException("map value");
       }
-      internalGetMutableClusters().getMutableMap().put(key, value);
+      internalGetMutableClusters().ensureBuilderMap().put(key, value);
       bitField0_ |= 0x00000008;
       return this;
     }
@@ -1487,10 +1536,46 @@ public Builder putClusters(java.lang.String key, com.google.bigtable.admin.v2.Cl
      */
     public Builder putAllClusters(
         java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Cluster> values) {
-      internalGetMutableClusters().getMutableMap().putAll(values);
+      for (java.util.Map.Entry<java.lang.String, com.google.bigtable.admin.v2.Cluster> e :
+          values.entrySet()) {
+        if (e.getKey() == null || e.getValue() == null) {
+          throw new NullPointerException();
+        }
+      }
+      internalGetMutableClusters().ensureBuilderMap().putAll(values);
       bitField0_ |= 0x00000008;
       return this;
     }
+    /**
+     *
+     *
+     * <pre>
+     * Required. The clusters to be created within the instance, mapped by desired
+     * cluster ID, e.g., just `mycluster` rather than
+     * `projects/myproject/instances/myinstance/clusters/mycluster`.
+     * Fields marked `OutputOnly` must be left blank.
+     * Currently, at most four clusters can be specified.
+     * </pre>
+     *
+     * <code>
+     * map&lt;string, .google.bigtable.admin.v2.Cluster&gt; clusters = 4 [(.google.api.field_behavior) = REQUIRED];
+     * </code>
+     */
+    public com.google.bigtable.admin.v2.Cluster.Builder putClustersBuilderIfAbsent(
+        java.lang.String key) {
+      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.ClusterOrBuilder> builderMap =
+          internalGetMutableClusters().ensureBuilderMap();
+      com.google.bigtable.admin.v2.ClusterOrBuilder entry = builderMap.get(key);
+      if (entry == null) {
+        entry = com.google.bigtable.admin.v2.Cluster.newBuilder();
+        builderMap.put(key, entry);
+      }
+      if (entry instanceof com.google.bigtable.admin.v2.Cluster) {
+        entry = ((com.google.bigtable.admin.v2.Cluster) entry).toBuilder();
+        builderMap.put(key, entry);
+      }
+      return (com.google.bigtable.admin.v2.Cluster.Builder) entry;
+    }
 
     @java.lang.Override
     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceRequestOrBuilder.java
index ead147c793..66559a11d7 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateInstanceRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CreateInstanceRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotMetadata.java
index a11c286bae..f70a143351 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -66,6 +67,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.CreateTableFromSnapshotMetadata.Builder.class);
   }
 
+  private int bitField0_;
   public static final int ORIGINAL_REQUEST_FIELD_NUMBER = 1;
   private com.google.bigtable.admin.v2.CreateTableFromSnapshotRequest originalRequest_;
   /**
@@ -82,7 +84,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasOriginalRequest() {
-    return originalRequest_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -135,7 +137,7 @@ public com.google.bigtable.admin.v2.CreateTableFromSnapshotRequest getOriginalRe
    */
   @java.lang.Override
   public boolean hasRequestTime() {
-    return requestTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -181,7 +183,7 @@ public com.google.protobuf.TimestampOrBuilder getRequestTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasFinishTime() {
-    return finishTime_ != null;
+    return ((bitField0_ & 0x00000004) != 0);
   }
   /**
    *
@@ -226,13 +228,13 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getOriginalRequest());
     }
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       output.writeMessage(3, getFinishTime());
     }
     getUnknownFields().writeTo(output);
@@ -244,13 +246,13 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOriginalRequest());
     }
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getFinishTime());
     }
     size += getUnknownFields().getSerializedSize();
@@ -439,10 +441,21 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.CreateTableFromSnapshotMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getOriginalRequestFieldBuilder();
+        getRequestTimeFieldBuilder();
+        getFinishTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -502,17 +515,22 @@ public com.google.bigtable.admin.v2.CreateTableFromSnapshotMetadata buildPartial
     private void buildPartial0(
         com.google.bigtable.admin.v2.CreateTableFromSnapshotMetadata result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.originalRequest_ =
             originalRequestBuilder_ == null ? originalRequest_ : originalRequestBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.requestTime_ =
             requestTimeBuilder_ == null ? requestTime_ : requestTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.finishTime_ = finishTimeBuilder_ == null ? finishTime_ : finishTimeBuilder_.build();
+        to_bitField0_ |= 0x00000004;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -746,8 +764,10 @@ public Builder mergeOriginalRequest(
       } else {
         originalRequestBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (originalRequest_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -935,8 +955,10 @@ public Builder mergeRequestTime(com.google.protobuf.Timestamp value) {
       } else {
         requestTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (requestTime_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1118,8 +1140,10 @@ public Builder mergeFinishTime(com.google.protobuf.Timestamp value) {
       } else {
         finishTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (finishTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotMetadataOrBuilder.java
index e183fbb2c0..65ea6aaf1f 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CreateTableFromSnapshotMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotRequest.java
index 8dc146a050..38f9ed5ed9 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotRequestOrBuilder.java
index 1f6411755c..f52ea3fc84 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableFromSnapshotRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CreateTableFromSnapshotRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableRequest.java
index 4f6879f629..f37b064318 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -609,6 +610,7 @@ public com.google.bigtable.admin.v2.CreateTableRequest.Split getDefaultInstanceF
     }
   }
 
+  private int bitField0_;
   public static final int PARENT_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -737,7 +739,7 @@ public com.google.protobuf.ByteString getTableIdBytes() {
    */
   @java.lang.Override
   public boolean hasTable() {
-    return table_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -938,7 +940,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tableId_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, tableId_);
     }
-    if (table_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(3, getTable());
     }
     for (int i = 0; i < initialSplits_.size(); i++) {
@@ -959,7 +961,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tableId_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, tableId_);
     }
-    if (table_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getTable());
     }
     for (int i = 0; i < initialSplits_.size(); i++) {
@@ -1141,10 +1143,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.CreateTableRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getTableFieldBuilder();
+        getInitialSplitsFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -1221,9 +1233,12 @@ private void buildPartial0(com.google.bigtable.admin.v2.CreateTableRequest resul
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.tableId_ = tableId_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.table_ = tableBuilder_ == null ? table_ : tableBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1731,8 +1746,10 @@ public Builder mergeTable(com.google.bigtable.admin.v2.Table value) {
       } else {
         tableBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (table_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableRequestOrBuilder.java
index 7f71d97f4d..03c6aebdca 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/CreateTableRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface CreateTableRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteAppProfileRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteAppProfileRequest.java
index c0ab23be17..14b5b7d7c6 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteAppProfileRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteAppProfileRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteAppProfileRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteAppProfileRequestOrBuilder.java
index be6c85a31c..62c8d6ba9c 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteAppProfileRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteAppProfileRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface DeleteAppProfileRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteBackupRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteBackupRequest.java
index 4c0a863e67..fac285d51e 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteBackupRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteBackupRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteBackupRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteBackupRequestOrBuilder.java
index 8631730506..7900704a34 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteBackupRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteBackupRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface DeleteBackupRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteClusterRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteClusterRequest.java
index 79ce3f5036..c83608c681 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteClusterRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteClusterRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteClusterRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteClusterRequestOrBuilder.java
index 3664c02ece..75f4cc83ac 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteClusterRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteClusterRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface DeleteClusterRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteInstanceRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteInstanceRequest.java
index 7b112fbb4f..9a2cd2560d 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteInstanceRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteInstanceRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteInstanceRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteInstanceRequestOrBuilder.java
index 0e10e88044..ddf2047d3e 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteInstanceRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteInstanceRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface DeleteInstanceRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteSnapshotRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteSnapshotRequest.java
index 2f2cef6ece..bae2d2c515 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteSnapshotRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteSnapshotRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteSnapshotRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteSnapshotRequestOrBuilder.java
index ad2d3f6095..b5692daf2a 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteSnapshotRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteSnapshotRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface DeleteSnapshotRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteTableRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteTableRequest.java
index e064640a70..a7fb28c6dc 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteTableRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteTableRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteTableRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteTableRequestOrBuilder.java
index c40d45c463..c7ce57e98a 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteTableRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DeleteTableRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface DeleteTableRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DropRowRangeRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DropRowRangeRequest.java
index c585bbd331..b055e66eaa 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DropRowRangeRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DropRowRangeRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DropRowRangeRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DropRowRangeRequestOrBuilder.java
index ce407e83a8..a76c9db205 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DropRowRangeRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DropRowRangeRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface DropRowRangeRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/EncryptionInfo.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/EncryptionInfo.java
index 340aafee8f..0f4563204f 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/EncryptionInfo.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/EncryptionInfo.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -239,6 +240,7 @@ private EncryptionType(int value) {
     // @@protoc_insertion_point(enum_scope:google.bigtable.admin.v2.EncryptionInfo.EncryptionType)
   }
 
+  private int bitField0_;
   public static final int ENCRYPTION_TYPE_FIELD_NUMBER = 3;
   private int encryptionType_ = 0;
   /**
@@ -298,7 +300,7 @@ public com.google.bigtable.admin.v2.EncryptionInfo.EncryptionType getEncryptionT
    */
   @java.lang.Override
   public boolean hasEncryptionStatus() {
-    return encryptionStatus_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -418,7 +420,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
             .getNumber()) {
       output.writeEnum(3, encryptionType_);
     }
-    if (encryptionStatus_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(4, getEncryptionStatus());
     }
     getUnknownFields().writeTo(output);
@@ -438,7 +440,7 @@ public int getSerializedSize() {
             .getNumber()) {
       size += com.google.protobuf.CodedOutputStream.computeEnumSize(3, encryptionType_);
     }
-    if (encryptionStatus_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getEncryptionStatus());
     }
     size += getUnknownFields().getSerializedSize();
@@ -614,10 +616,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.EncryptionInfo.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getEncryptionStatusFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -670,13 +681,16 @@ private void buildPartial0(com.google.bigtable.admin.v2.EncryptionInfo result) {
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.encryptionType_ = encryptionType_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.encryptionStatus_ =
             encryptionStatusBuilder_ == null ? encryptionStatus_ : encryptionStatusBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.kmsKeyVersion_ = kmsKeyVersion_;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1017,8 +1031,10 @@ public Builder mergeEncryptionStatus(com.google.rpc.Status value) {
       } else {
         encryptionStatusBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (encryptionStatus_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/EncryptionInfoOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/EncryptionInfoOrBuilder.java
index efa53711be..8d26d147b1 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/EncryptionInfoOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/EncryptionInfoOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface EncryptionInfoOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GcRule.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GcRule.java
index 320665faa9..6b32cbef68 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GcRule.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GcRule.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GcRuleOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GcRuleOrBuilder.java
index 74bccb70e5..8d4aa21cdd 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GcRuleOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GcRuleOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface GcRuleOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenRequest.java
index e2f4e3c06b..6ede5988b4 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenRequestOrBuilder.java
index be6b5064b9..457434d0ae 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface GenerateConsistencyTokenRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenResponse.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenResponse.java
index 3d2f63d653..8be4814af2 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenResponse.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenResponseOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenResponseOrBuilder.java
index 7666a59de7..9b6a6bdb3b 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GenerateConsistencyTokenResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface GenerateConsistencyTokenResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetAppProfileRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetAppProfileRequest.java
index 8c915e5e3d..e6d3e54f1d 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetAppProfileRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetAppProfileRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetAppProfileRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetAppProfileRequestOrBuilder.java
index 4cef2ac9c0..60295c1e77 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetAppProfileRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetAppProfileRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface GetAppProfileRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetBackupRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetBackupRequest.java
index 255fab54d4..b766d63b2c 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetBackupRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetBackupRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetBackupRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetBackupRequestOrBuilder.java
index 88f557e3f7..13afce209d 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetBackupRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetBackupRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface GetBackupRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetClusterRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetClusterRequest.java
index f118e11d4d..51e90ec5f5 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetClusterRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetClusterRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetClusterRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetClusterRequestOrBuilder.java
index 9ce26358b8..d98d3258b7 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetClusterRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetClusterRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface GetClusterRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetInstanceRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetInstanceRequest.java
index 76f4de9c05..3f3e8225af 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetInstanceRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetInstanceRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetInstanceRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetInstanceRequestOrBuilder.java
index 44bad75c44..8a6b84c73e 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetInstanceRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetInstanceRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface GetInstanceRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetSnapshotRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetSnapshotRequest.java
index 7fdc107892..201b3e469a 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetSnapshotRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetSnapshotRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetSnapshotRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetSnapshotRequestOrBuilder.java
index 27d1062652..26fc65b858 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetSnapshotRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetSnapshotRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface GetSnapshotRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetTableRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetTableRequest.java
index 89ed012cdf..34c1b6b5a6 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetTableRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetTableRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetTableRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetTableRequestOrBuilder.java
index b6431f37ab..1554c7d4d0 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetTableRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/GetTableRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface GetTableRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/HotTablet.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/HotTablet.java
index dcc0f74a4e..ec777f1650 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/HotTablet.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/HotTablet.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -69,6 +70,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.HotTablet.Builder.class);
   }
 
+  private int bitField0_;
   public static final int NAME_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -191,7 +193,7 @@ public com.google.protobuf.ByteString getTableNameBytes() {
    */
   @java.lang.Override
   public boolean hasStartTime() {
-    return startTime_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -240,7 +242,7 @@ public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasEndTime() {
-    return endTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -416,10 +418,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tableName_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, tableName_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(3, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(4, getEndTime());
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(startKey_)) {
@@ -446,10 +448,10 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tableName_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, tableName_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getEndTime());
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(startKey_)) {
@@ -652,10 +654,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.HotTablet.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getStartTimeFieldBuilder();
+        getEndTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -719,11 +731,14 @@ private void buildPartial0(com.google.bigtable.admin.v2.HotTablet result) {
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.tableName_ = tableName_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.startTime_ = startTimeBuilder_ == null ? startTime_ : startTimeBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.endTime_ = endTimeBuilder_ == null ? endTime_ : endTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000010) != 0)) {
         result.startKey_ = startKey_;
@@ -734,6 +749,7 @@ private void buildPartial0(com.google.bigtable.admin.v2.HotTablet result) {
       if (((from_bitField0_ & 0x00000040) != 0)) {
         result.nodeCpuUsagePercent_ = nodeCpuUsagePercent_;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1224,8 +1240,10 @@ public Builder mergeStartTime(com.google.protobuf.Timestamp value) {
       } else {
         startTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (startTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1412,8 +1430,10 @@ public Builder mergeEndTime(com.google.protobuf.Timestamp value) {
       } else {
         endTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000008;
-      onChanged();
+      if (endTime_ != null) {
+        bitField0_ |= 0x00000008;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/HotTabletOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/HotTabletOrBuilder.java
index 6eb6e4718d..2cdb374ce3 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/HotTabletOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/HotTabletOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface HotTabletOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Instance.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Instance.java
index 2762a76b63..8e22d5d36d 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Instance.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Instance.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -60,7 +61,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
 
   @SuppressWarnings({"rawtypes"})
   @java.lang.Override
-  protected com.google.protobuf.MapField internalGetMapField(int number) {
+  protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+      int number) {
     switch (number) {
       case 5:
         return internalGetLabels();
@@ -746,7 +748,7 @@ public java.lang.String getLabelsOrThrow(java.lang.String key) {
    */
   @java.lang.Override
   public boolean hasCreateTime() {
-    return createTime_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -798,7 +800,7 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasSatisfiesPzs() {
-    return ((bitField0_ & 0x00000001) != 0);
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -844,10 +846,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     }
     com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
         output, internalGetLabels(), LabelsDefaultEntryHolder.defaultEntry, 5);
-    if (createTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(7, getCreateTime());
     }
-    if (((bitField0_ & 0x00000001) != 0)) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeBool(8, satisfiesPzs_);
     }
     getUnknownFields().writeTo(output);
@@ -881,10 +883,10 @@ public int getSerializedSize() {
               .build();
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, labels__);
     }
-    if (createTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getCreateTime());
     }
-    if (((bitField0_ & 0x00000001) != 0)) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeBoolSize(8, satisfiesPzs_);
     }
     size += getUnknownFields().getSerializedSize();
@@ -1067,7 +1069,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     @SuppressWarnings({"rawtypes"})
-    protected com.google.protobuf.MapField internalGetMapField(int number) {
+    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+        int number) {
       switch (number) {
         case 5:
           return internalGetLabels();
@@ -1077,7 +1080,8 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
     }
 
     @SuppressWarnings({"rawtypes"})
-    protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
+    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
+        int number) {
       switch (number) {
         case 5:
           return internalGetMutableLabels();
@@ -1097,10 +1101,19 @@ protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
     }
 
     // Construct using com.google.bigtable.admin.v2.Instance.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getCreateTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -1170,13 +1183,14 @@ private void buildPartial0(com.google.bigtable.admin.v2.Instance result) {
         result.labels_ = internalGetLabels();
         result.labels_.makeImmutable();
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000020) != 0)) {
         result.createTime_ = createTimeBuilder_ == null ? createTime_ : createTimeBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
-      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000040) != 0)) {
         result.satisfiesPzs_ = satisfiesPzs_;
-        to_bitField0_ |= 0x00000001;
+        to_bitField0_ |= 0x00000002;
       }
       result.bitField0_ |= to_bitField0_;
     }
@@ -2110,8 +2124,10 @@ public Builder mergeCreateTime(com.google.protobuf.Timestamp value) {
       } else {
         createTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000020;
-      onChanged();
+      if (createTime_ != null) {
+        bitField0_ |= 0x00000020;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceOrBuilder.java
index ff480b6a05..16a6fa7a70 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface InstanceOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceProto.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceProto.java
index 71eb0753c1..245868c4f7 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceProto.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceProto.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/instance.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public final class InstanceProto {
@@ -194,14 +195,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_bigtable_admin_v2_Instance_descriptor,
             new java.lang.String[] {
-              "Name",
-              "DisplayName",
-              "State",
-              "Type",
-              "Labels",
-              "CreateTime",
-              "SatisfiesPzs",
-              "SatisfiesPzs",
+              "Name", "DisplayName", "State", "Type", "Labels", "CreateTime", "SatisfiesPzs",
             });
     internal_static_google_bigtable_admin_v2_Instance_LabelsEntry_descriptor =
         internal_static_google_bigtable_admin_v2_Instance_descriptor.getNestedTypes().get(0);
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesRequest.java
index 314c66e047..155ee597ff 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesRequestOrBuilder.java
index 2da43eb4e6..272d949eb1 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListAppProfilesRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesResponse.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesResponse.java
index 87916f7eab..1c1df69e5f 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesResponse.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesResponseOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesResponseOrBuilder.java
index f4cb2005bc..8da4247d00 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListAppProfilesResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListAppProfilesResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsRequest.java
index 65cff9fc3a..d349f1275b 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsRequestOrBuilder.java
index 7472e327ff..e0fda6c207 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListBackupsRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsResponse.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsResponse.java
index 7acdaf26db..9bbadab82c 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsResponse.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsResponseOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsResponseOrBuilder.java
index ba793e87b3..adfe350c6d 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListBackupsResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListBackupsResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersRequest.java
index cada6ce4f4..5a8eb0677e 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersRequestOrBuilder.java
index 0281ced2e9..cf31d0d168 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListClustersRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersResponse.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersResponse.java
index 3962a36ff2..92ee271ba8 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersResponse.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersResponseOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersResponseOrBuilder.java
index 36ecc968ae..0409c94507 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListClustersResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListClustersResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsRequest.java
index a419662691..3f8c72a6be 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -63,6 +64,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.ListHotTabletsRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int PARENT_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -142,7 +144,7 @@ public com.google.protobuf.ByteString getParentBytes() {
    */
   @java.lang.Override
   public boolean hasStartTime() {
-    return startTime_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -198,7 +200,7 @@ public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasEndTime() {
-    return endTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -323,10 +325,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, parent_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(2, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(3, getEndTime());
     }
     if (pageSize_ != 0) {
@@ -347,10 +349,10 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, parent_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getEndTime());
     }
     if (pageSize_ != 0) {
@@ -540,10 +542,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.ListHotTabletsRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getStartTimeFieldBuilder();
+        getEndTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -602,11 +614,14 @@ private void buildPartial0(com.google.bigtable.admin.v2.ListHotTabletsRequest re
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.parent_ = parent_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.startTime_ = startTimeBuilder_ == null ? startTime_ : startTimeBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.endTime_ = endTimeBuilder_ == null ? endTime_ : endTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.pageSize_ = pageSize_;
@@ -614,6 +629,7 @@ private void buildPartial0(com.google.bigtable.admin.v2.ListHotTabletsRequest re
       if (((from_bitField0_ & 0x00000010) != 0)) {
         result.pageToken_ = pageToken_;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1007,8 +1023,10 @@ public Builder mergeStartTime(com.google.protobuf.Timestamp value) {
       } else {
         startTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (startTime_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1206,8 +1224,10 @@ public Builder mergeEndTime(com.google.protobuf.Timestamp value) {
       } else {
         endTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (endTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsRequestOrBuilder.java
index c1eaf73f50..11039f4dab 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListHotTabletsRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsResponse.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsResponse.java
index 7848fee0e0..4cf943daf0 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsResponse.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsResponseOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsResponseOrBuilder.java
index 8fa2a996a0..4eab6659d2 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListHotTabletsResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListHotTabletsResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesRequest.java
index 89c8f3b727..3820aa05b8 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesRequestOrBuilder.java
index 81bbcad465..be4c0678be 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListInstancesRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesResponse.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesResponse.java
index 49df993e0b..3e4453df46 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesResponse.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesResponseOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesResponseOrBuilder.java
index 891ab9762d..b48266404c 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListInstancesResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListInstancesResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsRequest.java
index 17360d6cdb..ff0e1423f3 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsRequestOrBuilder.java
index 02f2a5cf77..0adb1cc4ae 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListSnapshotsRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsResponse.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsResponse.java
index 2b3c5d9ade..3ccd04350a 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsResponse.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsResponseOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsResponseOrBuilder.java
index 9b3ad8f8e4..dbc35e4c79 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListSnapshotsResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListSnapshotsResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesRequest.java
index b5bc35c026..45c72afff6 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesRequestOrBuilder.java
index 35928301be..ddc0abfb94 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListTablesRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesResponse.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesResponse.java
index db9556cf11..0280155348 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesResponse.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesResponseOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesResponseOrBuilder.java
index 4bdd23a503..d3a65e2110 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ListTablesResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ListTablesResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ModifyColumnFamiliesRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ModifyColumnFamiliesRequest.java
index 8b1a500104..8681eb8b2c 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ModifyColumnFamiliesRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ModifyColumnFamiliesRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ModifyColumnFamiliesRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ModifyColumnFamiliesRequestOrBuilder.java
index 3f57376570..ed54bd1891 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ModifyColumnFamiliesRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/ModifyColumnFamiliesRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface ModifyColumnFamiliesRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OperationProgress.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OperationProgress.java
index 22611bb03e..0683215998 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OperationProgress.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OperationProgress.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/common.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -61,6 +62,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.OperationProgress.Builder.class);
   }
 
+  private int bitField0_;
   public static final int PROGRESS_PERCENT_FIELD_NUMBER = 1;
   private int progressPercent_ = 0;
   /**
@@ -95,7 +97,7 @@ public int getProgressPercent() {
    */
   @java.lang.Override
   public boolean hasStartTime() {
-    return startTime_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -142,7 +144,7 @@ public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasEndTime() {
-    return endTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -192,10 +194,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (progressPercent_ != 0) {
       output.writeInt32(1, progressPercent_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(2, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(3, getEndTime());
     }
     getUnknownFields().writeTo(output);
@@ -210,10 +212,10 @@ public int getSerializedSize() {
     if (progressPercent_ != 0) {
       size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, progressPercent_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getEndTime());
     }
     size += getUnknownFields().getSerializedSize();
@@ -392,10 +394,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.OperationProgress.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getStartTimeFieldBuilder();
+        getEndTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -452,12 +464,16 @@ private void buildPartial0(com.google.bigtable.admin.v2.OperationProgress result
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.progressPercent_ = progressPercent_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.startTime_ = startTimeBuilder_ == null ? startTime_ : startTimeBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.endTime_ = endTimeBuilder_ == null ? endTime_ : endTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -733,8 +749,10 @@ public Builder mergeStartTime(com.google.protobuf.Timestamp value) {
       } else {
         startTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (startTime_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -917,8 +935,10 @@ public Builder mergeEndTime(com.google.protobuf.Timestamp value) {
       } else {
         endTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (endTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OperationProgressOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OperationProgressOrBuilder.java
index 533483efaa..72aa285af0 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OperationProgressOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OperationProgressOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/common.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface OperationProgressOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OptimizeRestoredTableMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OptimizeRestoredTableMetadata.java
index 43478025c3..895a06b7e9 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OptimizeRestoredTableMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OptimizeRestoredTableMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -65,6 +66,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.OptimizeRestoredTableMetadata.Builder.class);
   }
 
+  private int bitField0_;
   public static final int NAME_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -131,7 +133,7 @@ public com.google.protobuf.ByteString getNameBytes() {
    */
   @java.lang.Override
   public boolean hasProgress() {
-    return progress_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -183,7 +185,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    if (progress_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(2, getProgress());
     }
     getUnknownFields().writeTo(output);
@@ -198,7 +200,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    if (progress_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getProgress());
     }
     size += getUnknownFields().getSerializedSize();
@@ -372,10 +374,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.OptimizeRestoredTableMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getProgressFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -427,9 +438,12 @@ private void buildPartial0(com.google.bigtable.admin.v2.OptimizeRestoredTableMet
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.name_ = name_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.progress_ = progressBuilder_ == null ? progress_ : progressBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -752,8 +766,10 @@ public Builder mergeProgress(com.google.bigtable.admin.v2.OperationProgress valu
       } else {
         progressBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (progress_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OptimizeRestoredTableMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OptimizeRestoredTableMetadataOrBuilder.java
index 387e0f7eab..aa088556e4 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OptimizeRestoredTableMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/OptimizeRestoredTableMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface OptimizeRestoredTableMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterMetadata.java
index ed8a5a57d5..ea05774473 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -60,6 +61,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.PartialUpdateClusterMetadata.Builder.class);
   }
 
+  private int bitField0_;
   public static final int REQUEST_TIME_FIELD_NUMBER = 1;
   private com.google.protobuf.Timestamp requestTime_;
   /**
@@ -75,7 +77,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasRequestTime() {
-    return requestTime_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -121,7 +123,7 @@ public com.google.protobuf.TimestampOrBuilder getRequestTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasFinishTime() {
-    return finishTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -167,7 +169,7 @@ public com.google.protobuf.TimestampOrBuilder getFinishTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasOriginalRequest() {
-    return originalRequest_ != null;
+    return ((bitField0_ & 0x00000004) != 0);
   }
   /**
    *
@@ -217,13 +219,13 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getFinishTime());
     }
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       output.writeMessage(3, getOriginalRequest());
     }
     getUnknownFields().writeTo(output);
@@ -235,13 +237,13 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getFinishTime());
     }
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getOriginalRequest());
     }
     size += getUnknownFields().getSerializedSize();
@@ -425,10 +427,21 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.PartialUpdateClusterMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getRequestTimeFieldBuilder();
+        getFinishTimeFieldBuilder();
+        getOriginalRequestFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -486,17 +499,22 @@ public com.google.bigtable.admin.v2.PartialUpdateClusterMetadata buildPartial()
 
     private void buildPartial0(com.google.bigtable.admin.v2.PartialUpdateClusterMetadata result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.requestTime_ =
             requestTimeBuilder_ == null ? requestTime_ : requestTimeBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.finishTime_ = finishTimeBuilder_ == null ? finishTime_ : finishTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.originalRequest_ =
             originalRequestBuilder_ == null ? originalRequest_ : originalRequestBuilder_.build();
+        to_bitField0_ |= 0x00000004;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -719,8 +737,10 @@ public Builder mergeRequestTime(com.google.protobuf.Timestamp value) {
       } else {
         requestTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (requestTime_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -902,8 +922,10 @@ public Builder mergeFinishTime(com.google.protobuf.Timestamp value) {
       } else {
         finishTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (finishTime_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1089,8 +1111,10 @@ public Builder mergeOriginalRequest(
       } else {
         originalRequestBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (originalRequest_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterMetadataOrBuilder.java
index 2769f03808..79e9c4ae36 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface PartialUpdateClusterMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterRequest.java
index 0b028d9e84..b9ec9d35ee 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -60,6 +61,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.PartialUpdateClusterRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int CLUSTER_FIELD_NUMBER = 1;
   private com.google.bigtable.admin.v2.Cluster cluster_;
   /**
@@ -77,7 +79,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasCluster() {
-    return cluster_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -128,7 +130,7 @@ public com.google.bigtable.admin.v2.ClusterOrBuilder getClusterOrBuilder() {
    */
   @java.lang.Override
   public boolean hasUpdateMask() {
-    return updateMask_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -175,10 +177,10 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (cluster_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getCluster());
     }
-    if (updateMask_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getUpdateMask());
     }
     getUnknownFields().writeTo(output);
@@ -190,10 +192,10 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (cluster_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getCluster());
     }
-    if (updateMask_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getUpdateMask());
     }
     size += getUnknownFields().getSerializedSize();
@@ -369,10 +371,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.PartialUpdateClusterRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getClusterFieldBuilder();
+        getUpdateMaskFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -425,12 +437,16 @@ public com.google.bigtable.admin.v2.PartialUpdateClusterRequest buildPartial() {
 
     private void buildPartial0(com.google.bigtable.admin.v2.PartialUpdateClusterRequest result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.cluster_ = clusterBuilder_ == null ? cluster_ : clusterBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.updateMask_ = updateMaskBuilder_ == null ? updateMask_ : updateMaskBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -659,8 +675,10 @@ public Builder mergeCluster(com.google.bigtable.admin.v2.Cluster value) {
       } else {
         clusterBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (cluster_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -859,8 +877,10 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
       } else {
         updateMaskBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (updateMask_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterRequestOrBuilder.java
index 528c569f8e..ff9f80571b 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateClusterRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface PartialUpdateClusterRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateInstanceRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateInstanceRequest.java
index e6852311f0..5bdba73c08 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateInstanceRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateInstanceRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -60,6 +61,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.PartialUpdateInstanceRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int INSTANCE_FIELD_NUMBER = 1;
   private com.google.bigtable.admin.v2.Instance instance_;
   /**
@@ -77,7 +79,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasInstance() {
-    return instance_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -133,7 +135,7 @@ public com.google.bigtable.admin.v2.InstanceOrBuilder getInstanceOrBuilder() {
    */
   @java.lang.Override
   public boolean hasUpdateMask() {
-    return updateMask_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -182,10 +184,10 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (instance_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getInstance());
     }
-    if (updateMask_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getUpdateMask());
     }
     getUnknownFields().writeTo(output);
@@ -197,10 +199,10 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (instance_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getInstance());
     }
-    if (updateMask_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getUpdateMask());
     }
     size += getUnknownFields().getSerializedSize();
@@ -376,10 +378,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.PartialUpdateInstanceRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getInstanceFieldBuilder();
+        getUpdateMaskFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -432,12 +444,16 @@ public com.google.bigtable.admin.v2.PartialUpdateInstanceRequest buildPartial()
 
     private void buildPartial0(com.google.bigtable.admin.v2.PartialUpdateInstanceRequest result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.instance_ = instanceBuilder_ == null ? instance_ : instanceBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.updateMask_ = updateMaskBuilder_ == null ? updateMask_ : updateMaskBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -661,8 +677,10 @@ public Builder mergeInstance(com.google.bigtable.admin.v2.Instance value) {
       } else {
         instanceBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (instance_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -862,8 +880,10 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
       } else {
         updateMaskBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (updateMask_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateInstanceRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateInstanceRequestOrBuilder.java
index ff4b363c2e..58dfd75123 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateInstanceRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/PartialUpdateInstanceRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface PartialUpdateInstanceRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreInfo.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreInfo.java
index 2d4fec64bf..7f3827760d 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreInfo.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreInfo.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreInfoOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreInfoOrBuilder.java
index ba85d2d344..c5b64569c0 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreInfoOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreInfoOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface RestoreInfoOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreSourceType.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreSourceType.java
index 41af0acf9f..c3ac45e302 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreSourceType.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreSourceType.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableMetadata.java
index 0b91d5c9b7..5d9ef45f63 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -65,6 +66,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.RestoreTableMetadata.Builder.class);
   }
 
+  private int bitField0_;
   private int sourceInfoCase_ = 0;
 
   @SuppressWarnings("serial")
@@ -312,7 +314,7 @@ public com.google.protobuf.ByteString getOptimizeTableOperationNameBytes() {
    */
   @java.lang.Override
   public boolean hasProgress() {
-    return progress_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -379,7 +381,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(optimizeTableOperationName_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 4, optimizeTableOperationName_);
     }
-    if (progress_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(5, getProgress());
     }
     getUnknownFields().writeTo(output);
@@ -408,7 +410,7 @@ public int getSerializedSize() {
       size +=
           com.google.protobuf.GeneratedMessageV3.computeStringSize(4, optimizeTableOperationName_);
     }
-    if (progress_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getProgress());
     }
     size += getUnknownFields().getSerializedSize();
@@ -602,10 +604,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.RestoreTableMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getProgressFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -671,9 +682,12 @@ private void buildPartial0(com.google.bigtable.admin.v2.RestoreTableMetadata res
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.optimizeTableOperationName_ = optimizeTableOperationName_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000010) != 0)) {
         result.progress_ = progressBuilder_ == null ? progress_ : progressBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     private void buildPartialOneofs(com.google.bigtable.admin.v2.RestoreTableMetadata result) {
@@ -1441,8 +1455,10 @@ public Builder mergeProgress(com.google.bigtable.admin.v2.OperationProgress valu
       } else {
         progressBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000010;
-      onChanged();
+      if (progress_ != null) {
+        bitField0_ |= 0x00000010;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableMetadataOrBuilder.java
index 7044200a6a..1061d471a1 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface RestoreTableMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableRequest.java
index 77009bac57..01329ea8d0 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableRequestOrBuilder.java
index e1958a8157..1e609ebf58 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/RestoreTableRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface RestoreTableRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Snapshot.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Snapshot.java
index 90cafb8bfa..d35f934040 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Snapshot.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Snapshot.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -231,6 +232,7 @@ private State(int value) {
     // @@protoc_insertion_point(enum_scope:google.bigtable.admin.v2.Snapshot.State)
   }
 
+  private int bitField0_;
   public static final int NAME_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -303,7 +305,7 @@ public com.google.protobuf.ByteString getNameBytes() {
    */
   @java.lang.Override
   public boolean hasSourceTable() {
-    return sourceTable_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -379,7 +381,7 @@ public long getDataSizeBytes() {
    */
   @java.lang.Override
   public boolean hasCreateTime() {
-    return createTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -429,7 +431,7 @@ public com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasDeleteTime() {
-    return deleteTime_ != null;
+    return ((bitField0_ & 0x00000004) != 0);
   }
   /**
    *
@@ -571,16 +573,16 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    if (sourceTable_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(2, getSourceTable());
     }
     if (dataSizeBytes_ != 0L) {
       output.writeInt64(3, dataSizeBytes_);
     }
-    if (createTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(4, getCreateTime());
     }
-    if (deleteTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       output.writeMessage(5, getDeleteTime());
     }
     if (state_ != com.google.bigtable.admin.v2.Snapshot.State.STATE_NOT_KNOWN.getNumber()) {
@@ -601,16 +603,16 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    if (sourceTable_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSourceTable());
     }
     if (dataSizeBytes_ != 0L) {
       size += com.google.protobuf.CodedOutputStream.computeInt64Size(3, dataSizeBytes_);
     }
-    if (createTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getCreateTime());
     }
-    if (deleteTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getDeleteTime());
     }
     if (state_ != com.google.bigtable.admin.v2.Snapshot.State.STATE_NOT_KNOWN.getNumber()) {
@@ -815,10 +817,21 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.Snapshot.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getSourceTableFieldBuilder();
+        getCreateTimeFieldBuilder();
+        getDeleteTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -883,18 +896,22 @@ private void buildPartial0(com.google.bigtable.admin.v2.Snapshot result) {
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.name_ = name_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.sourceTable_ =
             sourceTableBuilder_ == null ? sourceTable_ : sourceTableBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.dataSizeBytes_ = dataSizeBytes_;
       }
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.createTime_ = createTimeBuilder_ == null ? createTime_ : createTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000010) != 0)) {
         result.deleteTime_ = deleteTimeBuilder_ == null ? deleteTime_ : deleteTimeBuilder_.build();
+        to_bitField0_ |= 0x00000004;
       }
       if (((from_bitField0_ & 0x00000020) != 0)) {
         result.state_ = state_;
@@ -902,6 +919,7 @@ private void buildPartial0(com.google.bigtable.admin.v2.Snapshot result) {
       if (((from_bitField0_ & 0x00000040) != 0)) {
         result.description_ = description_;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1289,8 +1307,10 @@ public Builder mergeSourceTable(com.google.bigtable.admin.v2.Table value) {
       } else {
         sourceTableBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (sourceTable_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1552,8 +1572,10 @@ public Builder mergeCreateTime(com.google.protobuf.Timestamp value) {
       } else {
         createTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000008;
-      onChanged();
+      if (createTime_ != null) {
+        bitField0_ |= 0x00000008;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1753,8 +1775,10 @@ public Builder mergeDeleteTime(com.google.protobuf.Timestamp value) {
       } else {
         deleteTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000010;
-      onChanged();
+      if (deleteTime_ != null) {
+        bitField0_ |= 0x00000010;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotOrBuilder.java
index 4279b14414..2090c6c2fb 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface SnapshotOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableMetadata.java
index c296adf92e..70c3ce3830 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -65,6 +66,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.SnapshotTableMetadata.Builder.class);
   }
 
+  private int bitField0_;
   public static final int ORIGINAL_REQUEST_FIELD_NUMBER = 1;
   private com.google.bigtable.admin.v2.SnapshotTableRequest originalRequest_;
   /**
@@ -80,7 +82,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasOriginalRequest() {
-    return originalRequest_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -130,7 +132,7 @@ public com.google.bigtable.admin.v2.SnapshotTableRequestOrBuilder getOriginalReq
    */
   @java.lang.Override
   public boolean hasRequestTime() {
-    return requestTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -176,7 +178,7 @@ public com.google.protobuf.TimestampOrBuilder getRequestTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasFinishTime() {
-    return finishTime_ != null;
+    return ((bitField0_ & 0x00000004) != 0);
   }
   /**
    *
@@ -221,13 +223,13 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getOriginalRequest());
     }
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       output.writeMessage(3, getFinishTime());
     }
     getUnknownFields().writeTo(output);
@@ -239,13 +241,13 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOriginalRequest());
     }
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getFinishTime());
     }
     size += getUnknownFields().getSerializedSize();
@@ -433,10 +435,21 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.SnapshotTableMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getOriginalRequestFieldBuilder();
+        getRequestTimeFieldBuilder();
+        getFinishTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -494,17 +507,22 @@ public com.google.bigtable.admin.v2.SnapshotTableMetadata buildPartial() {
 
     private void buildPartial0(com.google.bigtable.admin.v2.SnapshotTableMetadata result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.originalRequest_ =
             originalRequestBuilder_ == null ? originalRequest_ : originalRequestBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.requestTime_ =
             requestTimeBuilder_ == null ? requestTime_ : requestTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.finishTime_ = finishTimeBuilder_ == null ? finishTime_ : finishTimeBuilder_.build();
+        to_bitField0_ |= 0x00000004;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -729,8 +747,10 @@ public Builder mergeOriginalRequest(com.google.bigtable.admin.v2.SnapshotTableRe
       } else {
         originalRequestBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (originalRequest_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -913,8 +933,10 @@ public Builder mergeRequestTime(com.google.protobuf.Timestamp value) {
       } else {
         requestTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (requestTime_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1096,8 +1118,10 @@ public Builder mergeFinishTime(com.google.protobuf.Timestamp value) {
       } else {
         finishTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (finishTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableMetadataOrBuilder.java
index c000ee33ed..8f97ebc413 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface SnapshotTableMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableRequest.java
index 234eece59a..b74ca5b40e 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -71,6 +72,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.SnapshotTableRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int NAME_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -264,7 +266,7 @@ public com.google.protobuf.ByteString getSnapshotIdBytes() {
    */
   @java.lang.Override
   public boolean hasTtl() {
-    return ttl_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -375,7 +377,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(snapshotId_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 3, snapshotId_);
     }
-    if (ttl_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(4, getTtl());
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
@@ -399,7 +401,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(snapshotId_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, snapshotId_);
     }
-    if (ttl_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getTtl());
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
@@ -587,10 +589,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.SnapshotTableRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getTtlFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -651,12 +662,15 @@ private void buildPartial0(com.google.bigtable.admin.v2.SnapshotTableRequest res
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.snapshotId_ = snapshotId_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.ttl_ = ttlBuilder_ == null ? ttl_ : ttlBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000010) != 0)) {
         result.description_ = description_;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1291,8 +1305,10 @@ public Builder mergeTtl(com.google.protobuf.Duration value) {
       } else {
         ttlBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000008;
-      onChanged();
+      if (ttl_ != null) {
+        bitField0_ |= 0x00000008;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableRequestOrBuilder.java
index 371348cb57..b21028a5aa 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/SnapshotTableRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface SnapshotTableRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/StorageType.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/StorageType.java
index 3ac7f781b9..5a0bad800b 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/StorageType.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/StorageType.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/common.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Table.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Table.java
index 726062cf12..9d29919547 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Table.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/Table.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -56,7 +57,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
 
   @SuppressWarnings({"rawtypes"})
   @java.lang.Override
-  protected com.google.protobuf.MapField internalGetMapField(int number) {
+  protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+      int number) {
     switch (number) {
       case 2:
         return internalGetClusterStates();
@@ -2048,6 +2050,7 @@ public com.google.bigtable.admin.v2.Table.ClusterState getDefaultInstanceForType
     }
   }
 
+  private int bitField0_;
   public static final int NAME_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -2424,7 +2427,7 @@ public com.google.bigtable.admin.v2.Table.TimestampGranularity getGranularity()
    */
   @java.lang.Override
   public boolean hasRestoreInfo() {
-    return restoreInfo_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -2482,7 +2485,7 @@ public com.google.bigtable.admin.v2.RestoreInfoOrBuilder getRestoreInfoOrBuilder
    */
   @java.lang.Override
   public boolean hasChangeStreamConfig() {
-    return changeStreamConfig_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -2572,10 +2575,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
             .getNumber()) {
       output.writeEnum(4, granularity_);
     }
-    if (restoreInfo_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(6, getRestoreInfo());
     }
-    if (changeStreamConfig_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(8, getChangeStreamConfig());
     }
     if (deletionProtection_ != false) {
@@ -2621,10 +2624,10 @@ public int getSerializedSize() {
             .getNumber()) {
       size += com.google.protobuf.CodedOutputStream.computeEnumSize(4, granularity_);
     }
-    if (restoreInfo_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getRestoreInfo());
     }
-    if (changeStreamConfig_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, getChangeStreamConfig());
     }
     if (deletionProtection_ != false) {
@@ -2810,7 +2813,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     @SuppressWarnings({"rawtypes"})
-    protected com.google.protobuf.MapField internalGetMapField(int number) {
+    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
+        int number) {
       switch (number) {
         case 2:
           return internalGetClusterStates();
@@ -2822,7 +2826,8 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
     }
 
     @SuppressWarnings({"rawtypes"})
-    protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
+    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
+        int number) {
       switch (number) {
         case 2:
           return internalGetMutableClusterStates();
@@ -2844,10 +2849,20 @@ protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
     }
 
     // Construct using com.google.bigtable.admin.v2.Table.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getRestoreInfoFieldBuilder();
+        getChangeStreamConfigFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -2908,29 +2923,33 @@ private void buildPartial0(com.google.bigtable.admin.v2.Table result) {
         result.name_ = name_;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
-        result.clusterStates_ = internalGetClusterStates();
-        result.clusterStates_.makeImmutable();
+        result.clusterStates_ =
+            internalGetClusterStates().build(ClusterStatesDefaultEntryHolder.defaultEntry);
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
-        result.columnFamilies_ = internalGetColumnFamilies();
-        result.columnFamilies_.makeImmutable();
+        result.columnFamilies_ =
+            internalGetColumnFamilies().build(ColumnFamiliesDefaultEntryHolder.defaultEntry);
       }
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.granularity_ = granularity_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000010) != 0)) {
         result.restoreInfo_ =
             restoreInfoBuilder_ == null ? restoreInfo_ : restoreInfoBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000020) != 0)) {
         result.changeStreamConfig_ =
             changeStreamConfigBuilder_ == null
                 ? changeStreamConfig_
                 : changeStreamConfigBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000040) != 0)) {
         result.deletionProtection_ = deletionProtection_;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -3040,7 +3059,7 @@ public Builder mergeFrom(
                             ClusterStatesDefaultEntryHolder.defaultEntry.getParserForType(),
                             extensionRegistry);
                 internalGetMutableClusterStates()
-                    .getMutableMap()
+                    .ensureBuilderMap()
                     .put(clusterStates__.getKey(), clusterStates__.getValue());
                 bitField0_ |= 0x00000002;
                 break;
@@ -3054,7 +3073,7 @@ public Builder mergeFrom(
                             ColumnFamiliesDefaultEntryHolder.defaultEntry.getParserForType(),
                             extensionRegistry);
                 internalGetMutableColumnFamilies()
-                    .getMutableMap()
+                    .ensureBuilderMap()
                     .put(columnFamilies__.getKey(), columnFamilies__.getValue());
                 bitField0_ |= 0x00000004;
                 break;
@@ -3219,29 +3238,58 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
       return this;
     }
 
-    private com.google.protobuf.MapField<
-            java.lang.String, com.google.bigtable.admin.v2.Table.ClusterState>
+    private static final class ClusterStatesConverter
+        implements com.google.protobuf.MapFieldBuilder.Converter<
+            java.lang.String,
+            com.google.bigtable.admin.v2.Table.ClusterStateOrBuilder,
+            com.google.bigtable.admin.v2.Table.ClusterState> {
+      @java.lang.Override
+      public com.google.bigtable.admin.v2.Table.ClusterState build(
+          com.google.bigtable.admin.v2.Table.ClusterStateOrBuilder val) {
+        if (val instanceof com.google.bigtable.admin.v2.Table.ClusterState) {
+          return (com.google.bigtable.admin.v2.Table.ClusterState) val;
+        }
+        return ((com.google.bigtable.admin.v2.Table.ClusterState.Builder) val).build();
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.MapEntry<
+              java.lang.String, com.google.bigtable.admin.v2.Table.ClusterState>
+          defaultEntry() {
+        return ClusterStatesDefaultEntryHolder.defaultEntry;
+      }
+    };
+
+    private static final ClusterStatesConverter clusterStatesConverter =
+        new ClusterStatesConverter();
+
+    private com.google.protobuf.MapFieldBuilder<
+            java.lang.String,
+            com.google.bigtable.admin.v2.Table.ClusterStateOrBuilder,
+            com.google.bigtable.admin.v2.Table.ClusterState,
+            com.google.bigtable.admin.v2.Table.ClusterState.Builder>
         clusterStates_;
 
-    private com.google.protobuf.MapField<
-            java.lang.String, com.google.bigtable.admin.v2.Table.ClusterState>
+    private com.google.protobuf.MapFieldBuilder<
+            java.lang.String,
+            com.google.bigtable.admin.v2.Table.ClusterStateOrBuilder,
+            com.google.bigtable.admin.v2.Table.ClusterState,
+            com.google.bigtable.admin.v2.Table.ClusterState.Builder>
         internalGetClusterStates() {
       if (clusterStates_ == null) {
-        return com.google.protobuf.MapField.emptyMapField(
-            ClusterStatesDefaultEntryHolder.defaultEntry);
+        return new com.google.protobuf.MapFieldBuilder<>(clusterStatesConverter);
       }
       return clusterStates_;
     }
 
-    private com.google.protobuf.MapField<
-            java.lang.String, com.google.bigtable.admin.v2.Table.ClusterState>
+    private com.google.protobuf.MapFieldBuilder<
+            java.lang.String,
+            com.google.bigtable.admin.v2.Table.ClusterStateOrBuilder,
+            com.google.bigtable.admin.v2.Table.ClusterState,
+            com.google.bigtable.admin.v2.Table.ClusterState.Builder>
         internalGetMutableClusterStates() {
       if (clusterStates_ == null) {
-        clusterStates_ =
-            com.google.protobuf.MapField.newMapField(ClusterStatesDefaultEntryHolder.defaultEntry);
-      }
-      if (!clusterStates_.isMutable()) {
-        clusterStates_ = clusterStates_.copy();
+        clusterStates_ = new com.google.protobuf.MapFieldBuilder<>(clusterStatesConverter);
       }
       bitField0_ |= 0x00000002;
       onChanged();
@@ -3249,7 +3297,7 @@ public Builder setNameBytes(com.google.protobuf.ByteString value) {
     }
 
     public int getClusterStatesCount() {
-      return internalGetClusterStates().getMap().size();
+      return internalGetClusterStates().ensureBuilderMap().size();
     }
     /**
      *
@@ -3271,7 +3319,7 @@ public boolean containsClusterStates(java.lang.String key) {
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      return internalGetClusterStates().getMap().containsKey(key);
+      return internalGetClusterStates().ensureBuilderMap().containsKey(key);
     }
     /** Use {@link #getClusterStatesMap()} instead. */
     @java.lang.Override
@@ -3298,7 +3346,7 @@ public boolean containsClusterStates(java.lang.String key) {
     @java.lang.Override
     public java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Table.ClusterState>
         getClusterStatesMap() {
-      return internalGetClusterStates().getMap();
+      return internalGetClusterStates().getImmutableMap();
     }
     /**
      *
@@ -3323,9 +3371,9 @@ public boolean containsClusterStates(java.lang.String key) {
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Table.ClusterState> map =
-          internalGetClusterStates().getMap();
-      return map.containsKey(key) ? map.get(key) : defaultValue;
+      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Table.ClusterStateOrBuilder>
+          map = internalGetMutableClusterStates().ensureBuilderMap();
+      return map.containsKey(key) ? clusterStatesConverter.build(map.get(key)) : defaultValue;
     }
     /**
      *
@@ -3348,17 +3396,17 @@ public com.google.bigtable.admin.v2.Table.ClusterState getClusterStatesOrThrow(
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Table.ClusterState> map =
-          internalGetClusterStates().getMap();
+      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Table.ClusterStateOrBuilder>
+          map = internalGetMutableClusterStates().ensureBuilderMap();
       if (!map.containsKey(key)) {
         throw new java.lang.IllegalArgumentException();
       }
-      return map.get(key);
+      return clusterStatesConverter.build(map.get(key));
     }
 
     public Builder clearClusterStates() {
       bitField0_ = (bitField0_ & ~0x00000002);
-      internalGetMutableClusterStates().getMutableMap().clear();
+      internalGetMutableClusterStates().clear();
       return this;
     }
     /**
@@ -3380,7 +3428,7 @@ public Builder removeClusterStates(java.lang.String key) {
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      internalGetMutableClusterStates().getMutableMap().remove(key);
+      internalGetMutableClusterStates().ensureBuilderMap().remove(key);
       return this;
     }
     /** Use alternate mutation accessors instead. */
@@ -3388,7 +3436,7 @@ public Builder removeClusterStates(java.lang.String key) {
     public java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Table.ClusterState>
         getMutableClusterStates() {
       bitField0_ |= 0x00000002;
-      return internalGetMutableClusterStates().getMutableMap();
+      return internalGetMutableClusterStates().ensureMessageMap();
     }
     /**
      *
@@ -3413,7 +3461,7 @@ public Builder putClusterStates(
       if (value == null) {
         throw new NullPointerException("map value");
       }
-      internalGetMutableClusterStates().getMutableMap().put(key, value);
+      internalGetMutableClusterStates().ensureBuilderMap().put(key, value);
       bitField0_ |= 0x00000002;
       return this;
     }
@@ -3434,34 +3482,99 @@ public Builder putClusterStates(
      */
     public Builder putAllClusterStates(
         java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Table.ClusterState> values) {
-      internalGetMutableClusterStates().getMutableMap().putAll(values);
+      for (java.util.Map.Entry<java.lang.String, com.google.bigtable.admin.v2.Table.ClusterState>
+          e : values.entrySet()) {
+        if (e.getKey() == null || e.getValue() == null) {
+          throw new NullPointerException();
+        }
+      }
+      internalGetMutableClusterStates().ensureBuilderMap().putAll(values);
       bitField0_ |= 0x00000002;
       return this;
     }
+    /**
+     *
+     *
+     * <pre>
+     * Output only. Map from cluster ID to per-cluster table state.
+     * If it could not be determined whether or not the table has data in a
+     * particular cluster (for example, if its zone is unavailable), then
+     * there will be an entry for the cluster with UNKNOWN `replication_status`.
+     * Views: `REPLICATION_VIEW`, `ENCRYPTION_VIEW`, `FULL`
+     * </pre>
+     *
+     * <code>
+     * map&lt;string, .google.bigtable.admin.v2.Table.ClusterState&gt; cluster_states = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+     * </code>
+     */
+    public com.google.bigtable.admin.v2.Table.ClusterState.Builder putClusterStatesBuilderIfAbsent(
+        java.lang.String key) {
+      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.Table.ClusterStateOrBuilder>
+          builderMap = internalGetMutableClusterStates().ensureBuilderMap();
+      com.google.bigtable.admin.v2.Table.ClusterStateOrBuilder entry = builderMap.get(key);
+      if (entry == null) {
+        entry = com.google.bigtable.admin.v2.Table.ClusterState.newBuilder();
+        builderMap.put(key, entry);
+      }
+      if (entry instanceof com.google.bigtable.admin.v2.Table.ClusterState) {
+        entry = ((com.google.bigtable.admin.v2.Table.ClusterState) entry).toBuilder();
+        builderMap.put(key, entry);
+      }
+      return (com.google.bigtable.admin.v2.Table.ClusterState.Builder) entry;
+    }
 
-    private com.google.protobuf.MapField<
-            java.lang.String, com.google.bigtable.admin.v2.ColumnFamily>
+    private static final class ColumnFamiliesConverter
+        implements com.google.protobuf.MapFieldBuilder.Converter<
+            java.lang.String,
+            com.google.bigtable.admin.v2.ColumnFamilyOrBuilder,
+            com.google.bigtable.admin.v2.ColumnFamily> {
+      @java.lang.Override
+      public com.google.bigtable.admin.v2.ColumnFamily build(
+          com.google.bigtable.admin.v2.ColumnFamilyOrBuilder val) {
+        if (val instanceof com.google.bigtable.admin.v2.ColumnFamily) {
+          return (com.google.bigtable.admin.v2.ColumnFamily) val;
+        }
+        return ((com.google.bigtable.admin.v2.ColumnFamily.Builder) val).build();
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.MapEntry<
+              java.lang.String, com.google.bigtable.admin.v2.ColumnFamily>
+          defaultEntry() {
+        return ColumnFamiliesDefaultEntryHolder.defaultEntry;
+      }
+    };
+
+    private static final ColumnFamiliesConverter columnFamiliesConverter =
+        new ColumnFamiliesConverter();
+
+    private com.google.protobuf.MapFieldBuilder<
+            java.lang.String,
+            com.google.bigtable.admin.v2.ColumnFamilyOrBuilder,
+            com.google.bigtable.admin.v2.ColumnFamily,
+            com.google.bigtable.admin.v2.ColumnFamily.Builder>
         columnFamilies_;
 
-    private com.google.protobuf.MapField<
-            java.lang.String, com.google.bigtable.admin.v2.ColumnFamily>
+    private com.google.protobuf.MapFieldBuilder<
+            java.lang.String,
+            com.google.bigtable.admin.v2.ColumnFamilyOrBuilder,
+            com.google.bigtable.admin.v2.ColumnFamily,
+            com.google.bigtable.admin.v2.ColumnFamily.Builder>
         internalGetColumnFamilies() {
       if (columnFamilies_ == null) {
-        return com.google.protobuf.MapField.emptyMapField(
-            ColumnFamiliesDefaultEntryHolder.defaultEntry);
+        return new com.google.protobuf.MapFieldBuilder<>(columnFamiliesConverter);
       }
       return columnFamilies_;
     }
 
-    private com.google.protobuf.MapField<
-            java.lang.String, com.google.bigtable.admin.v2.ColumnFamily>
+    private com.google.protobuf.MapFieldBuilder<
+            java.lang.String,
+            com.google.bigtable.admin.v2.ColumnFamilyOrBuilder,
+            com.google.bigtable.admin.v2.ColumnFamily,
+            com.google.bigtable.admin.v2.ColumnFamily.Builder>
         internalGetMutableColumnFamilies() {
       if (columnFamilies_ == null) {
-        columnFamilies_ =
-            com.google.protobuf.MapField.newMapField(ColumnFamiliesDefaultEntryHolder.defaultEntry);
-      }
-      if (!columnFamilies_.isMutable()) {
-        columnFamilies_ = columnFamilies_.copy();
+        columnFamilies_ = new com.google.protobuf.MapFieldBuilder<>(columnFamiliesConverter);
       }
       bitField0_ |= 0x00000004;
       onChanged();
@@ -3469,7 +3582,7 @@ public Builder putAllClusterStates(
     }
 
     public int getColumnFamiliesCount() {
-      return internalGetColumnFamilies().getMap().size();
+      return internalGetColumnFamilies().ensureBuilderMap().size();
     }
     /**
      *
@@ -3486,7 +3599,7 @@ public boolean containsColumnFamilies(java.lang.String key) {
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      return internalGetColumnFamilies().getMap().containsKey(key);
+      return internalGetColumnFamilies().ensureBuilderMap().containsKey(key);
     }
     /** Use {@link #getColumnFamiliesMap()} instead. */
     @java.lang.Override
@@ -3508,7 +3621,7 @@ public boolean containsColumnFamilies(java.lang.String key) {
     @java.lang.Override
     public java.util.Map<java.lang.String, com.google.bigtable.admin.v2.ColumnFamily>
         getColumnFamiliesMap() {
-      return internalGetColumnFamilies().getMap();
+      return internalGetColumnFamilies().getImmutableMap();
     }
     /**
      *
@@ -3528,9 +3641,9 @@ public boolean containsColumnFamilies(java.lang.String key) {
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.ColumnFamily> map =
-          internalGetColumnFamilies().getMap();
-      return map.containsKey(key) ? map.get(key) : defaultValue;
+      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.ColumnFamilyOrBuilder> map =
+          internalGetMutableColumnFamilies().ensureBuilderMap();
+      return map.containsKey(key) ? columnFamiliesConverter.build(map.get(key)) : defaultValue;
     }
     /**
      *
@@ -3548,17 +3661,17 @@ public com.google.bigtable.admin.v2.ColumnFamily getColumnFamiliesOrThrow(
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.ColumnFamily> map =
-          internalGetColumnFamilies().getMap();
+      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.ColumnFamilyOrBuilder> map =
+          internalGetMutableColumnFamilies().ensureBuilderMap();
       if (!map.containsKey(key)) {
         throw new java.lang.IllegalArgumentException();
       }
-      return map.get(key);
+      return columnFamiliesConverter.build(map.get(key));
     }
 
     public Builder clearColumnFamilies() {
       bitField0_ = (bitField0_ & ~0x00000004);
-      internalGetMutableColumnFamilies().getMutableMap().clear();
+      internalGetMutableColumnFamilies().clear();
       return this;
     }
     /**
@@ -3575,7 +3688,7 @@ public Builder removeColumnFamilies(java.lang.String key) {
       if (key == null) {
         throw new NullPointerException("map key");
       }
-      internalGetMutableColumnFamilies().getMutableMap().remove(key);
+      internalGetMutableColumnFamilies().ensureBuilderMap().remove(key);
       return this;
     }
     /** Use alternate mutation accessors instead. */
@@ -3583,7 +3696,7 @@ public Builder removeColumnFamilies(java.lang.String key) {
     public java.util.Map<java.lang.String, com.google.bigtable.admin.v2.ColumnFamily>
         getMutableColumnFamilies() {
       bitField0_ |= 0x00000004;
-      return internalGetMutableColumnFamilies().getMutableMap();
+      return internalGetMutableColumnFamilies().ensureMessageMap();
     }
     /**
      *
@@ -3603,7 +3716,7 @@ public Builder putColumnFamilies(
       if (value == null) {
         throw new NullPointerException("map value");
       }
-      internalGetMutableColumnFamilies().getMutableMap().put(key, value);
+      internalGetMutableColumnFamilies().ensureBuilderMap().put(key, value);
       bitField0_ |= 0x00000004;
       return this;
     }
@@ -3619,10 +3732,41 @@ public Builder putColumnFamilies(
      */
     public Builder putAllColumnFamilies(
         java.util.Map<java.lang.String, com.google.bigtable.admin.v2.ColumnFamily> values) {
-      internalGetMutableColumnFamilies().getMutableMap().putAll(values);
+      for (java.util.Map.Entry<java.lang.String, com.google.bigtable.admin.v2.ColumnFamily> e :
+          values.entrySet()) {
+        if (e.getKey() == null || e.getValue() == null) {
+          throw new NullPointerException();
+        }
+      }
+      internalGetMutableColumnFamilies().ensureBuilderMap().putAll(values);
       bitField0_ |= 0x00000004;
       return this;
     }
+    /**
+     *
+     *
+     * <pre>
+     * The column families configured for this table, mapped by column family ID.
+     * Views: `SCHEMA_VIEW`, `STATS_VIEW`, `FULL`
+     * </pre>
+     *
+     * <code>map&lt;string, .google.bigtable.admin.v2.ColumnFamily&gt; column_families = 3;</code>
+     */
+    public com.google.bigtable.admin.v2.ColumnFamily.Builder putColumnFamiliesBuilderIfAbsent(
+        java.lang.String key) {
+      java.util.Map<java.lang.String, com.google.bigtable.admin.v2.ColumnFamilyOrBuilder>
+          builderMap = internalGetMutableColumnFamilies().ensureBuilderMap();
+      com.google.bigtable.admin.v2.ColumnFamilyOrBuilder entry = builderMap.get(key);
+      if (entry == null) {
+        entry = com.google.bigtable.admin.v2.ColumnFamily.newBuilder();
+        builderMap.put(key, entry);
+      }
+      if (entry instanceof com.google.bigtable.admin.v2.ColumnFamily) {
+        entry = ((com.google.bigtable.admin.v2.ColumnFamily) entry).toBuilder();
+        builderMap.put(key, entry);
+      }
+      return (com.google.bigtable.admin.v2.ColumnFamily.Builder) entry;
+    }
 
     private int granularity_ = 0;
     /**
@@ -3859,8 +4003,10 @@ public Builder mergeRestoreInfo(com.google.bigtable.admin.v2.RestoreInfo value)
       } else {
         restoreInfoBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000010;
-      onChanged();
+      if (restoreInfo_ != null) {
+        bitField0_ |= 0x00000010;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -4066,8 +4212,10 @@ public Builder mergeChangeStreamConfig(com.google.bigtable.admin.v2.ChangeStream
       } else {
         changeStreamConfigBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000020;
-      onChanged();
+      if (changeStreamConfig_ != null) {
+        bitField0_ |= 0x00000020;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TableOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TableOrBuilder.java
index 4ce88f8e1c..16d2de6c5d 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TableOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TableOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface TableOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TableProto.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TableProto.java
index 262d4ceed3..0a04670e85 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TableProto.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TableProto.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/table.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public final class TableProto {
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableMetadata.java
index 48b466227b..2e3a54c276 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -63,6 +64,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.UndeleteTableMetadata.Builder.class);
   }
 
+  private int bitField0_;
   public static final int NAME_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -129,7 +131,7 @@ public com.google.protobuf.ByteString getNameBytes() {
    */
   @java.lang.Override
   public boolean hasStartTime() {
-    return startTime_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -175,7 +177,7 @@ public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasEndTime() {
-    return endTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -223,10 +225,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(2, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(3, getEndTime());
     }
     getUnknownFields().writeTo(output);
@@ -241,10 +243,10 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getEndTime());
     }
     size += getUnknownFields().getSerializedSize();
@@ -423,10 +425,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.UndeleteTableMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getStartTimeFieldBuilder();
+        getEndTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -483,12 +495,16 @@ private void buildPartial0(com.google.bigtable.admin.v2.UndeleteTableMetadata re
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.name_ = name_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.startTime_ = startTimeBuilder_ == null ? startTime_ : startTimeBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.endTime_ = endTimeBuilder_ == null ? endTime_ : endTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -817,8 +833,10 @@ public Builder mergeStartTime(com.google.protobuf.Timestamp value) {
       } else {
         startTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (startTime_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -996,8 +1014,10 @@ public Builder mergeEndTime(com.google.protobuf.Timestamp value) {
       } else {
         endTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (endTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableMetadataOrBuilder.java
index 51b1983b79..af30599369 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface UndeleteTableMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableRequest.java
index f9618b8412..93a8ec1070 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableRequestOrBuilder.java
index eb1b3f7d46..96d3e2208d 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UndeleteTableRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface UndeleteTableRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileMetadata.java
index 28a9d98369..e3b2751a4b 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileMetadataOrBuilder.java
index 3f397638bc..a6d8f47277 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface UpdateAppProfileMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileRequest.java
index ebf19c1bc7..e0aba3a43f 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -60,6 +61,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.UpdateAppProfileRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int APP_PROFILE_FIELD_NUMBER = 1;
   private com.google.bigtable.admin.v2.AppProfile appProfile_;
   /**
@@ -77,7 +79,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasAppProfile() {
-    return appProfile_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -133,7 +135,7 @@ public com.google.bigtable.admin.v2.AppProfileOrBuilder getAppProfileOrBuilder()
    */
   @java.lang.Override
   public boolean hasUpdateMask() {
-    return updateMask_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -200,10 +202,10 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (appProfile_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getAppProfile());
     }
-    if (updateMask_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getUpdateMask());
     }
     if (ignoreWarnings_ != false) {
@@ -218,10 +220,10 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (appProfile_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getAppProfile());
     }
-    if (updateMask_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getUpdateMask());
     }
     if (ignoreWarnings_ != false) {
@@ -402,10 +404,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.UpdateAppProfileRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getAppProfileFieldBuilder();
+        getUpdateMaskFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -459,15 +471,19 @@ public com.google.bigtable.admin.v2.UpdateAppProfileRequest buildPartial() {
 
     private void buildPartial0(com.google.bigtable.admin.v2.UpdateAppProfileRequest result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.appProfile_ = appProfileBuilder_ == null ? appProfile_ : appProfileBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.updateMask_ = updateMaskBuilder_ == null ? updateMask_ : updateMaskBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.ignoreWarnings_ = ignoreWarnings_;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -700,8 +716,10 @@ public Builder mergeAppProfile(com.google.bigtable.admin.v2.AppProfile value) {
       } else {
         appProfileBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (appProfile_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -901,8 +919,10 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
       } else {
         updateMaskBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (updateMask_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileRequestOrBuilder.java
index d5778fd001..66ef84c7a4 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateAppProfileRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface UpdateAppProfileRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateBackupRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateBackupRequest.java
index 5e2e7d11ec..6e61ba1b56 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateBackupRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateBackupRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -61,6 +62,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.UpdateBackupRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int BACKUP_FIELD_NUMBER = 1;
   private com.google.bigtable.admin.v2.Backup backup_;
   /**
@@ -81,7 +83,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasBackup() {
-    return backup_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -142,7 +144,7 @@ public com.google.bigtable.admin.v2.BackupOrBuilder getBackupOrBuilder() {
    */
   @java.lang.Override
   public boolean hasUpdateMask() {
-    return updateMask_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -197,10 +199,10 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (backup_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getBackup());
     }
-    if (updateMask_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getUpdateMask());
     }
     getUnknownFields().writeTo(output);
@@ -212,10 +214,10 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (backup_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getBackup());
     }
-    if (updateMask_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getUpdateMask());
     }
     size += getUnknownFields().getSerializedSize();
@@ -391,10 +393,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.UpdateBackupRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getBackupFieldBuilder();
+        getUpdateMaskFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -447,12 +459,16 @@ public com.google.bigtable.admin.v2.UpdateBackupRequest buildPartial() {
 
     private void buildPartial0(com.google.bigtable.admin.v2.UpdateBackupRequest result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.backup_ = backupBuilder_ == null ? backup_ : backupBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.updateMask_ = updateMaskBuilder_ == null ? updateMask_ : updateMaskBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -689,8 +705,10 @@ public Builder mergeBackup(com.google.bigtable.admin.v2.Backup value) {
       } else {
         backupBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (backup_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -915,8 +933,10 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
       } else {
         updateMaskBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (updateMask_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateBackupRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateBackupRequestOrBuilder.java
index ffb27049f6..16a9fae59d 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateBackupRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateBackupRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface UpdateBackupRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateClusterMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateClusterMetadata.java
index 75eebd28a5..e1cbf2f5a9 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateClusterMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateClusterMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -60,6 +61,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.UpdateClusterMetadata.Builder.class);
   }
 
+  private int bitField0_;
   public static final int ORIGINAL_REQUEST_FIELD_NUMBER = 1;
   private com.google.bigtable.admin.v2.Cluster originalRequest_;
   /**
@@ -75,7 +77,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasOriginalRequest() {
-    return originalRequest_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -125,7 +127,7 @@ public com.google.bigtable.admin.v2.ClusterOrBuilder getOriginalRequestOrBuilder
    */
   @java.lang.Override
   public boolean hasRequestTime() {
-    return requestTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -171,7 +173,7 @@ public com.google.protobuf.TimestampOrBuilder getRequestTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasFinishTime() {
-    return finishTime_ != null;
+    return ((bitField0_ & 0x00000004) != 0);
   }
   /**
    *
@@ -216,13 +218,13 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getOriginalRequest());
     }
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       output.writeMessage(3, getFinishTime());
     }
     getUnknownFields().writeTo(output);
@@ -234,13 +236,13 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOriginalRequest());
     }
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getFinishTime());
     }
     size += getUnknownFields().getSerializedSize();
@@ -423,10 +425,21 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.UpdateClusterMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getOriginalRequestFieldBuilder();
+        getRequestTimeFieldBuilder();
+        getFinishTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -484,17 +497,22 @@ public com.google.bigtable.admin.v2.UpdateClusterMetadata buildPartial() {
 
     private void buildPartial0(com.google.bigtable.admin.v2.UpdateClusterMetadata result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.originalRequest_ =
             originalRequestBuilder_ == null ? originalRequest_ : originalRequestBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.requestTime_ =
             requestTimeBuilder_ == null ? requestTime_ : requestTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.finishTime_ = finishTimeBuilder_ == null ? finishTime_ : finishTimeBuilder_.build();
+        to_bitField0_ |= 0x00000004;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -718,8 +736,10 @@ public Builder mergeOriginalRequest(com.google.bigtable.admin.v2.Cluster value)
       } else {
         originalRequestBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (originalRequest_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -901,8 +921,10 @@ public Builder mergeRequestTime(com.google.protobuf.Timestamp value) {
       } else {
         requestTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (requestTime_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1084,8 +1106,10 @@ public Builder mergeFinishTime(com.google.protobuf.Timestamp value) {
       } else {
         finishTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (finishTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateClusterMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateClusterMetadataOrBuilder.java
index cef16bab93..8d8db8f23a 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateClusterMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateClusterMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface UpdateClusterMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateInstanceMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateInstanceMetadata.java
index ab22f010fa..80ddba297b 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateInstanceMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateInstanceMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -60,6 +61,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.UpdateInstanceMetadata.Builder.class);
   }
 
+  private int bitField0_;
   public static final int ORIGINAL_REQUEST_FIELD_NUMBER = 1;
   private com.google.bigtable.admin.v2.PartialUpdateInstanceRequest originalRequest_;
   /**
@@ -75,7 +77,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasOriginalRequest() {
-    return originalRequest_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -126,7 +128,7 @@ public com.google.bigtable.admin.v2.PartialUpdateInstanceRequest getOriginalRequ
    */
   @java.lang.Override
   public boolean hasRequestTime() {
-    return requestTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -172,7 +174,7 @@ public com.google.protobuf.TimestampOrBuilder getRequestTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasFinishTime() {
-    return finishTime_ != null;
+    return ((bitField0_ & 0x00000004) != 0);
   }
   /**
    *
@@ -217,13 +219,13 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getOriginalRequest());
     }
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       output.writeMessage(3, getFinishTime());
     }
     getUnknownFields().writeTo(output);
@@ -235,13 +237,13 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (originalRequest_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOriginalRequest());
     }
-    if (requestTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRequestTime());
     }
-    if (finishTime_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getFinishTime());
     }
     size += getUnknownFields().getSerializedSize();
@@ -424,10 +426,21 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.UpdateInstanceMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getOriginalRequestFieldBuilder();
+        getRequestTimeFieldBuilder();
+        getFinishTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -485,17 +498,22 @@ public com.google.bigtable.admin.v2.UpdateInstanceMetadata buildPartial() {
 
     private void buildPartial0(com.google.bigtable.admin.v2.UpdateInstanceMetadata result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.originalRequest_ =
             originalRequestBuilder_ == null ? originalRequest_ : originalRequestBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.requestTime_ =
             requestTimeBuilder_ == null ? requestTime_ : requestTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.finishTime_ = finishTimeBuilder_ == null ? finishTime_ : finishTimeBuilder_.build();
+        to_bitField0_ |= 0x00000004;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -722,8 +740,10 @@ public Builder mergeOriginalRequest(
       } else {
         originalRequestBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (originalRequest_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -907,8 +927,10 @@ public Builder mergeRequestTime(com.google.protobuf.Timestamp value) {
       } else {
         requestTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (requestTime_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1090,8 +1112,10 @@ public Builder mergeFinishTime(com.google.protobuf.Timestamp value) {
       } else {
         finishTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (finishTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateInstanceMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateInstanceMetadataOrBuilder.java
index 0a67767adc..c914628d27 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateInstanceMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateInstanceMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_instance_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface UpdateInstanceMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableMetadata.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableMetadata.java
index 306587c8ac..5b1f54dcc8 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableMetadata.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableMetadata.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -63,6 +64,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.UpdateTableMetadata.Builder.class);
   }
 
+  private int bitField0_;
   public static final int NAME_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -129,7 +131,7 @@ public com.google.protobuf.ByteString getNameBytes() {
    */
   @java.lang.Override
   public boolean hasStartTime() {
-    return startTime_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -175,7 +177,7 @@ public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasEndTime() {
-    return endTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -223,10 +225,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(2, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(3, getEndTime());
     }
     getUnknownFields().writeTo(output);
@@ -241,10 +243,10 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
     }
-    if (startTime_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getStartTime());
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getEndTime());
     }
     size += getUnknownFields().getSerializedSize();
@@ -423,10 +425,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.UpdateTableMetadata.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getStartTimeFieldBuilder();
+        getEndTimeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -483,12 +495,16 @@ private void buildPartial0(com.google.bigtable.admin.v2.UpdateTableMetadata resu
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.name_ = name_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.startTime_ = startTimeBuilder_ == null ? startTime_ : startTimeBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.endTime_ = endTimeBuilder_ == null ? endTime_ : endTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -817,8 +833,10 @@ public Builder mergeStartTime(com.google.protobuf.Timestamp value) {
       } else {
         startTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (startTime_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -996,8 +1014,10 @@ public Builder mergeEndTime(com.google.protobuf.Timestamp value) {
       } else {
         endTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (endTime_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableMetadataOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableMetadataOrBuilder.java
index 879a091e43..625a33fa4a 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableMetadataOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableMetadataOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface UpdateTableMetadataOrBuilder
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableRequest.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableRequest.java
index 26e6665a2b..56b714a7ed 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableRequest.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 /**
@@ -61,6 +62,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.admin.v2.UpdateTableRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int TABLE_FIELD_NUMBER = 1;
   private com.google.bigtable.admin.v2.Table table_;
   /**
@@ -78,7 +80,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasTable() {
-    return table_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -140,7 +142,7 @@ public com.google.bigtable.admin.v2.TableOrBuilder getTableOrBuilder() {
    */
   @java.lang.Override
   public boolean hasUpdateMask() {
-    return updateMask_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -209,10 +211,10 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (table_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getTable());
     }
-    if (updateMask_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getUpdateMask());
     }
     getUnknownFields().writeTo(output);
@@ -224,10 +226,10 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (table_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTable());
     }
-    if (updateMask_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getUpdateMask());
     }
     size += getUnknownFields().getSerializedSize();
@@ -403,10 +405,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.admin.v2.UpdateTableRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getTableFieldBuilder();
+        getUpdateMaskFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -459,12 +471,16 @@ public com.google.bigtable.admin.v2.UpdateTableRequest buildPartial() {
 
     private void buildPartial0(com.google.bigtable.admin.v2.UpdateTableRequest result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.table_ = tableBuilder_ == null ? table_ : tableBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.updateMask_ = updateMaskBuilder_ == null ? updateMask_ : updateMaskBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -686,8 +702,10 @@ public Builder mergeTable(com.google.bigtable.admin.v2.Table value) {
       } else {
         tableBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (table_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -935,8 +953,10 @@ public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
       } else {
         updateMaskBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (updateMask_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableRequestOrBuilder.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableRequestOrBuilder.java
index ade274c24c..b919f0985b 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/UpdateTableRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/admin/v2/bigtable_table_admin.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.admin.v2;
 
 public interface UpdateTableRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableProto.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableProto.java
index 2f7a23b626..327ebbf0f3 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableProto.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableProto.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public final class BigtableProto {
@@ -465,7 +466,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_bigtable_v2_MutateRowsResponse_descriptor,
             new java.lang.String[] {
-              "Entries", "RateLimitInfo", "RateLimitInfo",
+              "Entries", "RateLimitInfo",
             });
     internal_static_google_bigtable_v2_MutateRowsResponse_Entry_descriptor =
         internal_static_google_bigtable_v2_MutateRowsResponse_descriptor.getNestedTypes().get(0);
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Cell.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Cell.java
index 52889729f5..c7da0c1ec4 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Cell.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Cell.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CellOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CellOrBuilder.java
index 46258f7bb4..c8bcc2e64a 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CellOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CellOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface CellOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowRequest.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowRequest.java
index 6d85ee9a8b..44e5aa2b70 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowRequest.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -66,6 +67,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.v2.CheckAndMutateRowRequest.Builder.class);
   }
 
+  private int bitField0_;
   public static final int TABLE_NAME_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -215,7 +217,7 @@ public com.google.protobuf.ByteString getRowKey() {
    */
   @java.lang.Override
   public boolean hasPredicateFilter() {
-    return predicateFilter_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -464,7 +466,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     for (int i = 0; i < falseMutations_.size(); i++) {
       output.writeMessage(5, falseMutations_.get(i));
     }
-    if (predicateFilter_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(6, getPredicateFilter());
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(appProfileId_)) {
@@ -491,7 +493,7 @@ public int getSerializedSize() {
     for (int i = 0; i < falseMutations_.size(); i++) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, falseMutations_.get(i));
     }
-    if (predicateFilter_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getPredicateFilter());
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(appProfileId_)) {
@@ -680,10 +682,21 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.v2.CheckAndMutateRowRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getPredicateFilterFieldBuilder();
+        getTrueMutationsFieldBuilder();
+        getFalseMutationsFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -780,10 +793,13 @@ private void buildPartial0(com.google.bigtable.v2.CheckAndMutateRowRequest resul
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.rowKey_ = rowKey_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.predicateFilter_ =
             predicateFilterBuilder_ == null ? predicateFilter_ : predicateFilterBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1407,8 +1423,10 @@ public Builder mergePredicateFilter(com.google.bigtable.v2.RowFilter value) {
       } else {
         predicateFilterBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000008;
-      onChanged();
+      if (predicateFilter_ != null) {
+        bitField0_ |= 0x00000008;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowRequestOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowRequestOrBuilder.java
index 0ccbd366c8..2cb8e2e617 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface CheckAndMutateRowRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowResponse.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowResponse.java
index 548cb6e22e..9000339d36 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowResponse.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowResponseOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowResponseOrBuilder.java
index cf91a9a3b5..b59283a89c 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/CheckAndMutateRowResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface CheckAndMutateRowResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Column.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Column.java
index 931c6f3799..2c8211b357 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Column.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Column.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnOrBuilder.java
index 096b3fbda3..c9064275f7 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface ColumnOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnRange.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnRange.java
index c042ad436b..e741d7cb37 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnRange.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnRange.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnRangeOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnRangeOrBuilder.java
index 90a546be46..505d263ea8 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnRangeOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ColumnRangeOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface ColumnRangeOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/DataProto.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/DataProto.java
index 6d285061d5..9e7ce61f63 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/DataProto.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/DataProto.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public final class DataProto {
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Family.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Family.java
index a3d0001fea..800e59d6e0 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Family.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Family.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FamilyOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FamilyOrBuilder.java
index 605df9bbb1..66440e89d1 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FamilyOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FamilyOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface FamilyOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlags.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlags.java
index 8b954a711d..8ec9e22fa2 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlags.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlags.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/feature_flags.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsOrBuilder.java
index 46a11de680..4e5e3c3f6a 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/feature_flags.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface FeatureFlagsOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsProto.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsProto.java
index a402ca7ca6..0bd27e36b5 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsProto.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsProto.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/feature_flags.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public final class FeatureFlagsProto {
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FullReadStatsView.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FullReadStatsView.java
index 38b82093ad..7e4a4499ed 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FullReadStatsView.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FullReadStatsView.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/request_stats.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -60,6 +61,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.v2.FullReadStatsView.Builder.class);
   }
 
+  private int bitField0_;
   public static final int READ_ITERATION_STATS_FIELD_NUMBER = 1;
   private com.google.bigtable.v2.ReadIterationStats readIterationStats_;
   /**
@@ -78,7 +80,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasReadIterationStats() {
-    return readIterationStats_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -135,7 +137,7 @@ public com.google.bigtable.v2.ReadIterationStatsOrBuilder getReadIterationStatsO
    */
   @java.lang.Override
   public boolean hasRequestLatencyStats() {
-    return requestLatencyStats_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -186,10 +188,10 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (readIterationStats_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getReadIterationStats());
     }
-    if (requestLatencyStats_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(2, getRequestLatencyStats());
     }
     getUnknownFields().writeTo(output);
@@ -201,10 +203,10 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (readIterationStats_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getReadIterationStats());
     }
-    if (requestLatencyStats_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRequestLatencyStats());
     }
     size += getUnknownFields().getSerializedSize();
@@ -378,10 +380,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.v2.FullReadStatsView.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getReadIterationStatsFieldBuilder();
+        getRequestLatencyStatsFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -434,18 +446,22 @@ public com.google.bigtable.v2.FullReadStatsView buildPartial() {
 
     private void buildPartial0(com.google.bigtable.v2.FullReadStatsView result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.readIterationStats_ =
             readIterationStatsBuilder_ == null
                 ? readIterationStats_
                 : readIterationStatsBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.requestLatencyStats_ =
             requestLatencyStatsBuilder_ == null
                 ? requestLatencyStats_
                 : requestLatencyStatsBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -677,8 +693,10 @@ public Builder mergeReadIterationStats(com.google.bigtable.v2.ReadIterationStats
       } else {
         readIterationStatsBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (readIterationStats_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -879,8 +897,10 @@ public Builder mergeRequestLatencyStats(com.google.bigtable.v2.RequestLatencySta
       } else {
         requestLatencyStatsBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (requestLatencyStats_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FullReadStatsViewOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FullReadStatsViewOrBuilder.java
index 03e0930776..df26d0173c 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FullReadStatsViewOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FullReadStatsViewOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/request_stats.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface FullReadStatsViewOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsRequest.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsRequest.java
index 88df5c2b39..6a0b4cbe66 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsRequest.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsRequestOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsRequestOrBuilder.java
index 914bb5f440..dd67fe5fbf 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface GenerateInitialChangeStreamPartitionsRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsResponse.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsResponse.java
index bbc7b9a5b4..af34fb73d6 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsResponse.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -63,6 +64,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse.Builder.class);
   }
 
+  private int bitField0_;
   public static final int PARTITION_FIELD_NUMBER = 1;
   private com.google.bigtable.v2.StreamPartition partition_;
   /**
@@ -78,7 +80,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasPartition() {
-    return partition_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -127,7 +129,7 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (partition_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getPartition());
     }
     getUnknownFields().writeTo(output);
@@ -139,7 +141,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (partition_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getPartition());
     }
     size += getUnknownFields().getSerializedSize();
@@ -310,10 +312,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
 
     // Construct using
     // com.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getPartitionFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -364,9 +375,12 @@ public com.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse buil
     private void buildPartial0(
         com.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.partition_ = partitionBuilder_ == null ? partition_ : partitionBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -574,8 +588,10 @@ public Builder mergePartition(com.google.bigtable.v2.StreamPartition value) {
       } else {
         partitionBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (partition_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsResponseOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsResponseOrBuilder.java
index 958e9bbcec..79782264e8 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/GenerateInitialChangeStreamPartitionsResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface GenerateInitialChangeStreamPartitionsResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowRequest.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowRequest.java
index 6cac26a1c7..00951d8bad 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowRequest.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowRequestOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowRequestOrBuilder.java
index 2b9af6d49f..9afdab443c 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface MutateRowRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowResponse.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowResponse.java
index f256d74d9a..86da56df86 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowResponse.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowResponseOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowResponseOrBuilder.java
index 82293b41f4..11bd71e21b 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface MutateRowResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsRequest.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsRequest.java
index 0c166f8996..6b33e66fce 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsRequest.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsRequestOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsRequestOrBuilder.java
index ac0fd557bc..2eac544e6c 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface MutateRowsRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponse.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponse.java
index d10fef4076..89c986e9fb 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponse.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -167,6 +168,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
               com.google.bigtable.v2.MutateRowsResponse.Entry.Builder.class);
     }
 
+    private int bitField0_;
     public static final int INDEX_FIELD_NUMBER = 1;
     private long index_ = 0L;
     /**
@@ -204,7 +206,7 @@ public long getIndex() {
      */
     @java.lang.Override
     public boolean hasStatus() {
-      return status_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      *
@@ -258,7 +260,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
       if (index_ != 0L) {
         output.writeInt64(1, index_);
       }
-      if (status_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(2, getStatus());
       }
       getUnknownFields().writeTo(output);
@@ -273,7 +275,7 @@ public int getSerializedSize() {
       if (index_ != 0L) {
         size += com.google.protobuf.CodedOutputStream.computeInt64Size(1, index_);
       }
-      if (status_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getStatus());
       }
       size += getUnknownFields().getSerializedSize();
@@ -445,10 +447,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       }
 
       // Construct using com.google.bigtable.v2.MutateRowsResponse.Entry.newBuilder()
-      private Builder() {}
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
 
       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
+        maybeForceBuilderInitialization();
+      }
+
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+          getStatusFieldBuilder();
+        }
       }
 
       @java.lang.Override
@@ -500,9 +511,12 @@ private void buildPartial0(com.google.bigtable.v2.MutateRowsResponse.Entry resul
         if (((from_bitField0_ & 0x00000001) != 0)) {
           result.index_ = index_;
         }
+        int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000002) != 0)) {
           result.status_ = statusBuilder_ == null ? status_ : statusBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -785,8 +799,10 @@ public Builder mergeStatus(com.google.rpc.Status value) {
         } else {
           statusBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000002;
-        onChanged();
+        if (status_ != null) {
+          bitField0_ |= 0x00000002;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -1962,8 +1978,10 @@ public Builder mergeRateLimitInfo(com.google.bigtable.v2.RateLimitInfo value) {
       } else {
         rateLimitInfoBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000002;
-      onChanged();
+      if (rateLimitInfo_ != null) {
+        bitField0_ |= 0x00000002;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponseOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponseOrBuilder.java
index 5cd11a30c1..57b6b5412c 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface MutateRowsResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Mutation.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Mutation.java
index 8611b60b37..a8171a17d9 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Mutation.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Mutation.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -1183,6 +1184,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
               com.google.bigtable.v2.Mutation.DeleteFromColumn.Builder.class);
     }
 
+    private int bitField0_;
     public static final int FAMILY_NAME_FIELD_NUMBER = 1;
 
     @SuppressWarnings("serial")
@@ -1270,7 +1272,7 @@ public com.google.protobuf.ByteString getColumnQualifier() {
      */
     @java.lang.Override
     public boolean hasTimeRange() {
-      return timeRange_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      *
@@ -1325,7 +1327,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
       if (!columnQualifier_.isEmpty()) {
         output.writeBytes(2, columnQualifier_);
       }
-      if (timeRange_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(3, getTimeRange());
       }
       getUnknownFields().writeTo(output);
@@ -1343,7 +1345,7 @@ public int getSerializedSize() {
       if (!columnQualifier_.isEmpty()) {
         size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, columnQualifier_);
       }
-      if (timeRange_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getTimeRange());
       }
       size += getUnknownFields().getSerializedSize();
@@ -1519,10 +1521,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       }
 
       // Construct using com.google.bigtable.v2.Mutation.DeleteFromColumn.newBuilder()
-      private Builder() {}
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
 
       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
+        maybeForceBuilderInitialization();
+      }
+
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+          getTimeRangeFieldBuilder();
+        }
       }
 
       @java.lang.Override
@@ -1578,9 +1589,12 @@ private void buildPartial0(com.google.bigtable.v2.Mutation.DeleteFromColumn resu
         if (((from_bitField0_ & 0x00000002) != 0)) {
           result.columnQualifier_ = columnQualifier_;
         }
+        int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000004) != 0)) {
           result.timeRange_ = timeRangeBuilder_ == null ? timeRange_ : timeRangeBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -1977,8 +1991,10 @@ public Builder mergeTimeRange(com.google.bigtable.v2.TimestampRange value) {
         } else {
           timeRangeBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000004;
-        onChanged();
+        if (timeRange_ != null) {
+          bitField0_ |= 0x00000004;
+          onChanged();
+        }
         return this;
       }
       /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutationOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutationOrBuilder.java
index 3bd6030731..2eb748508e 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutationOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutationOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface MutationOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmRequest.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmRequest.java
index 63e9c36a6e..881cdbc673 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmRequest.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmRequestOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmRequestOrBuilder.java
index cefd1d53bd..6bab735e06 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface PingAndWarmRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmResponse.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmResponse.java
index 46d0ea3edd..a88ccd995d 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmResponse.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmResponseOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmResponseOrBuilder.java
index b2e9ebafda..f3bc66cd04 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/PingAndWarmResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface PingAndWarmResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfo.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfo.java
index 3cff835777..27e7250953 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfo.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfo.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -60,6 +61,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.v2.RateLimitInfo.Builder.class);
   }
 
+  private int bitField0_;
   public static final int PERIOD_FIELD_NUMBER = 1;
   private com.google.protobuf.Duration period_;
   /**
@@ -80,7 +82,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasPeriod() {
-    return period_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -161,7 +163,7 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (period_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getPeriod());
     }
     if (java.lang.Double.doubleToRawLongBits(factor_) != 0) {
@@ -176,7 +178,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (period_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getPeriod());
     }
     if (java.lang.Double.doubleToRawLongBits(factor_) != 0) {
@@ -350,10 +352,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.v2.RateLimitInfo.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getPeriodFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -401,12 +412,15 @@ public com.google.bigtable.v2.RateLimitInfo buildPartial() {
 
     private void buildPartial0(com.google.bigtable.v2.RateLimitInfo result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.period_ = periodBuilder_ == null ? period_ : periodBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.factor_ = factor_;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -642,8 +656,10 @@ public Builder mergePeriod(com.google.protobuf.Duration value) {
       } else {
         periodBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (period_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfoOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfoOrBuilder.java
index e4c25dd22e..a530d8ca47 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfoOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfoOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface RateLimitInfoOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamRequest.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamRequest.java
index 673cb20ba8..5a74491fae 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamRequest.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -64,6 +65,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.v2.ReadChangeStreamRequest.Builder.class);
   }
 
+  private int bitField0_;
   private int startFromCase_ = 0;
 
   @SuppressWarnings("serial")
@@ -244,7 +246,7 @@ public com.google.protobuf.ByteString getAppProfileIdBytes() {
    */
   @java.lang.Override
   public boolean hasPartition() {
-    return partition_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -434,7 +436,7 @@ public com.google.bigtable.v2.StreamContinuationTokensOrBuilder getContinuationT
    */
   @java.lang.Override
   public boolean hasEndTime() {
-    return endTime_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -485,7 +487,7 @@ public com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder() {
    */
   @java.lang.Override
   public boolean hasHeartbeatDuration() {
-    return heartbeatDuration_ != null;
+    return ((bitField0_ & 0x00000004) != 0);
   }
   /**
    *
@@ -542,19 +544,19 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(appProfileId_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, appProfileId_);
     }
-    if (partition_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(3, getPartition());
     }
     if (startFromCase_ == 4) {
       output.writeMessage(4, (com.google.protobuf.Timestamp) startFrom_);
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(5, getEndTime());
     }
     if (startFromCase_ == 6) {
       output.writeMessage(6, (com.google.bigtable.v2.StreamContinuationTokens) startFrom_);
     }
-    if (heartbeatDuration_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       output.writeMessage(7, getHeartbeatDuration());
     }
     getUnknownFields().writeTo(output);
@@ -572,7 +574,7 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(appProfileId_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, appProfileId_);
     }
-    if (partition_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getPartition());
     }
     if (startFromCase_ == 4) {
@@ -580,7 +582,7 @@ public int getSerializedSize() {
           com.google.protobuf.CodedOutputStream.computeMessageSize(
               4, (com.google.protobuf.Timestamp) startFrom_);
     }
-    if (endTime_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getEndTime());
     }
     if (startFromCase_ == 6) {
@@ -588,7 +590,7 @@ public int getSerializedSize() {
           com.google.protobuf.CodedOutputStream.computeMessageSize(
               6, (com.google.bigtable.v2.StreamContinuationTokens) startFrom_);
     }
-    if (heartbeatDuration_ != null) {
+    if (((bitField0_ & 0x00000004) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getHeartbeatDuration());
     }
     size += getUnknownFields().getSerializedSize();
@@ -801,10 +803,21 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.v2.ReadChangeStreamRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getPartitionFieldBuilder();
+        getEndTimeFieldBuilder();
+        getHeartbeatDurationFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -879,18 +892,23 @@ private void buildPartial0(com.google.bigtable.v2.ReadChangeStreamRequest result
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.appProfileId_ = appProfileId_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.partition_ = partitionBuilder_ == null ? partition_ : partitionBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000020) != 0)) {
         result.endTime_ = endTimeBuilder_ == null ? endTime_ : endTimeBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000040) != 0)) {
         result.heartbeatDuration_ =
             heartbeatDurationBuilder_ == null
                 ? heartbeatDuration_
                 : heartbeatDurationBuilder_.build();
+        to_bitField0_ |= 0x00000004;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     private void buildPartialOneofs(com.google.bigtable.v2.ReadChangeStreamRequest result) {
@@ -1436,8 +1454,10 @@ public Builder mergePartition(com.google.bigtable.v2.StreamPartition value) {
       } else {
         partitionBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (partition_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -2150,8 +2170,10 @@ public Builder mergeEndTime(com.google.protobuf.Timestamp value) {
       } else {
         endTimeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000020;
-      onChanged();
+      if (endTime_ != null) {
+        bitField0_ |= 0x00000020;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -2344,8 +2366,10 @@ public Builder mergeHeartbeatDuration(com.google.protobuf.Duration value) {
       } else {
         heartbeatDurationBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000040;
-      onChanged();
+      if (heartbeatDuration_ != null) {
+        bitField0_ |= 0x00000040;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamRequestOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamRequestOrBuilder.java
index 41f8c2da0d..d13e97b97c 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface ReadChangeStreamRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamResponse.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamResponse.java
index 5cf7f03dde..0eae8431f5 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamResponse.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -977,6 +978,7 @@ public com.google.protobuf.Parser<ChunkInfo> getParserForType() {
       }
     }
 
+    private int bitField0_;
     public static final int CHUNK_INFO_FIELD_NUMBER = 1;
     private com.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo chunkInfo_;
     /**
@@ -994,7 +996,7 @@ public com.google.protobuf.Parser<ChunkInfo> getParserForType() {
      */
     @java.lang.Override
     public boolean hasChunkInfo() {
-      return chunkInfo_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      *
@@ -1053,7 +1055,7 @@ public com.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo g
      */
     @java.lang.Override
     public boolean hasMutation() {
-      return mutation_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      *
@@ -1102,10 +1104,10 @@ public final boolean isInitialized() {
 
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-      if (chunkInfo_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(1, getChunkInfo());
       }
-      if (mutation_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         output.writeMessage(2, getMutation());
       }
       getUnknownFields().writeTo(output);
@@ -1117,10 +1119,10 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (chunkInfo_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getChunkInfo());
       }
-      if (mutation_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getMutation());
       }
       size += getUnknownFields().getSerializedSize();
@@ -1298,10 +1300,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       }
 
       // Construct using com.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.newBuilder()
-      private Builder() {}
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
 
       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
+        maybeForceBuilderInitialization();
+      }
+
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+          getChunkInfoFieldBuilder();
+          getMutationFieldBuilder();
+        }
       }
 
       @java.lang.Override
@@ -1356,12 +1368,16 @@ public com.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk buildPartia
       private void buildPartial0(
           com.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk result) {
         int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
           result.chunkInfo_ = chunkInfoBuilder_ == null ? chunkInfo_ : chunkInfoBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
         if (((from_bitField0_ & 0x00000002) != 0)) {
           result.mutation_ = mutationBuilder_ == null ? mutation_ : mutationBuilder_.build();
+          to_bitField0_ |= 0x00000002;
         }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -1597,8 +1613,10 @@ public Builder mergeChunkInfo(
         } else {
           chunkInfoBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000001;
-        onChanged();
+        if (chunkInfo_ != null) {
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -1801,8 +1819,10 @@ public Builder mergeMutation(com.google.bigtable.v2.Mutation value) {
         } else {
           mutationBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000002;
-        onChanged();
+        if (mutation_ != null) {
+          bitField0_ |= 0x00000002;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -2473,6 +2493,7 @@ private Type(int value) {
       // @@protoc_insertion_point(enum_scope:google.bigtable.v2.ReadChangeStreamResponse.DataChange.Type)
     }
 
+    private int bitField0_;
     public static final int TYPE_FIELD_NUMBER = 1;
     private int type_ = 0;
     /**
@@ -2598,7 +2619,7 @@ public com.google.protobuf.ByteString getRowKey() {
      */
     @java.lang.Override
     public boolean hasCommitTimestamp() {
-      return commitTimestamp_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      *
@@ -2833,7 +2854,7 @@ public com.google.protobuf.ByteString getTokenBytes() {
      */
     @java.lang.Override
     public boolean hasEstimatedLowWatermark() {
-      return estimatedLowWatermark_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      *
@@ -2903,7 +2924,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
       if (!rowKey_.isEmpty()) {
         output.writeBytes(3, rowKey_);
       }
-      if (commitTimestamp_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(4, getCommitTimestamp());
       }
       if (tiebreaker_ != 0) {
@@ -2918,7 +2939,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
       if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
         com.google.protobuf.GeneratedMessageV3.writeString(output, 9, token_);
       }
-      if (estimatedLowWatermark_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         output.writeMessage(10, getEstimatedLowWatermark());
       }
       getUnknownFields().writeTo(output);
@@ -2941,7 +2962,7 @@ public int getSerializedSize() {
       if (!rowKey_.isEmpty()) {
         size += com.google.protobuf.CodedOutputStream.computeBytesSize(3, rowKey_);
       }
-      if (commitTimestamp_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getCommitTimestamp());
       }
       if (tiebreaker_ != 0) {
@@ -2956,7 +2977,7 @@ public int getSerializedSize() {
       if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
         size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, token_);
       }
-      if (estimatedLowWatermark_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         size +=
             com.google.protobuf.CodedOutputStream.computeMessageSize(
                 10, getEstimatedLowWatermark());
@@ -3164,10 +3185,21 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       }
 
       // Construct using com.google.bigtable.v2.ReadChangeStreamResponse.DataChange.newBuilder()
-      private Builder() {}
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
 
       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
+        maybeForceBuilderInitialization();
+      }
+
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+          getCommitTimestampFieldBuilder();
+          getChunksFieldBuilder();
+          getEstimatedLowWatermarkFieldBuilder();
+        }
       }
 
       @java.lang.Override
@@ -3258,9 +3290,11 @@ private void buildPartial0(
         if (((from_bitField0_ & 0x00000004) != 0)) {
           result.rowKey_ = rowKey_;
         }
+        int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000008) != 0)) {
           result.commitTimestamp_ =
               commitTimestampBuilder_ == null ? commitTimestamp_ : commitTimestampBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
         if (((from_bitField0_ & 0x00000010) != 0)) {
           result.tiebreaker_ = tiebreaker_;
@@ -3276,7 +3310,9 @@ private void buildPartial0(
               estimatedLowWatermarkBuilder_ == null
                   ? estimatedLowWatermark_
                   : estimatedLowWatermarkBuilder_.build();
+          to_bitField0_ |= 0x00000002;
         }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -3859,8 +3895,10 @@ public Builder mergeCommitTimestamp(com.google.protobuf.Timestamp value) {
         } else {
           commitTimestampBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000008;
-        onChanged();
+        if (commitTimestamp_ != null) {
+          bitField0_ |= 0x00000008;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -4728,8 +4766,10 @@ public Builder mergeEstimatedLowWatermark(com.google.protobuf.Timestamp value) {
         } else {
           estimatedLowWatermarkBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000100;
-        onChanged();
+        if (estimatedLowWatermark_ != null) {
+          bitField0_ |= 0x00000100;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -5030,6 +5070,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
               com.google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.Builder.class);
     }
 
+    private int bitField0_;
     public static final int CONTINUATION_TOKEN_FIELD_NUMBER = 1;
     private com.google.bigtable.v2.StreamContinuationToken continuationToken_;
     /**
@@ -5046,7 +5087,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      */
     @java.lang.Override
     public boolean hasContinuationToken() {
-      return continuationToken_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      *
@@ -5103,7 +5144,7 @@ public com.google.bigtable.v2.StreamContinuationTokenOrBuilder getContinuationTo
      */
     @java.lang.Override
     public boolean hasEstimatedLowWatermark() {
-      return estimatedLowWatermark_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      *
@@ -5162,10 +5203,10 @@ public final boolean isInitialized() {
 
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-      if (continuationToken_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(1, getContinuationToken());
       }
-      if (estimatedLowWatermark_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         output.writeMessage(2, getEstimatedLowWatermark());
       }
       getUnknownFields().writeTo(output);
@@ -5177,10 +5218,10 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (continuationToken_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContinuationToken());
       }
-      if (estimatedLowWatermark_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         size +=
             com.google.protobuf.CodedOutputStream.computeMessageSize(2, getEstimatedLowWatermark());
       }
@@ -5360,10 +5401,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       }
 
       // Construct using com.google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.newBuilder()
-      private Builder() {}
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
 
       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
+        maybeForceBuilderInitialization();
+      }
+
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+          getContinuationTokenFieldBuilder();
+          getEstimatedLowWatermarkFieldBuilder();
+        }
       }
 
       @java.lang.Override
@@ -5416,18 +5467,22 @@ public com.google.bigtable.v2.ReadChangeStreamResponse.Heartbeat buildPartial()
 
       private void buildPartial0(com.google.bigtable.v2.ReadChangeStreamResponse.Heartbeat result) {
         int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
           result.continuationToken_ =
               continuationTokenBuilder_ == null
                   ? continuationToken_
                   : continuationTokenBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
         if (((from_bitField0_ & 0x00000002) != 0)) {
           result.estimatedLowWatermark_ =
               estimatedLowWatermarkBuilder_ == null
                   ? estimatedLowWatermark_
                   : estimatedLowWatermarkBuilder_.build();
+          to_bitField0_ |= 0x00000002;
         }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -5652,8 +5707,10 @@ public Builder mergeContinuationToken(com.google.bigtable.v2.StreamContinuationT
         } else {
           continuationTokenBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000001;
-        onChanged();
+        if (continuationToken_ != null) {
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -5866,8 +5923,10 @@ public Builder mergeEstimatedLowWatermark(com.google.protobuf.Timestamp value) {
         } else {
           estimatedLowWatermarkBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000002;
-        onChanged();
+        if (estimatedLowWatermark_ != null) {
+          bitField0_ |= 0x00000002;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -6255,6 +6314,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
               com.google.bigtable.v2.ReadChangeStreamResponse.CloseStream.Builder.class);
     }
 
+    private int bitField0_;
     public static final int STATUS_FIELD_NUMBER = 1;
     private com.google.rpc.Status status_;
     /**
@@ -6270,7 +6330,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      */
     @java.lang.Override
     public boolean hasStatus() {
-      return status_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      *
@@ -6474,7 +6534,7 @@ public final boolean isInitialized() {
 
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-      if (status_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(1, getStatus());
       }
       for (int i = 0; i < continuationTokens_.size(); i++) {
@@ -6492,7 +6552,7 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (status_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getStatus());
       }
       for (int i = 0; i < continuationTokens_.size(); i++) {
@@ -6698,10 +6758,21 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       }
 
       // Construct using com.google.bigtable.v2.ReadChangeStreamResponse.CloseStream.newBuilder()
-      private Builder() {}
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
 
       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
+        maybeForceBuilderInitialization();
+      }
+
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+          getStatusFieldBuilder();
+          getContinuationTokensFieldBuilder();
+          getNewPartitionsFieldBuilder();
+        }
       }
 
       @java.lang.Override
@@ -6788,9 +6859,12 @@ private void buildPartialRepeatedFields(
       private void buildPartial0(
           com.google.bigtable.v2.ReadChangeStreamResponse.CloseStream result) {
         int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
           result.status_ = statusBuilder_ == null ? status_ : statusBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -7075,8 +7149,10 @@ public Builder mergeStatus(com.google.rpc.Status value) {
         } else {
           statusBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000001;
-        onChanged();
+        if (status_ != null) {
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
         return this;
       }
       /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamResponseOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamResponseOrBuilder.java
index fb104f1ffc..074d396159 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadChangeStreamResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface ReadChangeStreamResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadIterationStats.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadIterationStats.java
index 4d61419c23..27c28bac65 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadIterationStats.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadIterationStats.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/request_stats.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadIterationStatsOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadIterationStatsOrBuilder.java
index 59129fbe80..edc6650b49 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadIterationStatsOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadIterationStatsOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/request_stats.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface ReadIterationStatsOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowRequest.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowRequest.java
index 6b12c90680..1096b13218 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowRequest.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowRequestOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowRequestOrBuilder.java
index f6fa30d33b..8148ae31f6 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface ReadModifyWriteRowRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowResponse.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowResponse.java
index c084688950..d9912ac432 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowResponse.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -60,6 +61,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.v2.ReadModifyWriteRowResponse.Builder.class);
   }
 
+  private int bitField0_;
   public static final int ROW_FIELD_NUMBER = 1;
   private com.google.bigtable.v2.Row row_;
   /**
@@ -75,7 +77,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasRow() {
-    return row_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -120,7 +122,7 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (row_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getRow());
     }
     getUnknownFields().writeTo(output);
@@ -132,7 +134,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (row_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getRow());
     }
     size += getUnknownFields().getSerializedSize();
@@ -299,10 +301,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.v2.ReadModifyWriteRowResponse.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getRowFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -350,9 +361,12 @@ public com.google.bigtable.v2.ReadModifyWriteRowResponse buildPartial() {
 
     private void buildPartial0(com.google.bigtable.v2.ReadModifyWriteRowResponse result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.row_ = rowBuilder_ == null ? row_ : rowBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -555,8 +569,10 @@ public Builder mergeRow(com.google.bigtable.v2.Row value) {
       } else {
         rowBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (row_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowResponseOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowResponseOrBuilder.java
index 69dbb56927..9e39c57197 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRowResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface ReadModifyWriteRowResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRule.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRule.java
index fe17be957f..ae29d07838 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRule.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRule.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRuleOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRuleOrBuilder.java
index 7a07a32b70..87b75fb264 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRuleOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadModifyWriteRuleOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface ReadModifyWriteRuleOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequest.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequest.java
index daf12899a5..17ed10b7c9 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequest.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -229,6 +230,7 @@ private RequestStatsView(int value) {
     // @@protoc_insertion_point(enum_scope:google.bigtable.v2.ReadRowsRequest.RequestStatsView)
   }
 
+  private int bitField0_;
   public static final int TABLE_NAME_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -357,7 +359,7 @@ public com.google.protobuf.ByteString getAppProfileIdBytes() {
    */
   @java.lang.Override
   public boolean hasRows() {
-    return rows_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -406,7 +408,7 @@ public com.google.bigtable.v2.RowSetOrBuilder getRowsOrBuilder() {
    */
   @java.lang.Override
   public boolean hasFilter() {
-    return filter_ != null;
+    return ((bitField0_ & 0x00000002) != 0);
   }
   /**
    *
@@ -541,10 +543,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tableName_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, tableName_);
     }
-    if (rows_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(2, getRows());
     }
-    if (filter_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       output.writeMessage(3, getFilter());
     }
     if (rowsLimit_ != 0L) {
@@ -573,10 +575,10 @@ public int getSerializedSize() {
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tableName_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, tableName_);
     }
-    if (rows_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRows());
     }
-    if (filter_ != null) {
+    if (((bitField0_ & 0x00000002) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getFilter());
     }
     if (rowsLimit_ != 0L) {
@@ -779,10 +781,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.v2.ReadRowsRequest.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getRowsFieldBuilder();
+        getFilterFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -846,11 +858,14 @@ private void buildPartial0(com.google.bigtable.v2.ReadRowsRequest result) {
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.appProfileId_ = appProfileId_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.rows_ = rowsBuilder_ == null ? rows_ : rowsBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000008) != 0)) {
         result.filter_ = filterBuilder_ == null ? filter_ : filterBuilder_.build();
+        to_bitField0_ |= 0x00000002;
       }
       if (((from_bitField0_ & 0x00000010) != 0)) {
         result.rowsLimit_ = rowsLimit_;
@@ -861,6 +876,7 @@ private void buildPartial0(com.google.bigtable.v2.ReadRowsRequest result) {
       if (((from_bitField0_ & 0x00000040) != 0)) {
         result.reversed_ = reversed_;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -1362,8 +1378,10 @@ public Builder mergeRows(com.google.bigtable.v2.RowSet value) {
       } else {
         rowsBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (rows_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
@@ -1550,8 +1568,10 @@ public Builder mergeFilter(com.google.bigtable.v2.RowFilter value) {
       } else {
         filterBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000008;
-      onChanged();
+      if (filter_ != null) {
+        bitField0_ |= 0x00000008;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequestOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequestOrBuilder.java
index 1b68fb205f..46e0bb52bc 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface ReadRowsRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsResponse.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsResponse.java
index 60f21eb50a..c0523de12e 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsResponse.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -396,6 +397,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
               com.google.bigtable.v2.ReadRowsResponse.CellChunk.Builder.class);
     }
 
+    private int bitField0_;
     private int rowStatusCase_ = 0;
 
     @SuppressWarnings("serial")
@@ -486,7 +488,7 @@ public com.google.protobuf.ByteString getRowKey() {
      */
     @java.lang.Override
     public boolean hasFamilyName() {
-      return familyName_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      *
@@ -550,7 +552,7 @@ public com.google.protobuf.StringValueOrBuilder getFamilyNameOrBuilder() {
      */
     @java.lang.Override
     public boolean hasQualifier() {
-      return qualifier_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      *
@@ -820,10 +822,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
       if (!rowKey_.isEmpty()) {
         output.writeBytes(1, rowKey_);
       }
-      if (familyName_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(2, getFamilyName());
       }
-      if (qualifier_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         output.writeMessage(3, getQualifier());
       }
       if (timestampMicros_ != 0L) {
@@ -856,10 +858,10 @@ public int getSerializedSize() {
       if (!rowKey_.isEmpty()) {
         size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, rowKey_);
       }
-      if (familyName_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getFamilyName());
       }
-      if (qualifier_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getQualifier());
       }
       if (timestampMicros_ != 0L) {
@@ -1104,10 +1106,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       }
 
       // Construct using com.google.bigtable.v2.ReadRowsResponse.CellChunk.newBuilder()
-      private Builder() {}
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
 
       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
+        maybeForceBuilderInitialization();
+      }
+
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+          getFamilyNameFieldBuilder();
+          getQualifierFieldBuilder();
+        }
       }
 
       @java.lang.Override
@@ -1171,12 +1183,15 @@ private void buildPartial0(com.google.bigtable.v2.ReadRowsResponse.CellChunk res
         if (((from_bitField0_ & 0x00000001) != 0)) {
           result.rowKey_ = rowKey_;
         }
+        int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000002) != 0)) {
           result.familyName_ =
               familyNameBuilder_ == null ? familyName_ : familyNameBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
         if (((from_bitField0_ & 0x00000004) != 0)) {
           result.qualifier_ = qualifierBuilder_ == null ? qualifier_ : qualifierBuilder_.build();
+          to_bitField0_ |= 0x00000002;
         }
         if (((from_bitField0_ & 0x00000008) != 0)) {
           result.timestampMicros_ = timestampMicros_;
@@ -1191,6 +1206,7 @@ private void buildPartial0(com.google.bigtable.v2.ReadRowsResponse.CellChunk res
         if (((from_bitField0_ & 0x00000040) != 0)) {
           result.valueSize_ = valueSize_;
         }
+        result.bitField0_ |= to_bitField0_;
       }
 
       private void buildPartialOneofs(com.google.bigtable.v2.ReadRowsResponse.CellChunk result) {
@@ -1595,8 +1611,10 @@ public Builder mergeFamilyName(com.google.protobuf.StringValue value) {
         } else {
           familyNameBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000002;
-        onChanged();
+        if (familyName_ != null) {
+          bitField0_ |= 0x00000002;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -1818,8 +1836,10 @@ public Builder mergeQualifier(com.google.protobuf.BytesValue value) {
         } else {
           qualifierBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000004;
-        onChanged();
+        if (qualifier_ != null) {
+          bitField0_ |= 0x00000004;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -2522,6 +2542,7 @@ public com.google.bigtable.v2.ReadRowsResponse.CellChunk getDefaultInstanceForTy
     }
   }
 
+  private int bitField0_;
   public static final int CHUNKS_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
@@ -2651,7 +2672,7 @@ public com.google.protobuf.ByteString getLastScannedRowKey() {
    */
   @java.lang.Override
   public boolean hasRequestStats() {
-    return requestStats_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -2744,7 +2765,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
     if (!lastScannedRowKey_.isEmpty()) {
       output.writeBytes(2, lastScannedRowKey_);
     }
-    if (requestStats_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(3, getRequestStats());
     }
     getUnknownFields().writeTo(output);
@@ -2762,7 +2783,7 @@ public int getSerializedSize() {
     if (!lastScannedRowKey_.isEmpty()) {
       size += com.google.protobuf.CodedOutputStream.computeBytesSize(2, lastScannedRowKey_);
     }
-    if (requestStats_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getRequestStats());
     }
     size += getUnknownFields().getSerializedSize();
@@ -2936,10 +2957,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.v2.ReadRowsResponse.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getChunksFieldBuilder();
+        getRequestStatsFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -3011,10 +3042,13 @@ private void buildPartial0(com.google.bigtable.v2.ReadRowsResponse result) {
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.lastScannedRowKey_ = lastScannedRowKey_;
       }
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000004) != 0)) {
         result.requestStats_ =
             requestStatsBuilder_ == null ? requestStats_ : requestStatsBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -3790,8 +3824,10 @@ public Builder mergeRequestStats(com.google.bigtable.v2.RequestStats value) {
       } else {
         requestStatsBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000004;
-      onChanged();
+      if (requestStats_ != null) {
+        bitField0_ |= 0x00000004;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsResponseOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsResponseOrBuilder.java
index 2aba1920c8..16c74dee19 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface ReadRowsResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestLatencyStats.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestLatencyStats.java
index 01dc04ee28..0cf5a9b2d0 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestLatencyStats.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestLatencyStats.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/request_stats.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -62,6 +63,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.v2.RequestLatencyStats.Builder.class);
   }
 
+  private int bitField0_;
   public static final int FRONTEND_SERVER_LATENCY_FIELD_NUMBER = 1;
   private com.google.protobuf.Duration frontendServerLatency_;
   /**
@@ -93,7 +95,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasFrontendServerLatency() {
-    return frontendServerLatency_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -174,7 +176,7 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (frontendServerLatency_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getFrontendServerLatency());
     }
     getUnknownFields().writeTo(output);
@@ -186,7 +188,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (frontendServerLatency_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size +=
           com.google.protobuf.CodedOutputStream.computeMessageSize(1, getFrontendServerLatency());
     }
@@ -356,10 +358,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.v2.RequestLatencyStats.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getFrontendServerLatencyFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -407,12 +418,15 @@ public com.google.bigtable.v2.RequestLatencyStats buildPartial() {
 
     private void buildPartial0(com.google.bigtable.v2.RequestLatencyStats result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.frontendServerLatency_ =
             frontendServerLatencyBuilder_ == null
                 ? frontendServerLatency_
                 : frontendServerLatencyBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -697,8 +711,10 @@ public Builder mergeFrontendServerLatency(com.google.protobuf.Duration value) {
       } else {
         frontendServerLatencyBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (frontendServerLatency_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestLatencyStatsOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestLatencyStatsOrBuilder.java
index 8df2bcac69..710adf95f9 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestLatencyStatsOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestLatencyStatsOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/request_stats.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface RequestLatencyStatsOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestStats.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestStats.java
index 78f5328a53..f14ad6ea6c 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestStats.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestStats.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/request_stats.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestStatsOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestStatsOrBuilder.java
index a46fc70f00..2b20731131 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestStatsOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestStatsOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/request_stats.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface RequestStatsOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestStatsProto.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestStatsProto.java
index 3e594ab418..d7e69060bb 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestStatsProto.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RequestStatsProto.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/request_stats.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public final class RequestStatsProto {
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ResponseParams.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ResponseParams.java
index 5519def7ef..2979c64bcc 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ResponseParams.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ResponseParams.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/response_params.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ResponseParamsOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ResponseParamsOrBuilder.java
index 7cffb523b5..c4dbb4c8c2 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ResponseParamsOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ResponseParamsOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/response_params.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface ResponseParamsOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ResponseParamsProto.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ResponseParamsProto.java
index 923f1b474e..b126d09b79 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ResponseParamsProto.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ResponseParamsProto.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/response_params.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public final class ResponseParamsProto {
@@ -59,7 +60,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
         new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
             internal_static_google_bigtable_v2_ResponseParams_descriptor,
             new java.lang.String[] {
-              "ZoneId", "ClusterId", "ZoneId", "ClusterId",
+              "ZoneId", "ClusterId",
             });
   }
 
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Row.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Row.java
index 717a607ca2..7b65efb6f3 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Row.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/Row.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowFilter.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowFilter.java
index 082ea77a81..5b43714ce9 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowFilter.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowFilter.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -2939,6 +2940,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
               com.google.bigtable.v2.RowFilter.Condition.Builder.class);
     }
 
+    private int bitField0_;
     public static final int PREDICATE_FILTER_FIELD_NUMBER = 1;
     private com.google.bigtable.v2.RowFilter predicateFilter_;
     /**
@@ -2955,7 +2957,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      */
     @java.lang.Override
     public boolean hasPredicateFilter() {
-      return predicateFilter_ != null;
+      return ((bitField0_ & 0x00000001) != 0);
     }
     /**
      *
@@ -3008,7 +3010,7 @@ public com.google.bigtable.v2.RowFilterOrBuilder getPredicateFilterOrBuilder() {
      */
     @java.lang.Override
     public boolean hasTrueFilter() {
-      return trueFilter_ != null;
+      return ((bitField0_ & 0x00000002) != 0);
     }
     /**
      *
@@ -3062,7 +3064,7 @@ public com.google.bigtable.v2.RowFilterOrBuilder getTrueFilterOrBuilder() {
      */
     @java.lang.Override
     public boolean hasFalseFilter() {
-      return falseFilter_ != null;
+      return ((bitField0_ & 0x00000004) != 0);
     }
     /**
      *
@@ -3115,13 +3117,13 @@ public final boolean isInitialized() {
 
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-      if (predicateFilter_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         output.writeMessage(1, getPredicateFilter());
       }
-      if (trueFilter_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         output.writeMessage(2, getTrueFilter());
       }
-      if (falseFilter_ != null) {
+      if (((bitField0_ & 0x00000004) != 0)) {
         output.writeMessage(3, getFalseFilter());
       }
       getUnknownFields().writeTo(output);
@@ -3133,13 +3135,13 @@ public int getSerializedSize() {
       if (size != -1) return size;
 
       size = 0;
-      if (predicateFilter_ != null) {
+      if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getPredicateFilter());
       }
-      if (trueFilter_ != null) {
+      if (((bitField0_ & 0x00000002) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTrueFilter());
       }
-      if (falseFilter_ != null) {
+      if (((bitField0_ & 0x00000004) != 0)) {
         size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getFalseFilter());
       }
       size += getUnknownFields().getSerializedSize();
@@ -3330,10 +3332,21 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
       }
 
       // Construct using com.google.bigtable.v2.RowFilter.Condition.newBuilder()
-      private Builder() {}
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
 
       private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
         super(parent);
+        maybeForceBuilderInitialization();
+      }
+
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+          getPredicateFilterFieldBuilder();
+          getTrueFilterFieldBuilder();
+          getFalseFilterFieldBuilder();
+        }
       }
 
       @java.lang.Override
@@ -3391,18 +3404,23 @@ public com.google.bigtable.v2.RowFilter.Condition buildPartial() {
 
       private void buildPartial0(com.google.bigtable.v2.RowFilter.Condition result) {
         int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
           result.predicateFilter_ =
               predicateFilterBuilder_ == null ? predicateFilter_ : predicateFilterBuilder_.build();
+          to_bitField0_ |= 0x00000001;
         }
         if (((from_bitField0_ & 0x00000002) != 0)) {
           result.trueFilter_ =
               trueFilterBuilder_ == null ? trueFilter_ : trueFilterBuilder_.build();
+          to_bitField0_ |= 0x00000002;
         }
         if (((from_bitField0_ & 0x00000004) != 0)) {
           result.falseFilter_ =
               falseFilterBuilder_ == null ? falseFilter_ : falseFilterBuilder_.build();
+          to_bitField0_ |= 0x00000004;
         }
+        result.bitField0_ |= to_bitField0_;
       }
 
       @java.lang.Override
@@ -3632,8 +3650,10 @@ public Builder mergePredicateFilter(com.google.bigtable.v2.RowFilter value) {
         } else {
           predicateFilterBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000001;
-        onChanged();
+        if (predicateFilter_ != null) {
+          bitField0_ |= 0x00000001;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -3824,8 +3844,10 @@ public Builder mergeTrueFilter(com.google.bigtable.v2.RowFilter value) {
         } else {
           trueFilterBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000002;
-        onChanged();
+        if (trueFilter_ != null) {
+          bitField0_ |= 0x00000002;
+          onChanged();
+        }
         return this;
       }
       /**
@@ -4021,8 +4043,10 @@ public Builder mergeFalseFilter(com.google.bigtable.v2.RowFilter value) {
         } else {
           falseFilterBuilder_.mergeFrom(value);
         }
-        bitField0_ |= 0x00000004;
-        onChanged();
+        if (falseFilter_ != null) {
+          bitField0_ |= 0x00000004;
+          onChanged();
+        }
         return this;
       }
       /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowFilterOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowFilterOrBuilder.java
index 7e7351e2a9..32016dd296 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowFilterOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowFilterOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface RowFilterOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowOrBuilder.java
index 0d9792d344..a0d4cfa67d 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface RowOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowRange.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowRange.java
index 9e9f477876..dfeceb7232 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowRange.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowRange.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowRangeOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowRangeOrBuilder.java
index b570e92cfd..50ff01b94d 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowRangeOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowRangeOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface RowRangeOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowSet.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowSet.java
index 62baf2c6ab..337a99363f 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowSet.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowSet.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -38,7 +39,7 @@ private RowSet(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
   }
 
   private RowSet() {
-    rowKeys_ = java.util.Collections.emptyList();
+    rowKeys_ = emptyList(com.google.protobuf.ByteString.class);
     rowRanges_ = java.util.Collections.emptyList();
   }
 
@@ -64,7 +65,8 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
   public static final int ROW_KEYS_FIELD_NUMBER = 1;
 
   @SuppressWarnings("serial")
-  private java.util.List<com.google.protobuf.ByteString> rowKeys_;
+  private com.google.protobuf.Internal.ProtobufList<com.google.protobuf.ByteString> rowKeys_ =
+      emptyList(com.google.protobuf.ByteString.class);
   /**
    *
    *
@@ -393,7 +395,7 @@ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
     public Builder clear() {
       super.clear();
       bitField0_ = 0;
-      rowKeys_ = java.util.Collections.emptyList();
+      rowKeys_ = emptyList(com.google.protobuf.ByteString.class);
       if (rowRangesBuilder_ == null) {
         rowRanges_ = java.util.Collections.emptyList();
       } else {
@@ -435,11 +437,6 @@ public com.google.bigtable.v2.RowSet buildPartial() {
     }
 
     private void buildPartialRepeatedFields(com.google.bigtable.v2.RowSet result) {
-      if (((bitField0_ & 0x00000001) != 0)) {
-        rowKeys_ = java.util.Collections.unmodifiableList(rowKeys_);
-        bitField0_ = (bitField0_ & ~0x00000001);
-      }
-      result.rowKeys_ = rowKeys_;
       if (rowRangesBuilder_ == null) {
         if (((bitField0_ & 0x00000002) != 0)) {
           rowRanges_ = java.util.Collections.unmodifiableList(rowRanges_);
@@ -453,6 +450,10 @@ private void buildPartialRepeatedFields(com.google.bigtable.v2.RowSet result) {
 
     private void buildPartial0(com.google.bigtable.v2.RowSet result) {
       int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        rowKeys_.makeImmutable();
+        result.rowKeys_ = rowKeys_;
+      }
     }
 
     @java.lang.Override
@@ -503,7 +504,8 @@ public Builder mergeFrom(com.google.bigtable.v2.RowSet other) {
       if (!other.rowKeys_.isEmpty()) {
         if (rowKeys_.isEmpty()) {
           rowKeys_ = other.rowKeys_;
-          bitField0_ = (bitField0_ & ~0x00000001);
+          rowKeys_.makeImmutable();
+          bitField0_ |= 0x00000001;
         } else {
           ensureRowKeysIsMutable();
           rowKeys_.addAll(other.rowKeys_);
@@ -601,14 +603,14 @@ public Builder mergeFrom(
 
     private int bitField0_;
 
-    private java.util.List<com.google.protobuf.ByteString> rowKeys_ =
-        java.util.Collections.emptyList();
+    private com.google.protobuf.Internal.ProtobufList<com.google.protobuf.ByteString> rowKeys_ =
+        emptyList(com.google.protobuf.ByteString.class);
 
     private void ensureRowKeysIsMutable() {
-      if (!((bitField0_ & 0x00000001) != 0)) {
-        rowKeys_ = new java.util.ArrayList<com.google.protobuf.ByteString>(rowKeys_);
-        bitField0_ |= 0x00000001;
+      if (!rowKeys_.isModifiable()) {
+        rowKeys_ = makeMutableCopy(rowKeys_);
       }
+      bitField0_ |= 0x00000001;
     }
     /**
      *
@@ -622,9 +624,8 @@ private void ensureRowKeysIsMutable() {
      * @return A list containing the rowKeys.
      */
     public java.util.List<com.google.protobuf.ByteString> getRowKeysList() {
-      return ((bitField0_ & 0x00000001) != 0)
-          ? java.util.Collections.unmodifiableList(rowKeys_)
-          : rowKeys_;
+      rowKeys_.makeImmutable();
+      return rowKeys_;
     }
     /**
      *
@@ -674,6 +675,7 @@ public Builder setRowKeys(int index, com.google.protobuf.ByteString value) {
       }
       ensureRowKeysIsMutable();
       rowKeys_.set(index, value);
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -695,6 +697,7 @@ public Builder addRowKeys(com.google.protobuf.ByteString value) {
       }
       ensureRowKeysIsMutable();
       rowKeys_.add(value);
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -714,6 +717,7 @@ public Builder addAllRowKeys(
         java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
       ensureRowKeysIsMutable();
       com.google.protobuf.AbstractMessageLite.Builder.addAll(values, rowKeys_);
+      bitField0_ |= 0x00000001;
       onChanged();
       return this;
     }
@@ -729,7 +733,7 @@ public Builder addAllRowKeys(
      * @return This builder for chaining.
      */
     public Builder clearRowKeys() {
-      rowKeys_ = java.util.Collections.emptyList();
+      rowKeys_ = emptyList(com.google.protobuf.ByteString.class);
       bitField0_ = (bitField0_ & ~0x00000001);
       onChanged();
       return this;
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowSetOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowSetOrBuilder.java
index ae9da0b2bd..6156bafbb3 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowSetOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RowSetOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface RowSetOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysRequest.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysRequest.java
index 8fa4db9550..2b024a0568 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysRequest.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysRequest.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysRequestOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysRequestOrBuilder.java
index e3d28714d2..161abc78fa 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysRequestOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysRequestOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface SampleRowKeysRequestOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysResponse.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysResponse.java
index 381c6a6b30..38c8e04aca 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysResponse.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysResponse.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysResponseOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysResponseOrBuilder.java
index e4ae4afe7c..7455377681 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysResponseOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/SampleRowKeysResponseOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/bigtable.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface SampleRowKeysResponseOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationToken.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationToken.java
index 7a4019b7b7..de6cfa8f62 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationToken.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationToken.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -64,6 +65,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.v2.StreamContinuationToken.Builder.class);
   }
 
+  private int bitField0_;
   public static final int PARTITION_FIELD_NUMBER = 1;
   private com.google.bigtable.v2.StreamPartition partition_;
   /**
@@ -79,7 +81,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasPartition() {
-    return partition_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -179,7 +181,7 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (partition_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getPartition());
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
@@ -194,7 +196,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (partition_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getPartition());
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
@@ -369,10 +371,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.v2.StreamContinuationToken.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getPartitionFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -421,12 +432,15 @@ public com.google.bigtable.v2.StreamContinuationToken buildPartial() {
 
     private void buildPartial0(com.google.bigtable.v2.StreamContinuationToken result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.partition_ = partitionBuilder_ == null ? partition_ : partitionBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
       if (((from_bitField0_ & 0x00000002) != 0)) {
         result.token_ = token_;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -641,8 +655,10 @@ public Builder mergePartition(com.google.bigtable.v2.StreamPartition value) {
       } else {
         partitionBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (partition_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationTokenOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationTokenOrBuilder.java
index 3dcc038bda..31c8338ba3 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationTokenOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationTokenOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface StreamContinuationTokenOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationTokens.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationTokens.java
index 279735f8e7..39798b0343 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationTokens.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationTokens.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationTokensOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationTokensOrBuilder.java
index 6949c2915c..0965862953 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationTokensOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamContinuationTokensOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface StreamContinuationTokensOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamPartition.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamPartition.java
index 13f2db7b8f..ca306a9e2d 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamPartition.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamPartition.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
@@ -61,6 +62,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
             com.google.bigtable.v2.StreamPartition.Builder.class);
   }
 
+  private int bitField0_;
   public static final int ROW_RANGE_FIELD_NUMBER = 1;
   private com.google.bigtable.v2.RowRange rowRange_;
   /**
@@ -77,7 +79,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    */
   @java.lang.Override
   public boolean hasRowRange() {
-    return rowRange_ != null;
+    return ((bitField0_ & 0x00000001) != 0);
   }
   /**
    *
@@ -124,7 +126,7 @@ public final boolean isInitialized() {
 
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
-    if (rowRange_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       output.writeMessage(1, getRowRange());
     }
     getUnknownFields().writeTo(output);
@@ -136,7 +138,7 @@ public int getSerializedSize() {
     if (size != -1) return size;
 
     size = 0;
-    if (rowRange_ != null) {
+    if (((bitField0_ & 0x00000001) != 0)) {
       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getRowRange());
     }
     size += getUnknownFields().getSerializedSize();
@@ -303,10 +305,19 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
     }
 
     // Construct using com.google.bigtable.v2.StreamPartition.newBuilder()
-    private Builder() {}
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
 
     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
       super(parent);
+      maybeForceBuilderInitialization();
+    }
+
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
+        getRowRangeFieldBuilder();
+      }
     }
 
     @java.lang.Override
@@ -354,9 +365,12 @@ public com.google.bigtable.v2.StreamPartition buildPartial() {
 
     private void buildPartial0(com.google.bigtable.v2.StreamPartition result) {
       int from_bitField0_ = bitField0_;
+      int to_bitField0_ = 0;
       if (((from_bitField0_ & 0x00000001) != 0)) {
         result.rowRange_ = rowRangeBuilder_ == null ? rowRange_ : rowRangeBuilder_.build();
+        to_bitField0_ |= 0x00000001;
       }
+      result.bitField0_ |= to_bitField0_;
     }
 
     @java.lang.Override
@@ -563,8 +577,10 @@ public Builder mergeRowRange(com.google.bigtable.v2.RowRange value) {
       } else {
         rowRangeBuilder_.mergeFrom(value);
       }
-      bitField0_ |= 0x00000001;
-      onChanged();
+      if (rowRange_ != null) {
+        bitField0_ |= 0x00000001;
+        onChanged();
+      }
       return this;
     }
     /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamPartitionOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamPartitionOrBuilder.java
index ad1ab2e07c..d6144bcc9c 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamPartitionOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/StreamPartitionOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface StreamPartitionOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/TimestampRange.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/TimestampRange.java
index 8b69d2a57e..2c7e1b542c 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/TimestampRange.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/TimestampRange.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/TimestampRangeOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/TimestampRangeOrBuilder.java
index 5b7f2fb5a8..be5e8ee0d4 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/TimestampRangeOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/TimestampRangeOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface TimestampRangeOrBuilder
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ValueRange.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ValueRange.java
index 9436d72bab..9bc40cf763 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ValueRange.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ValueRange.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 /**
diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ValueRangeOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ValueRangeOrBuilder.java
index ad42a73a72..e1598c1540 100644
--- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ValueRangeOrBuilder.java
+++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ValueRangeOrBuilder.java
@@ -16,6 +16,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/bigtable/v2/data.proto
 
+// Protobuf Java Version: 3.25.2
 package com.google.bigtable.v2;
 
 public interface ValueRangeOrBuilder