diff --git a/README.md b/README.md index 84a7556298..946711b5b5 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.74.0') +implementation platform('com.google.cloud:libraries-bom:26.75.0') implementation 'com.google.cloud:google-cloud-bigtable' ``` diff --git a/generation_config.yaml b/generation_config.yaml index 85cd8004ea..d5e6f4a04f 100644 --- a/generation_config.yaml +++ b/generation_config.yaml @@ -1,6 +1,6 @@ gapic_generator_version: 2.66.0 -googleapis_commitish: fa4dc54cf123a351f3215b384a7dc7c9f36005b7 -libraries_bom_version: 26.74.0 +googleapis_commitish: 85b3f459f91cd08669c27da47d07bb57f6d9aa4d +libraries_bom_version: 26.75.0 template_excludes: - .gitignore - .kokoro/presubmit/integration.cfg 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 a7f4f88e42..edfd3eed0c 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 @@ -2654,6 +2654,42 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.bigtable.admin.v2.TieredStorageConfig", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.bigtable.admin.v2.TieredStorageConfig$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.bigtable.admin.v2.TieredStorageRule", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.bigtable.admin.v2.TieredStorageRule$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.bigtable.admin.v2.Type", "queryAllDeclaredConstructors": true, diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminClientTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminClientTest.java index 3477fc053d..9f5a50c41e 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminClientTest.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminClientTest.java @@ -81,6 +81,7 @@ import com.google.bigtable.admin.v2.SnapshotTableRequest; import com.google.bigtable.admin.v2.Table; import com.google.bigtable.admin.v2.TableName; +import com.google.bigtable.admin.v2.TieredStorageConfig; import com.google.bigtable.admin.v2.Type; import com.google.bigtable.admin.v2.UndeleteTableRequest; import com.google.bigtable.admin.v2.UpdateAuthorizedViewRequest; @@ -166,6 +167,7 @@ public void createTableTest() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); mockBigtableTableAdmin.addResponse(expectedResponse); @@ -216,6 +218,7 @@ public void createTableTest2() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); mockBigtableTableAdmin.addResponse(expectedResponse); @@ -266,6 +269,7 @@ public void createTableFromSnapshotTest() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); Operation resultOperation = @@ -328,6 +332,7 @@ public void createTableFromSnapshotTest2() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); Operation resultOperation = @@ -388,6 +393,7 @@ public void createTableFromSnapshotTest3() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); Operation resultOperation = @@ -450,6 +456,7 @@ public void createTableFromSnapshotTest4() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); Operation resultOperation = @@ -598,6 +605,7 @@ public void getTableTest() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); mockBigtableTableAdmin.addResponse(expectedResponse); @@ -642,6 +650,7 @@ public void getTableTest2() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); mockBigtableTableAdmin.addResponse(expectedResponse); @@ -686,6 +695,7 @@ public void updateTableTest() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); Operation resultOperation = @@ -809,6 +819,7 @@ public void undeleteTableTest() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); Operation resultOperation = @@ -861,6 +872,7 @@ public void undeleteTableTest2() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); Operation resultOperation = @@ -1330,6 +1342,7 @@ public void modifyColumnFamiliesTest() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); mockBigtableTableAdmin.addResponse(expectedResponse); @@ -1378,6 +1391,7 @@ public void modifyColumnFamiliesTest2() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); mockBigtableTableAdmin.addResponse(expectedResponse); @@ -2534,6 +2548,7 @@ public void restoreTableTest() throws Exception { .setRestoreInfo(RestoreInfo.newBuilder().build()) .setChangeStreamConfig(ChangeStreamConfig.newBuilder().build()) .setDeletionProtection(true) + .setTieredStorageConfig(TieredStorageConfig.newBuilder().build()) .setRowKeySchema(Type.Struct.newBuilder().build()) .build(); Operation resultOperation = 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 e305d9af2b..caed2b904e 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 @@ -3829,6 +3829,78 @@ public com.google.bigtable.admin.v2.Table.AutomatedBackupPolicy getAutomatedBack return com.google.bigtable.admin.v2.Table.AutomatedBackupPolicy.getDefaultInstance(); } + public static final int TIERED_STORAGE_CONFIG_FIELD_NUMBER = 14; + private com.google.bigtable.admin.v2.TieredStorageConfig tieredStorageConfig_; + + /** + * + * + *
+ * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ *
+ * @return Whether the tieredStorageConfig field is set.
+ */
+ @java.lang.Override
+ public boolean hasTieredStorageConfig() {
+ return ((bitField0_ & 0x00000004) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ *
+ * @return The tieredStorageConfig.
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.TieredStorageConfig getTieredStorageConfig() {
+ return tieredStorageConfig_ == null
+ ? com.google.bigtable.admin.v2.TieredStorageConfig.getDefaultInstance()
+ : tieredStorageConfig_;
+ }
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.TieredStorageConfigOrBuilder
+ getTieredStorageConfigOrBuilder() {
+ return tieredStorageConfig_ == null
+ ? com.google.bigtable.admin.v2.TieredStorageConfig.getDefaultInstance()
+ : tieredStorageConfig_;
+ }
+
public static final int ROW_KEY_SCHEMA_FIELD_NUMBER = 15;
private com.google.bigtable.admin.v2.Type.Struct rowKeySchema_;
@@ -3900,7 +3972,7 @@ public com.google.bigtable.admin.v2.Table.AutomatedBackupPolicy getAutomatedBack
*/
@java.lang.Override
public boolean hasRowKeySchema() {
- return ((bitField0_ & 0x00000004) != 0);
+ return ((bitField0_ & 0x00000008) != 0);
}
/**
@@ -4087,6 +4159,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
13, (com.google.bigtable.admin.v2.Table.AutomatedBackupPolicy) automatedBackupConfig_);
}
if (((bitField0_ & 0x00000004) != 0)) {
+ output.writeMessage(14, getTieredStorageConfig());
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
output.writeMessage(15, getRowKeySchema());
}
getUnknownFields().writeTo(output);
@@ -4145,6 +4220,10 @@ public int getSerializedSize() {
(com.google.bigtable.admin.v2.Table.AutomatedBackupPolicy) automatedBackupConfig_);
}
if (((bitField0_ & 0x00000004) != 0)) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(14, getTieredStorageConfig());
+ }
+ if (((bitField0_ & 0x00000008) != 0)) {
size += com.google.protobuf.CodedOutputStream.computeMessageSize(15, getRowKeySchema());
}
size += getUnknownFields().getSerializedSize();
@@ -4175,6 +4254,10 @@ public boolean equals(final java.lang.Object obj) {
if (!getChangeStreamConfig().equals(other.getChangeStreamConfig())) return false;
}
if (getDeletionProtection() != other.getDeletionProtection()) return false;
+ if (hasTieredStorageConfig() != other.hasTieredStorageConfig()) return false;
+ if (hasTieredStorageConfig()) {
+ if (!getTieredStorageConfig().equals(other.getTieredStorageConfig())) return false;
+ }
if (hasRowKeySchema() != other.hasRowKeySchema()) return false;
if (hasRowKeySchema()) {
if (!getRowKeySchema().equals(other.getRowKeySchema())) return false;
@@ -4220,6 +4303,10 @@ public int hashCode() {
}
hash = (37 * hash) + DELETION_PROTECTION_FIELD_NUMBER;
hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getDeletionProtection());
+ if (hasTieredStorageConfig()) {
+ hash = (37 * hash) + TIERED_STORAGE_CONFIG_FIELD_NUMBER;
+ hash = (53 * hash) + getTieredStorageConfig().hashCode();
+ }
if (hasRowKeySchema()) {
hash = (37 * hash) + ROW_KEY_SCHEMA_FIELD_NUMBER;
hash = (53 * hash) + getRowKeySchema().hashCode();
@@ -4401,6 +4488,7 @@ private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
internalGetRestoreInfoFieldBuilder();
internalGetChangeStreamConfigFieldBuilder();
+ internalGetTieredStorageConfigFieldBuilder();
internalGetRowKeySchemaFieldBuilder();
}
}
@@ -4427,6 +4515,11 @@ public Builder clear() {
if (automatedBackupPolicyBuilder_ != null) {
automatedBackupPolicyBuilder_.clear();
}
+ tieredStorageConfig_ = null;
+ if (tieredStorageConfigBuilder_ != null) {
+ tieredStorageConfigBuilder_.dispose();
+ tieredStorageConfigBuilder_ = null;
+ }
rowKeySchema_ = null;
if (rowKeySchemaBuilder_ != null) {
rowKeySchemaBuilder_.dispose();
@@ -4501,9 +4594,16 @@ private void buildPartial0(com.google.bigtable.admin.v2.Table result) {
result.deletionProtection_ = deletionProtection_;
}
if (((from_bitField0_ & 0x00000100) != 0)) {
+ result.tieredStorageConfig_ =
+ tieredStorageConfigBuilder_ == null
+ ? tieredStorageConfig_
+ : tieredStorageConfigBuilder_.build();
+ to_bitField0_ |= 0x00000004;
+ }
+ if (((from_bitField0_ & 0x00000200) != 0)) {
result.rowKeySchema_ =
rowKeySchemaBuilder_ == null ? rowKeySchema_ : rowKeySchemaBuilder_.build();
- to_bitField0_ |= 0x00000004;
+ to_bitField0_ |= 0x00000008;
}
result.bitField0_ |= to_bitField0_;
}
@@ -4549,6 +4649,9 @@ public Builder mergeFrom(com.google.bigtable.admin.v2.Table other) {
if (other.getDeletionProtection() != false) {
setDeletionProtection(other.getDeletionProtection());
}
+ if (other.hasTieredStorageConfig()) {
+ mergeTieredStorageConfig(other.getTieredStorageConfig());
+ }
if (other.hasRowKeySchema()) {
mergeRowKeySchema(other.getRowKeySchema());
}
@@ -4656,11 +4759,18 @@ public Builder mergeFrom(
automatedBackupConfigCase_ = 13;
break;
} // case 106
+ case 114:
+ {
+ input.readMessage(
+ internalGetTieredStorageConfigFieldBuilder().getBuilder(), extensionRegistry);
+ bitField0_ |= 0x00000100;
+ break;
+ } // case 114
case 122:
{
input.readMessage(
internalGetRowKeySchemaFieldBuilder().getBuilder(), extensionRegistry);
- bitField0_ |= 0x00000100;
+ bitField0_ |= 0x00000200;
break;
} // case 122
default:
@@ -6248,6 +6358,259 @@ public Builder clearAutomatedBackupPolicy() {
return automatedBackupPolicyBuilder_;
}
+ private com.google.bigtable.admin.v2.TieredStorageConfig tieredStorageConfig_;
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.bigtable.admin.v2.TieredStorageConfig,
+ com.google.bigtable.admin.v2.TieredStorageConfig.Builder,
+ com.google.bigtable.admin.v2.TieredStorageConfigOrBuilder>
+ tieredStorageConfigBuilder_;
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ *
+ * @return Whether the tieredStorageConfig field is set.
+ */
+ public boolean hasTieredStorageConfig() {
+ return ((bitField0_ & 0x00000100) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ *
+ * @return The tieredStorageConfig.
+ */
+ public com.google.bigtable.admin.v2.TieredStorageConfig getTieredStorageConfig() {
+ if (tieredStorageConfigBuilder_ == null) {
+ return tieredStorageConfig_ == null
+ ? com.google.bigtable.admin.v2.TieredStorageConfig.getDefaultInstance()
+ : tieredStorageConfig_;
+ } else {
+ return tieredStorageConfigBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ */
+ public Builder setTieredStorageConfig(com.google.bigtable.admin.v2.TieredStorageConfig value) {
+ if (tieredStorageConfigBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ tieredStorageConfig_ = value;
+ } else {
+ tieredStorageConfigBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ */
+ public Builder setTieredStorageConfig(
+ com.google.bigtable.admin.v2.TieredStorageConfig.Builder builderForValue) {
+ if (tieredStorageConfigBuilder_ == null) {
+ tieredStorageConfig_ = builderForValue.build();
+ } else {
+ tieredStorageConfigBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ */
+ public Builder mergeTieredStorageConfig(
+ com.google.bigtable.admin.v2.TieredStorageConfig value) {
+ if (tieredStorageConfigBuilder_ == null) {
+ if (((bitField0_ & 0x00000100) != 0)
+ && tieredStorageConfig_ != null
+ && tieredStorageConfig_
+ != com.google.bigtable.admin.v2.TieredStorageConfig.getDefaultInstance()) {
+ getTieredStorageConfigBuilder().mergeFrom(value);
+ } else {
+ tieredStorageConfig_ = value;
+ }
+ } else {
+ tieredStorageConfigBuilder_.mergeFrom(value);
+ }
+ if (tieredStorageConfig_ != null) {
+ bitField0_ |= 0x00000100;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ */
+ public Builder clearTieredStorageConfig() {
+ bitField0_ = (bitField0_ & ~0x00000100);
+ tieredStorageConfig_ = null;
+ if (tieredStorageConfigBuilder_ != null) {
+ tieredStorageConfigBuilder_.dispose();
+ tieredStorageConfigBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ */
+ public com.google.bigtable.admin.v2.TieredStorageConfig.Builder
+ getTieredStorageConfigBuilder() {
+ bitField0_ |= 0x00000100;
+ onChanged();
+ return internalGetTieredStorageConfigFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ */
+ public com.google.bigtable.admin.v2.TieredStorageConfigOrBuilder
+ getTieredStorageConfigOrBuilder() {
+ if (tieredStorageConfigBuilder_ != null) {
+ return tieredStorageConfigBuilder_.getMessageOrBuilder();
+ } else {
+ return tieredStorageConfig_ == null
+ ? com.google.bigtable.admin.v2.TieredStorageConfig.getDefaultInstance()
+ : tieredStorageConfig_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.bigtable.admin.v2.TieredStorageConfig,
+ com.google.bigtable.admin.v2.TieredStorageConfig.Builder,
+ com.google.bigtable.admin.v2.TieredStorageConfigOrBuilder>
+ internalGetTieredStorageConfigFieldBuilder() {
+ if (tieredStorageConfigBuilder_ == null) {
+ tieredStorageConfigBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.bigtable.admin.v2.TieredStorageConfig,
+ com.google.bigtable.admin.v2.TieredStorageConfig.Builder,
+ com.google.bigtable.admin.v2.TieredStorageConfigOrBuilder>(
+ getTieredStorageConfig(), getParentForChildren(), isClean());
+ tieredStorageConfig_ = null;
+ }
+ return tieredStorageConfigBuilder_;
+ }
+
private com.google.bigtable.admin.v2.Type.Struct rowKeySchema_;
private com.google.protobuf.SingleFieldBuilder<
com.google.bigtable.admin.v2.Type.Struct,
@@ -6322,7 +6685,7 @@ public Builder clearAutomatedBackupPolicy() {
* @return Whether the rowKeySchema field is set.
*/
public boolean hasRowKeySchema() {
- return ((bitField0_ & 0x00000100) != 0);
+ return ((bitField0_ & 0x00000200) != 0);
}
/**
@@ -6474,7 +6837,7 @@ public Builder setRowKeySchema(com.google.bigtable.admin.v2.Type.Struct value) {
} else {
rowKeySchemaBuilder_.setMessage(value);
}
- bitField0_ |= 0x00000100;
+ bitField0_ |= 0x00000200;
onChanged();
return this;
}
@@ -6550,7 +6913,7 @@ public Builder setRowKeySchema(
} else {
rowKeySchemaBuilder_.setMessage(builderForValue.build());
}
- bitField0_ |= 0x00000100;
+ bitField0_ |= 0x00000200;
onChanged();
return this;
}
@@ -6621,7 +6984,7 @@ public Builder setRowKeySchema(
*/
public Builder mergeRowKeySchema(com.google.bigtable.admin.v2.Type.Struct value) {
if (rowKeySchemaBuilder_ == null) {
- if (((bitField0_ & 0x00000100) != 0)
+ if (((bitField0_ & 0x00000200) != 0)
&& rowKeySchema_ != null
&& rowKeySchema_ != com.google.bigtable.admin.v2.Type.Struct.getDefaultInstance()) {
getRowKeySchemaBuilder().mergeFrom(value);
@@ -6632,7 +6995,7 @@ public Builder mergeRowKeySchema(com.google.bigtable.admin.v2.Type.Struct value)
rowKeySchemaBuilder_.mergeFrom(value);
}
if (rowKeySchema_ != null) {
- bitField0_ |= 0x00000100;
+ bitField0_ |= 0x00000200;
onChanged();
}
return this;
@@ -6703,7 +7066,7 @@ public Builder mergeRowKeySchema(com.google.bigtable.admin.v2.Type.Struct value)
* .google.bigtable.admin.v2.Type.Struct row_key_schema = 15;
*/
public Builder clearRowKeySchema() {
- bitField0_ = (bitField0_ & ~0x00000100);
+ bitField0_ = (bitField0_ & ~0x00000200);
rowKeySchema_ = null;
if (rowKeySchemaBuilder_ != null) {
rowKeySchemaBuilder_.dispose();
@@ -6778,7 +7141,7 @@ public Builder clearRowKeySchema() {
* .google.bigtable.admin.v2.Type.Struct row_key_schema = 15;
*/
public com.google.bigtable.admin.v2.Type.Struct.Builder getRowKeySchemaBuilder() {
- bitField0_ |= 0x00000100;
+ bitField0_ |= 0x00000200;
onChanged();
return internalGetRowKeySchemaFieldBuilder().getBuilder();
}
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 722205040e..f82f216bfa 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
@@ -408,6 +408,61 @@ com.google.bigtable.admin.v2.ColumnFamily getColumnFamiliesOrDefault(
com.google.bigtable.admin.v2.Table.AutomatedBackupPolicyOrBuilder
getAutomatedBackupPolicyOrBuilder();
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ *
+ * @return Whether the tieredStorageConfig field is set.
+ */
+ boolean hasTieredStorageConfig();
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ *
+ * @return The tieredStorageConfig.
+ */
+ com.google.bigtable.admin.v2.TieredStorageConfig getTieredStorageConfig();
+
+ /**
+ *
+ *
+ * + * Rules to specify what data is stored in each storage tier. + * Different tiers store data differently, providing different trade-offs + * between cost and performance. Different parts of a table can be stored + * separately on different tiers. + * If a config is specified, tiered storage is enabled for this table. + * Otherwise, tiered storage is disabled. + * Only SSD instances can configure tiered storage. + *+ * + *
.google.bigtable.admin.v2.TieredStorageConfig tiered_storage_config = 14;
+ */
+ com.google.bigtable.admin.v2.TieredStorageConfigOrBuilder getTieredStorageConfigOrBuilder();
+
/**
*
*
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 30caaee768..c013ea2ed5 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
@@ -116,6 +116,14 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
internal_static_google_bigtable_admin_v2_BackupInfo_descriptor;
static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_bigtable_admin_v2_BackupInfo_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_bigtable_admin_v2_TieredStorageConfig_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_bigtable_admin_v2_TieredStorageConfig_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_bigtable_admin_v2_TieredStorageRule_descriptor;
+ static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_google_bigtable_admin_v2_TieredStorageRule_fieldAccessorTable;
static final com.google.protobuf.Descriptors.Descriptor
internal_static_google_bigtable_admin_v2_ProtoSchema_descriptor;
static final com.google.protobuf.GeneratedMessage.FieldAccessorTable
@@ -145,7 +153,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\013backup_info\030\002 \001(\0132$.google.bigtable.admin.v2.BackupInfoH\000B\r\n"
+ "\013source_info\"I\n"
+ "\022ChangeStreamConfig\0223\n"
- + "\020retention_period\030\001 \001(\0132\031.google.protobuf.Duration\"\225\014\n"
+ + "\020retention_period\030\001 \001(\0132\031.google.protobuf.Duration\"\343\014\n"
+ "\005Table\022\014\n"
+ "\004name\030\001 \001(\t\022O\n"
+ "\016cluster_states\030\002"
@@ -160,12 +168,14 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ " \001(\0132,.google.bigtable.admin.v2.ChangeStreamConfig\022\033\n"
+ "\023deletion_protection\030\t \001(\010\022X\n"
+ "\027automated_backup_policy\030\r"
- + " \001(\01325.google.bigtable.admin.v2.Table.AutomatedBackupPolicyH\000\022=\n"
+ + " \001(\01325.google.bigtable.admin.v2.Table.AutomatedBackupPolicyH\000\022L\n"
+ + "\025tiered_storage_config\030\016 \001(\013"
+ + "2-.google.bigtable.admin.v2.TieredStorageConfig\022=\n"
+ "\016row_key_schema\030\017"
+ " \001(\0132%.google.bigtable.admin.v2.Type.Struct\032\306\002\n"
+ "\014ClusterState\022]\n"
- + "\021replication_state\030\001 \001(\0162=.g"
- + "oogle.bigtable.admin.v2.Table.ClusterState.ReplicationStateB\003\340A\003\022F\n"
+ + "\021replication_state\030\001 \001(\0162=.goo"
+ + "gle.bigtable.admin.v2.Table.ClusterState.ReplicationStateB\003\340A\003\022F\n"
+ "\017encryption_info\030\002"
+ " \003(\0132(.google.bigtable.admin.v2.EncryptionInfoB\003\340A\003\"\216\001\n"
+ "\020ReplicationState\022\023\n"
@@ -196,13 +206,13 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\020REPLICATION_VIEW\020\003\022\023\n"
+ "\017ENCRYPTION_VIEW\020\005\022\010\n"
+ "\004FULL\020\004:_\352A\\\n"
- + "\"bigtableadmin.googleapis.com/Tab"
- + "le\0226projects/{project}/instances/{instance}/tables/{table}B\031\n"
+ + "\"bigtableadmin.googleapis.com/Table"
+ + "\0226projects/{project}/instances/{instance}/tables/{table}B\031\n"
+ "\027automated_backup_config\"\343\005\n"
+ "\016AuthorizedView\022\021\n"
+ "\004name\030\001 \001(\tB\003\340A\010\022J\n"
- + "\013subset_view\030\002 \001(\01323.google.bigtab"
- + "le.admin.v2.AuthorizedView.SubsetViewH\000\022\014\n"
+ + "\013subset_view\030\002"
+ + " \001(\01323.google.bigtable.admin.v2.AuthorizedView.SubsetViewH\000\022\014\n"
+ "\004etag\030\003 \001(\t\022\033\n"
+ "\023deletion_protection\030\004 \001(\010\032?\n\r"
+ "FamilySubsets\022\022\n\n"
@@ -210,8 +220,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\022qualifier_prefixes\030\002 \003(\014\032\360\001\n\n"
+ "SubsetView\022\024\n"
+ "\014row_prefixes\030\001 \003(\014\022^\n"
- + "\016family_subsets\030\002 \003(\0132F.google.bigtable.admin.v2.Auth"
- + "orizedView.SubsetView.FamilySubsetsEntry\032l\n"
+ + "\016family_subsets\030\002 \003(\0132F.google.bigtable.admin.v2.Author"
+ + "izedView.SubsetView.FamilySubsetsEntry\032l\n"
+ "\022FamilySubsetsEntry\022\013\n"
+ "\003key\030\001 \001(\t\022E\n"
+ "\005value\030\002"
@@ -221,9 +231,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\tNAME_ONLY\020\001\022\t\n"
+ "\005BASIC\020\002\022\010\n"
+ "\004FULL\020\003:\254\001\352A\250\001\n"
- + "+bigtableadmin.googleapis.com/AuthorizedView\022Xprojects/{project}/instances/{ins"
- + "tance}/tables/{table}/authorizedViews/{a"
- + "uthorized_view}*\017authorizedViews2\016authorizedViewB\021\n"
+ + "+bigtableadmin.googleapis.com/AuthorizedView\022Xprojects/{project}/instances/{insta"
+ + "nce}/tables/{table}/authorizedViews/{aut"
+ + "horized_view}*\017authorizedViews2\016authorizedViewB\021\n"
+ "\017authorized_view\"u\n"
+ "\014ColumnFamily\0221\n"
+ "\007gc_rule\030\001 \001(\0132 .google.bigtable.admin.v2.GcRule\0222\n\n"
@@ -256,15 +266,15 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\017data_size_bytes\030\003 \001(\003B\003\340A\003\0224\n"
+ "\013create_time\030\004 \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022/\n"
+ "\013delete_time\030\005 \001(\0132\032.google.protobuf.Timestamp\022<\n"
- + "\005state\030\006 \001(\0162(.goog"
- + "le.bigtable.admin.v2.Snapshot.StateB\003\340A\003\022\023\n"
+ + "\005state\030\006 \001(\0162(.google"
+ + ".bigtable.admin.v2.Snapshot.StateB\003\340A\003\022\023\n"
+ "\013description\030\007 \001(\t\"5\n"
+ "\005State\022\023\n"
+ "\017STATE_NOT_KNOWN\020\000\022\t\n"
+ "\005READY\020\001\022\014\n"
+ "\010CREATING\020\002:{\352Ax\n"
- + "%bigtableadmin.googleapis.com/Snapshot\022Oprojects/{project}/instances/{instance"
- + "}/clusters/{cluster}/snapshots/{snapshot}\"\371\005\n"
+ + "%bigtableadmin.googleapis.com/Snapshot\022Oprojects/{project}/instances/{instance}/"
+ + "clusters/{cluster}/snapshots/{snapshot}\"\371\005\n"
+ "\006Backup\022\014\n"
+ "\004name\030\001 \001(\t\022\034\n"
+ "\014source_table\030\002 \001(\tB\006\340A\005\340A\002\022\032\n\r"
@@ -276,10 +286,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\010end_time\030\005"
+ " \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022\027\n\n"
+ "size_bytes\030\006 \001(\003B\003\340A\003\022:\n"
- + "\005state\030\007 \001"
- + "(\0162&.google.bigtable.admin.v2.Backup.StateB\003\340A\003\022F\n"
- + "\017encryption_info\030\t \001(\0132(.googl"
- + "e.bigtable.admin.v2.EncryptionInfoB\003\340A\003\022@\n"
+ + "\005state\030\007 \001(\016"
+ + "2&.google.bigtable.admin.v2.Backup.StateB\003\340A\003\022F\n"
+ + "\017encryption_info\030\t"
+ + " \001(\0132(.google.bigtable.admin.v2.EncryptionInfoB\003\340A\003\022@\n"
+ "\013backup_type\030\013 \001(\0162+.google.bigtable.admin.v2.Backup.BackupType\0228\n"
+ "\024hot_to_standard_time\030\014 \001(\0132\032.google.protobuf.Timestamp\"7\n"
+ "\005State\022\025\n"
@@ -290,15 +300,21 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\027BACKUP_TYPE_UNSPECIFIED\020\000\022\014\n"
+ "\010STANDARD\020\001\022\007\n"
+ "\003HOT\020\002:u\352Ar\n"
- + "#bigtableadmin.googleapis.com/Backup\022Kprojects/{project}/instances/{"
- + "instance}/clusters/{cluster}/backups/{backup}\"\300\001\n\n"
+ + "#bigtableadmin.googleapis.com/Backup\022Kprojects/{project}/instances/{in"
+ + "stance}/clusters/{cluster}/backups/{backup}\"\300\001\n\n"
+ "BackupInfo\022\023\n"
+ "\006backup\030\001 \001(\tB\003\340A\003\0223\n\n"
+ "start_time\030\002 \001(\0132\032.google.protobuf.TimestampB\003\340A\003\0221\n"
+ "\010end_time\030\003 \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022\031\n"
+ "\014source_table\030\004 \001(\tB\003\340A\003\022\032\n\r"
+ "source_backup\030\n"
- + " \001(\tB\003\340A\003\"-\n"
+ + " \001(\tB\003\340A\003\"]\n"
+ + "\023TieredStorageConfig\022F\n"
+ + "\021infrequent_access\030\001"
+ + " \001(\0132+.google.bigtable.admin.v2.TieredStorageRule\"W\n"
+ + "\021TieredStorageRule\022:\n"
+ + "\025include_if_older_than\030\001 \001(\0132\031.google.protobuf.DurationH\000B\006\n"
+ + "\004rule\"-\n"
+ "\013ProtoSchema\022\036\n"
+ "\021proto_descriptors\030\002 \001(\014B\003\340A\002\"\240\002\n"
+ "\014SchemaBundle\022\021\n"
@@ -306,21 +322,21 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "\014proto_schema\030\002"
+ " \001(\0132%.google.bigtable.admin.v2.ProtoSchemaH\000\022\021\n"
+ "\004etag\030\003 \001(\tB\003\340A\001:\242\001\352A\236\001\n"
- + ")bigtableadmin.googleapis.com/SchemaBundle\022Tprojects/{project}/inst"
- + "ances/{instance}/tables/{table}/schemaBundles/{schema_bundle}*\r"
+ + ")bigtableadmin.googleapis.com/SchemaBundle\022Tp"
+ + "rojects/{project}/instances/{instance}/tables/{table}/schemaBundles/{schema_bundle}*\r"
+ "schemaBundles2\014schemaBundleB\006\n"
+ "\004type*D\n"
+ "\021RestoreSourceType\022#\n"
+ "\037RESTORE_SOURCE_TYPE_UNSPECIFIED\020\000\022\n\n"
+ "\006BACKUP\020\001B\367\002\n"
+ "\034com.google.bigtable.admin.v2B\n"
- + "TableProtoP\001Z8cloud.google.com/go/big"
- + "table/admin/apiv2/adminpb;adminpb\252\002\036Goog"
- + "le.Cloud.Bigtable.Admin.V2\312\002\036Google\\Clou"
- + "d\\Bigtable\\Admin\\V2\352\002\"Google::Cloud::Bigtable::Admin::V2\352A\246\001\n"
- + "(cloudkms.googleapis.com/CryptoKeyVersion\022zprojects/{projec"
- + "t}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVer"
- + "sions/{crypto_key_version}b\006proto3"
+ + "TableProtoP\001Z8cloud.google.com/go/bigtable/admin/apiv2/"
+ + "adminpb;adminpb\252\002\036Google.Cloud.Bigtable."
+ + "Admin.V2\312\002\036Google\\Cloud\\Bigtable\\Admin\\V"
+ + "2\352\002\"Google::Cloud::Bigtable::Admin::V2\352A\246\001\n"
+ + "(cloudkms.googleapis.com/CryptoKeyVersion\022zprojects/{project}/locations/{loca"
+ + "tion}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_"
+ + "version}b\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -362,6 +378,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ChangeStreamConfig",
"DeletionProtection",
"AutomatedBackupPolicy",
+ "TieredStorageConfig",
"RowKeySchema",
"AutomatedBackupConfig",
});
@@ -508,8 +525,24 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new java.lang.String[] {
"Backup", "StartTime", "EndTime", "SourceTable", "SourceBackup",
});
- internal_static_google_bigtable_admin_v2_ProtoSchema_descriptor =
+ internal_static_google_bigtable_admin_v2_TieredStorageConfig_descriptor =
getDescriptor().getMessageType(10);
+ internal_static_google_bigtable_admin_v2_TieredStorageConfig_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_bigtable_admin_v2_TieredStorageConfig_descriptor,
+ new java.lang.String[] {
+ "InfrequentAccess",
+ });
+ internal_static_google_bigtable_admin_v2_TieredStorageRule_descriptor =
+ getDescriptor().getMessageType(11);
+ internal_static_google_bigtable_admin_v2_TieredStorageRule_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_google_bigtable_admin_v2_TieredStorageRule_descriptor,
+ new java.lang.String[] {
+ "IncludeIfOlderThan", "Rule",
+ });
+ internal_static_google_bigtable_admin_v2_ProtoSchema_descriptor =
+ getDescriptor().getMessageType(12);
internal_static_google_bigtable_admin_v2_ProtoSchema_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_bigtable_admin_v2_ProtoSchema_descriptor,
@@ -517,7 +550,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ProtoDescriptors",
});
internal_static_google_bigtable_admin_v2_SchemaBundle_descriptor =
- getDescriptor().getMessageType(11);
+ getDescriptor().getMessageType(13);
internal_static_google_bigtable_admin_v2_SchemaBundle_fieldAccessorTable =
new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_bigtable_admin_v2_SchemaBundle_descriptor,
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TieredStorageConfig.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TieredStorageConfig.java
new file mode 100644
index 0000000000..e54e3440fb
--- /dev/null
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TieredStorageConfig.java
@@ -0,0 +1,721 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/bigtable/admin/v2/table.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.bigtable.admin.v2;
+
+/**
+ *
+ *
+ * + * Config for tiered storage. + * A valid config must have a valid TieredStorageRule. Otherwise the whole + * TieredStorageConfig must be unset. + * By default all data is stored in the SSD tier (only SSD instances can + * configure tiered storage). + *+ * + * Protobuf type {@code google.bigtable.admin.v2.TieredStorageConfig} + */ +@com.google.protobuf.Generated +public final class TieredStorageConfig extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.bigtable.admin.v2.TieredStorageConfig) + TieredStorageConfigOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "TieredStorageConfig"); + } + + // Use TieredStorageConfig.newBuilder() to construct. + private TieredStorageConfig(com.google.protobuf.GeneratedMessage.Builder> builder) { + super(builder); + } + + private TieredStorageConfig() {} + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.bigtable.admin.v2.TableProto + .internal_static_google_bigtable_admin_v2_TieredStorageConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.bigtable.admin.v2.TableProto + .internal_static_google_bigtable_admin_v2_TieredStorageConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.bigtable.admin.v2.TieredStorageConfig.class, + com.google.bigtable.admin.v2.TieredStorageConfig.Builder.class); + } + + private int bitField0_; + public static final int INFREQUENT_ACCESS_FIELD_NUMBER = 1; + private com.google.bigtable.admin.v2.TieredStorageRule infrequentAccess_; + + /** + * + * + *
+ * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ *
+ * @return Whether the infrequentAccess field is set.
+ */
+ @java.lang.Override
+ public boolean hasInfrequentAccess() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ *
+ * @return The infrequentAccess.
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.TieredStorageRule getInfrequentAccess() {
+ return infrequentAccess_ == null
+ ? com.google.bigtable.admin.v2.TieredStorageRule.getDefaultInstance()
+ : infrequentAccess_;
+ }
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.TieredStorageRuleOrBuilder getInfrequentAccessOrBuilder() {
+ return infrequentAccess_ == null
+ ? com.google.bigtable.admin.v2.TieredStorageRule.getDefaultInstance()
+ : infrequentAccess_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (((bitField0_ & 0x00000001) != 0)) {
+ output.writeMessage(1, getInfrequentAccess());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) != 0)) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getInfrequentAccess());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.bigtable.admin.v2.TieredStorageConfig)) {
+ return super.equals(obj);
+ }
+ com.google.bigtable.admin.v2.TieredStorageConfig other =
+ (com.google.bigtable.admin.v2.TieredStorageConfig) obj;
+
+ if (hasInfrequentAccess() != other.hasInfrequentAccess()) return false;
+ if (hasInfrequentAccess()) {
+ if (!getInfrequentAccess().equals(other.getInfrequentAccess())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasInfrequentAccess()) {
+ hash = (37 * hash) + INFREQUENT_ACCESS_FIELD_NUMBER;
+ hash = (53 * hash) + getInfrequentAccess().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(com.google.bigtable.admin.v2.TieredStorageConfig prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Config for tiered storage. + * A valid config must have a valid TieredStorageRule. Otherwise the whole + * TieredStorageConfig must be unset. + * By default all data is stored in the SSD tier (only SSD instances can + * configure tiered storage). + *+ * + * Protobuf type {@code google.bigtable.admin.v2.TieredStorageConfig} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ *
+ * @return Whether the infrequentAccess field is set.
+ */
+ public boolean hasInfrequentAccess() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ *
+ * @return The infrequentAccess.
+ */
+ public com.google.bigtable.admin.v2.TieredStorageRule getInfrequentAccess() {
+ if (infrequentAccessBuilder_ == null) {
+ return infrequentAccess_ == null
+ ? com.google.bigtable.admin.v2.TieredStorageRule.getDefaultInstance()
+ : infrequentAccess_;
+ } else {
+ return infrequentAccessBuilder_.getMessage();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ */
+ public Builder setInfrequentAccess(com.google.bigtable.admin.v2.TieredStorageRule value) {
+ if (infrequentAccessBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ infrequentAccess_ = value;
+ } else {
+ infrequentAccessBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ */
+ public Builder setInfrequentAccess(
+ com.google.bigtable.admin.v2.TieredStorageRule.Builder builderForValue) {
+ if (infrequentAccessBuilder_ == null) {
+ infrequentAccess_ = builderForValue.build();
+ } else {
+ infrequentAccessBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ */
+ public Builder mergeInfrequentAccess(com.google.bigtable.admin.v2.TieredStorageRule value) {
+ if (infrequentAccessBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) != 0)
+ && infrequentAccess_ != null
+ && infrequentAccess_
+ != com.google.bigtable.admin.v2.TieredStorageRule.getDefaultInstance()) {
+ getInfrequentAccessBuilder().mergeFrom(value);
+ } else {
+ infrequentAccess_ = value;
+ }
+ } else {
+ infrequentAccessBuilder_.mergeFrom(value);
+ }
+ if (infrequentAccess_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ */
+ public Builder clearInfrequentAccess() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ infrequentAccess_ = null;
+ if (infrequentAccessBuilder_ != null) {
+ infrequentAccessBuilder_.dispose();
+ infrequentAccessBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ */
+ public com.google.bigtable.admin.v2.TieredStorageRule.Builder getInfrequentAccessBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return internalGetInfrequentAccessFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ */
+ public com.google.bigtable.admin.v2.TieredStorageRuleOrBuilder getInfrequentAccessOrBuilder() {
+ if (infrequentAccessBuilder_ != null) {
+ return infrequentAccessBuilder_.getMessageOrBuilder();
+ } else {
+ return infrequentAccess_ == null
+ ? com.google.bigtable.admin.v2.TieredStorageRule.getDefaultInstance()
+ : infrequentAccess_;
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.bigtable.admin.v2.TieredStorageRule,
+ com.google.bigtable.admin.v2.TieredStorageRule.Builder,
+ com.google.bigtable.admin.v2.TieredStorageRuleOrBuilder>
+ internalGetInfrequentAccessFieldBuilder() {
+ if (infrequentAccessBuilder_ == null) {
+ infrequentAccessBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.bigtable.admin.v2.TieredStorageRule,
+ com.google.bigtable.admin.v2.TieredStorageRule.Builder,
+ com.google.bigtable.admin.v2.TieredStorageRuleOrBuilder>(
+ getInfrequentAccess(), getParentForChildren(), isClean());
+ infrequentAccess_ = null;
+ }
+ return infrequentAccessBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.bigtable.admin.v2.TieredStorageConfig)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.bigtable.admin.v2.TieredStorageConfig)
+ private static final com.google.bigtable.admin.v2.TieredStorageConfig DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.bigtable.admin.v2.TieredStorageConfig();
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageConfig getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ *
+ * @return Whether the infrequentAccess field is set.
+ */
+ boolean hasInfrequentAccess();
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ *
+ * @return The infrequentAccess.
+ */
+ com.google.bigtable.admin.v2.TieredStorageRule getInfrequentAccess();
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in the infrequent access(IA) tier. + * The IA tier allows storing more data per node with reduced performance. + *+ * + *
.google.bigtable.admin.v2.TieredStorageRule infrequent_access = 1;
+ */
+ com.google.bigtable.admin.v2.TieredStorageRuleOrBuilder getInfrequentAccessOrBuilder();
+}
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TieredStorageRule.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TieredStorageRule.java
new file mode 100644
index 0000000000..2a78390f88
--- /dev/null
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/TieredStorageRule.java
@@ -0,0 +1,801 @@
+/*
+ * Copyright 2026 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// NO CHECKED-IN PROTOBUF GENCODE
+// source: google/bigtable/admin/v2/table.proto
+// Protobuf Java Version: 4.33.2
+
+package com.google.bigtable.admin.v2;
+
+/**
+ *
+ *
+ * + * Rule to specify what data is stored in a storage tier. + *+ * + * Protobuf type {@code google.bigtable.admin.v2.TieredStorageRule} + */ +@com.google.protobuf.Generated +public final class TieredStorageRule extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.bigtable.admin.v2.TieredStorageRule) + TieredStorageRuleOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "TieredStorageRule"); + } + + // Use TieredStorageRule.newBuilder() to construct. + private TieredStorageRule(com.google.protobuf.GeneratedMessage.Builder> builder) { + super(builder); + } + + private TieredStorageRule() {} + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.bigtable.admin.v2.TableProto + .internal_static_google_bigtable_admin_v2_TieredStorageRule_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.bigtable.admin.v2.TableProto + .internal_static_google_bigtable_admin_v2_TieredStorageRule_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.bigtable.admin.v2.TieredStorageRule.class, + com.google.bigtable.admin.v2.TieredStorageRule.Builder.class); + } + + private int ruleCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object rule_; + + public enum RuleCase + implements + com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + INCLUDE_IF_OLDER_THAN(1), + RULE_NOT_SET(0); + private final int value; + + private RuleCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static RuleCase valueOf(int value) { + return forNumber(value); + } + + public static RuleCase forNumber(int value) { + switch (value) { + case 1: + return INCLUDE_IF_OLDER_THAN; + case 0: + return RULE_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + }; + + public RuleCase getRuleCase() { + return RuleCase.forNumber(ruleCase_); + } + + public static final int INCLUDE_IF_OLDER_THAN_FIELD_NUMBER = 1; + + /** + * + * + *
+ * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ *
+ * @return Whether the includeIfOlderThan field is set.
+ */
+ @java.lang.Override
+ public boolean hasIncludeIfOlderThan() {
+ return ruleCase_ == 1;
+ }
+
+ /**
+ *
+ *
+ * + * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ *
+ * @return The includeIfOlderThan.
+ */
+ @java.lang.Override
+ public com.google.protobuf.Duration getIncludeIfOlderThan() {
+ if (ruleCase_ == 1) {
+ return (com.google.protobuf.Duration) rule_;
+ }
+ return com.google.protobuf.Duration.getDefaultInstance();
+ }
+
+ /**
+ *
+ *
+ * + * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ */
+ @java.lang.Override
+ public com.google.protobuf.DurationOrBuilder getIncludeIfOlderThanOrBuilder() {
+ if (ruleCase_ == 1) {
+ return (com.google.protobuf.Duration) rule_;
+ }
+ return com.google.protobuf.Duration.getDefaultInstance();
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (ruleCase_ == 1) {
+ output.writeMessage(1, (com.google.protobuf.Duration) rule_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (ruleCase_ == 1) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 1, (com.google.protobuf.Duration) rule_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.bigtable.admin.v2.TieredStorageRule)) {
+ return super.equals(obj);
+ }
+ com.google.bigtable.admin.v2.TieredStorageRule other =
+ (com.google.bigtable.admin.v2.TieredStorageRule) obj;
+
+ if (!getRuleCase().equals(other.getRuleCase())) return false;
+ switch (ruleCase_) {
+ case 1:
+ if (!getIncludeIfOlderThan().equals(other.getIncludeIfOlderThan())) return false;
+ break;
+ case 0:
+ default:
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ switch (ruleCase_) {
+ case 1:
+ hash = (37 * hash) + INCLUDE_IF_OLDER_THAN_FIELD_NUMBER;
+ hash = (53 * hash) + getIncludeIfOlderThan().hashCode();
+ break;
+ case 0:
+ default:
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessage.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(com.google.bigtable.admin.v2.TieredStorageRule prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+
+ /**
+ *
+ *
+ * + * Rule to specify what data is stored in a storage tier. + *+ * + * Protobuf type {@code google.bigtable.admin.v2.TieredStorageRule} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder
+ * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ *
+ * @return Whether the includeIfOlderThan field is set.
+ */
+ @java.lang.Override
+ public boolean hasIncludeIfOlderThan() {
+ return ruleCase_ == 1;
+ }
+
+ /**
+ *
+ *
+ * + * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ *
+ * @return The includeIfOlderThan.
+ */
+ @java.lang.Override
+ public com.google.protobuf.Duration getIncludeIfOlderThan() {
+ if (includeIfOlderThanBuilder_ == null) {
+ if (ruleCase_ == 1) {
+ return (com.google.protobuf.Duration) rule_;
+ }
+ return com.google.protobuf.Duration.getDefaultInstance();
+ } else {
+ if (ruleCase_ == 1) {
+ return includeIfOlderThanBuilder_.getMessage();
+ }
+ return com.google.protobuf.Duration.getDefaultInstance();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ */
+ public Builder setIncludeIfOlderThan(com.google.protobuf.Duration value) {
+ if (includeIfOlderThanBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ rule_ = value;
+ onChanged();
+ } else {
+ includeIfOlderThanBuilder_.setMessage(value);
+ }
+ ruleCase_ = 1;
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ */
+ public Builder setIncludeIfOlderThan(com.google.protobuf.Duration.Builder builderForValue) {
+ if (includeIfOlderThanBuilder_ == null) {
+ rule_ = builderForValue.build();
+ onChanged();
+ } else {
+ includeIfOlderThanBuilder_.setMessage(builderForValue.build());
+ }
+ ruleCase_ = 1;
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ */
+ public Builder mergeIncludeIfOlderThan(com.google.protobuf.Duration value) {
+ if (includeIfOlderThanBuilder_ == null) {
+ if (ruleCase_ == 1 && rule_ != com.google.protobuf.Duration.getDefaultInstance()) {
+ rule_ =
+ com.google.protobuf.Duration.newBuilder((com.google.protobuf.Duration) rule_)
+ .mergeFrom(value)
+ .buildPartial();
+ } else {
+ rule_ = value;
+ }
+ onChanged();
+ } else {
+ if (ruleCase_ == 1) {
+ includeIfOlderThanBuilder_.mergeFrom(value);
+ } else {
+ includeIfOlderThanBuilder_.setMessage(value);
+ }
+ }
+ ruleCase_ = 1;
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ */
+ public Builder clearIncludeIfOlderThan() {
+ if (includeIfOlderThanBuilder_ == null) {
+ if (ruleCase_ == 1) {
+ ruleCase_ = 0;
+ rule_ = null;
+ onChanged();
+ }
+ } else {
+ if (ruleCase_ == 1) {
+ ruleCase_ = 0;
+ rule_ = null;
+ }
+ includeIfOlderThanBuilder_.clear();
+ }
+ return this;
+ }
+
+ /**
+ *
+ *
+ * + * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ */
+ public com.google.protobuf.Duration.Builder getIncludeIfOlderThanBuilder() {
+ return internalGetIncludeIfOlderThanFieldBuilder().getBuilder();
+ }
+
+ /**
+ *
+ *
+ * + * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ */
+ @java.lang.Override
+ public com.google.protobuf.DurationOrBuilder getIncludeIfOlderThanOrBuilder() {
+ if ((ruleCase_ == 1) && (includeIfOlderThanBuilder_ != null)) {
+ return includeIfOlderThanBuilder_.getMessageOrBuilder();
+ } else {
+ if (ruleCase_ == 1) {
+ return (com.google.protobuf.Duration) rule_;
+ }
+ return com.google.protobuf.Duration.getDefaultInstance();
+ }
+ }
+
+ /**
+ *
+ *
+ * + * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ com.google.protobuf.Duration,
+ com.google.protobuf.Duration.Builder,
+ com.google.protobuf.DurationOrBuilder>
+ internalGetIncludeIfOlderThanFieldBuilder() {
+ if (includeIfOlderThanBuilder_ == null) {
+ if (!(ruleCase_ == 1)) {
+ rule_ = com.google.protobuf.Duration.getDefaultInstance();
+ }
+ includeIfOlderThanBuilder_ =
+ new com.google.protobuf.SingleFieldBuilder<
+ com.google.protobuf.Duration,
+ com.google.protobuf.Duration.Builder,
+ com.google.protobuf.DurationOrBuilder>(
+ (com.google.protobuf.Duration) rule_, getParentForChildren(), isClean());
+ rule_ = null;
+ }
+ ruleCase_ = 1;
+ onChanged();
+ return includeIfOlderThanBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.bigtable.admin.v2.TieredStorageRule)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.bigtable.admin.v2.TieredStorageRule)
+ private static final com.google.bigtable.admin.v2.TieredStorageRule DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.bigtable.admin.v2.TieredStorageRule();
+ }
+
+ public static com.google.bigtable.admin.v2.TieredStorageRule getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser+ * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ *
+ * @return Whether the includeIfOlderThan field is set.
+ */
+ boolean hasIncludeIfOlderThan();
+
+ /**
+ *
+ *
+ * + * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ *
+ * @return The includeIfOlderThan.
+ */
+ com.google.protobuf.Duration getIncludeIfOlderThan();
+
+ /**
+ *
+ *
+ * + * Include cells older than the given age. + * For the infrequent access tier, this value must be at least 30 days. + *+ * + *
.google.protobuf.Duration include_if_older_than = 1;
+ */
+ com.google.protobuf.DurationOrBuilder getIncludeIfOlderThanOrBuilder();
+
+ com.google.bigtable.admin.v2.TieredStorageRule.RuleCase getRuleCase();
+}
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/proto/google/bigtable/admin/v2/table.proto b/proto-google-cloud-bigtable-admin-v2/src/main/proto/google/bigtable/admin/v2/table.proto
index 68913d057a..4ce692f860 100644
--- a/proto-google-cloud-bigtable-admin-v2/src/main/proto/google/bigtable/admin/v2/table.proto
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/proto/google/bigtable/admin/v2/table.proto
@@ -1,4 +1,4 @@
-// Copyright 2025 Google LLC
+// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -205,6 +205,15 @@ message Table {
AutomatedBackupPolicy automated_backup_policy = 13;
}
+ // Rules to specify what data is stored in each storage tier.
+ // Different tiers store data differently, providing different trade-offs
+ // between cost and performance. Different parts of a table can be stored
+ // separately on different tiers.
+ // If a config is specified, tiered storage is enabled for this table.
+ // Otherwise, tiered storage is disabled.
+ // Only SSD instances can configure tiered storage.
+ TieredStorageConfig tiered_storage_config = 14;
+
// The row key schema for this table. The schema is used to decode the raw row
// key bytes into a structured format. The order of field declarations in this
// schema is important, as it reflects how the raw row key bytes are
@@ -638,6 +647,27 @@ enum RestoreSourceType {
BACKUP = 1;
}
+// Config for tiered storage.
+// A valid config must have a valid TieredStorageRule. Otherwise the whole
+// TieredStorageConfig must be unset.
+// By default all data is stored in the SSD tier (only SSD instances can
+// configure tiered storage).
+message TieredStorageConfig {
+ // Rule to specify what data is stored in the infrequent access(IA) tier.
+ // The IA tier allows storing more data per node with reduced performance.
+ TieredStorageRule infrequent_access = 1;
+}
+
+// Rule to specify what data is stored in a storage tier.
+message TieredStorageRule {
+ // Rules to specify what data is stored in this tier.
+ oneof rule {
+ // Include cells older than the given age.
+ // For the infrequent access tier, this value must be at least 30 days.
+ google.protobuf.Duration include_if_older_than = 1;
+ }
+}
+
// Represents a protobuf schema.
message ProtoSchema {
// Required. Contains a protobuf-serialized