+ * The Compute Billing Owner for this Data Boost App Profile. + *+ * + *
+ * optional .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner compute_billing_owner = 1;
+ *
+ *
+ * @return Whether the computeBillingOwner field is set.
+ */
+ boolean hasComputeBillingOwner();
+ /**
+ *
+ *
+ * + * The Compute Billing Owner for this Data Boost App Profile. + *+ * + *
+ * optional .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner compute_billing_owner = 1;
+ *
+ *
+ * @return The enum numeric value on the wire for computeBillingOwner.
+ */
+ int getComputeBillingOwnerValue();
+ /**
+ *
+ *
+ * + * The Compute Billing Owner for this Data Boost App Profile. + *+ * + *
+ * optional .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner compute_billing_owner = 1;
+ *
+ *
+ * @return The computeBillingOwner.
+ */
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner
+ getComputeBillingOwner();
+ }
+ /**
+ *
+ *
+ * + * Data Boost is a serverless compute capability that lets you run + * high-throughput read jobs on your Bigtable data, without impacting the + * performance of the clusters that handle your application traffic. + * Currently, Data Boost exclusively supports read-only use-cases with + * single-cluster routing. + * + * Data Boost reads are only guaranteed to see the results of writes that + * were written at least 30 minutes ago. This means newly written values may + * not become visible for up to 30m, and also means that old values may + * remain visible for up to 30m after being deleted or overwritten. To + * mitigate the staleness of the data, users may either wait 30m, or use + * CheckConsistency. + *+ * + * Protobuf type {@code google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly} + */ + public static final class DataBoostIsolationReadOnly + extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly) + DataBoostIsolationReadOnlyOrBuilder { + private static final long serialVersionUID = 0L; + // Use DataBoostIsolationReadOnly.newBuilder() to construct. + private DataBoostIsolationReadOnly(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private DataBoostIsolationReadOnly() { + computeBillingOwner_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new DataBoostIsolationReadOnly(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.bigtable.admin.v2.InstanceProto + .internal_static_google_bigtable_admin_v2_AppProfile_DataBoostIsolationReadOnly_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.bigtable.admin.v2.InstanceProto + .internal_static_google_bigtable_admin_v2_AppProfile_DataBoostIsolationReadOnly_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.class, + com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.Builder.class); + } + + /** + * + * + *
+ * Compute Billing Owner specifies how usage should be accounted when using + * Data Boost. Compute Billing Owner also configures which Cloud Project is + * charged for relevant quota. + *+ * + * Protobuf enum {@code + * google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner} + */ + public enum ComputeBillingOwner implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+ * Unspecified value. + *+ * + *
COMPUTE_BILLING_OWNER_UNSPECIFIED = 0;
+ */
+ COMPUTE_BILLING_OWNER_UNSPECIFIED(0),
+ /**
+ *
+ *
+ * + * The host Cloud Project containing the targeted Bigtable Instance / + * Table pays for compute. + *+ * + *
HOST_PAYS = 1;
+ */
+ HOST_PAYS(1),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ *
+ * + * Unspecified value. + *+ * + *
COMPUTE_BILLING_OWNER_UNSPECIFIED = 0;
+ */
+ public static final int COMPUTE_BILLING_OWNER_UNSPECIFIED_VALUE = 0;
+ /**
+ *
+ *
+ * + * The host Cloud Project containing the targeted Bigtable Instance / + * Table pays for compute. + *+ * + *
HOST_PAYS = 1;
+ */
+ public static final int HOST_PAYS_VALUE = 1;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static ComputeBillingOwner valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static ComputeBillingOwner forNumber(int value) {
+ switch (value) {
+ case 0:
+ return COMPUTE_BILLING_OWNER_UNSPECIFIED;
+ case 1:
+ return HOST_PAYS;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap+ * The Compute Billing Owner for this Data Boost App Profile. + *+ * + *
+ * optional .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner compute_billing_owner = 1;
+ *
+ *
+ * @return Whether the computeBillingOwner field is set.
+ */
+ @java.lang.Override
+ public boolean hasComputeBillingOwner() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+ /**
+ *
+ *
+ * + * The Compute Billing Owner for this Data Boost App Profile. + *+ * + *
+ * optional .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner compute_billing_owner = 1;
+ *
+ *
+ * @return The enum numeric value on the wire for computeBillingOwner.
+ */
+ @java.lang.Override
+ public int getComputeBillingOwnerValue() {
+ return computeBillingOwner_;
+ }
+ /**
+ *
+ *
+ * + * The Compute Billing Owner for this Data Boost App Profile. + *+ * + *
+ * optional .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner compute_billing_owner = 1;
+ *
+ *
+ * @return The computeBillingOwner.
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner
+ getComputeBillingOwner() {
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner
+ result =
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner
+ .forNumber(computeBillingOwner_);
+ return result == null
+ ? com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner
+ .UNRECOGNIZED
+ : result;
+ }
+
+ 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.writeEnum(1, computeBillingOwner_);
+ }
+ 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.computeEnumSize(1, computeBillingOwner_);
+ }
+ 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.AppProfile.DataBoostIsolationReadOnly)) {
+ return super.equals(obj);
+ }
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly other =
+ (com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly) obj;
+
+ if (hasComputeBillingOwner() != other.hasComputeBillingOwner()) return false;
+ if (hasComputeBillingOwner()) {
+ if (computeBillingOwner_ != other.computeBillingOwner_) 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 (hasComputeBillingOwner()) {
+ hash = (37 * hash) + COMPUTE_BILLING_OWNER_FIELD_NUMBER;
+ hash = (53 * hash) + computeBillingOwner_;
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly 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.AppProfile.DataBoostIsolationReadOnly parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly 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.AppProfile.DataBoostIsolationReadOnly parseFrom(
+ byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly 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.AppProfile.DataBoostIsolationReadOnly parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.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.AppProfile.DataBoostIsolationReadOnly 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.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ *
+ *
+ * + * Data Boost is a serverless compute capability that lets you run + * high-throughput read jobs on your Bigtable data, without impacting the + * performance of the clusters that handle your application traffic. + * Currently, Data Boost exclusively supports read-only use-cases with + * single-cluster routing. + * + * Data Boost reads are only guaranteed to see the results of writes that + * were written at least 30 minutes ago. This means newly written values may + * not become visible for up to 30m, and also means that old values may + * remain visible for up to 30m after being deleted or overwritten. To + * mitigate the staleness of the data, users may either wait 30m, or use + * CheckConsistency. + *+ * + * Protobuf type {@code google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly} + */ + public static final class Builder + extends com.google.protobuf.GeneratedMessageV3.Builder
+ * The Compute Billing Owner for this Data Boost App Profile. + *+ * + *
+ * optional .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner compute_billing_owner = 1;
+ *
+ *
+ * @return Whether the computeBillingOwner field is set.
+ */
+ @java.lang.Override
+ public boolean hasComputeBillingOwner() {
+ return ((bitField0_ & 0x00000001) != 0);
+ }
+ /**
+ *
+ *
+ * + * The Compute Billing Owner for this Data Boost App Profile. + *+ * + *
+ * optional .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner compute_billing_owner = 1;
+ *
+ *
+ * @return The enum numeric value on the wire for computeBillingOwner.
+ */
+ @java.lang.Override
+ public int getComputeBillingOwnerValue() {
+ return computeBillingOwner_;
+ }
+ /**
+ *
+ *
+ * + * The Compute Billing Owner for this Data Boost App Profile. + *+ * + *
+ * optional .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner compute_billing_owner = 1;
+ *
+ *
+ * @param value The enum numeric value on the wire for computeBillingOwner to set.
+ * @return This builder for chaining.
+ */
+ public Builder setComputeBillingOwnerValue(int value) {
+ computeBillingOwner_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ *
+ * + * The Compute Billing Owner for this Data Boost App Profile. + *+ * + *
+ * optional .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner compute_billing_owner = 1;
+ *
+ *
+ * @return The computeBillingOwner.
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner
+ getComputeBillingOwner() {
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner
+ result =
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ .ComputeBillingOwner.forNumber(computeBillingOwner_);
+ return result == null
+ ? com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner
+ .UNRECOGNIZED
+ : result;
+ }
+ /**
+ *
+ *
+ * + * The Compute Billing Owner for this Data Boost App Profile. + *+ * + *
+ * optional .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner compute_billing_owner = 1;
+ *
+ *
+ * @param value The computeBillingOwner to set.
+ * @return This builder for chaining.
+ */
+ public Builder setComputeBillingOwner(
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner
+ value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ computeBillingOwner_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ *
+ * + * The Compute Billing Owner for this Data Boost App Profile. + *+ * + *
+ * optional .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner compute_billing_owner = 1;
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearComputeBillingOwner() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ computeBillingOwner_ = 0;
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly)
+ private static final com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly();
+ }
+
+ public static com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser.google.bigtable.admin.v2.AppProfile.Priority priority = 7 [deprecated = true];
*
* @deprecated google.bigtable.admin.v2.AppProfile.priority is deprecated. See
- * google/bigtable/admin/v2/instance.proto;l=332
+ * google/bigtable/admin/v2/instance.proto;l=361
* @return Whether the priority field is set.
*/
@java.lang.Deprecated
@@ -2798,7 +3678,7 @@ public boolean hasPriority() {
* .google.bigtable.admin.v2.AppProfile.Priority priority = 7 [deprecated = true];
*
* @deprecated google.bigtable.admin.v2.AppProfile.priority is deprecated. See
- * google/bigtable/admin/v2/instance.proto;l=332
+ * google/bigtable/admin/v2/instance.proto;l=361
* @return The enum numeric value on the wire for priority.
*/
@java.lang.Deprecated
@@ -2821,7 +3701,7 @@ public int getPriorityValue() {
* .google.bigtable.admin.v2.AppProfile.Priority priority = 7 [deprecated = true];
*
* @deprecated google.bigtable.admin.v2.AppProfile.priority is deprecated. See
- * google/bigtable/admin/v2/instance.proto;l=332
+ * google/bigtable/admin/v2/instance.proto;l=361
* @return The priority.
*/
@java.lang.Deprecated
@@ -2892,6 +3772,68 @@ public com.google.bigtable.admin.v2.AppProfile.StandardIsolation getStandardIsol
return com.google.bigtable.admin.v2.AppProfile.StandardIsolation.getDefaultInstance();
}
+ public static final int DATA_BOOST_ISOLATION_READ_ONLY_FIELD_NUMBER = 10;
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ *
+ * @return Whether the dataBoostIsolationReadOnly field is set.
+ */
+ @java.lang.Override
+ public boolean hasDataBoostIsolationReadOnly() {
+ return isolationCase_ == 10;
+ }
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ *
+ * @return The dataBoostIsolationReadOnly.
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ getDataBoostIsolationReadOnly() {
+ if (isolationCase_ == 10) {
+ return (com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly) isolation_;
+ }
+ return com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.getDefaultInstance();
+ }
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnlyOrBuilder
+ getDataBoostIsolationReadOnlyOrBuilder() {
+ if (isolationCase_ == 10) {
+ return (com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly) isolation_;
+ }
+ return com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.getDefaultInstance();
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -2926,6 +3868,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (isolationCase_ == 7) {
output.writeEnum(7, ((java.lang.Integer) isolation_));
}
+ if (isolationCase_ == 10) {
+ output.writeMessage(
+ 10, (com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly) isolation_);
+ }
if (isolationCase_ == 11) {
output.writeMessage(
11, (com.google.bigtable.admin.v2.AppProfile.StandardIsolation) isolation_);
@@ -2964,6 +3910,11 @@ public int getSerializedSize() {
com.google.protobuf.CodedOutputStream.computeEnumSize(
7, ((java.lang.Integer) isolation_));
}
+ if (isolationCase_ == 10) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 10, (com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly) isolation_);
+ }
if (isolationCase_ == 11) {
size +=
com.google.protobuf.CodedOutputStream.computeMessageSize(
@@ -3007,6 +3958,10 @@ public boolean equals(final java.lang.Object obj) {
case 11:
if (!getStandardIsolation().equals(other.getStandardIsolation())) return false;
break;
+ case 10:
+ if (!getDataBoostIsolationReadOnly().equals(other.getDataBoostIsolationReadOnly()))
+ return false;
+ break;
case 0:
default:
}
@@ -3048,6 +4003,10 @@ public int hashCode() {
hash = (37 * hash) + STANDARD_ISOLATION_FIELD_NUMBER;
hash = (53 * hash) + getStandardIsolation().hashCode();
break;
+ case 10:
+ hash = (37 * hash) + DATA_BOOST_ISOLATION_READ_ONLY_FIELD_NUMBER;
+ hash = (53 * hash) + getDataBoostIsolationReadOnly().hashCode();
+ break;
case 0:
default:
}
@@ -3203,6 +4162,9 @@ public Builder clear() {
if (standardIsolationBuilder_ != null) {
standardIsolationBuilder_.clear();
}
+ if (dataBoostIsolationReadOnlyBuilder_ != null) {
+ dataBoostIsolationReadOnlyBuilder_.clear();
+ }
routingPolicyCase_ = 0;
routingPolicy_ = null;
isolationCase_ = 0;
@@ -3269,6 +4231,9 @@ private void buildPartialOneofs(com.google.bigtable.admin.v2.AppProfile result)
if (isolationCase_ == 11 && standardIsolationBuilder_ != null) {
result.isolation_ = standardIsolationBuilder_.build();
}
+ if (isolationCase_ == 10 && dataBoostIsolationReadOnlyBuilder_ != null) {
+ result.isolation_ = dataBoostIsolationReadOnlyBuilder_.build();
+ }
}
@java.lang.Override
@@ -3358,6 +4323,11 @@ public Builder mergeFrom(com.google.bigtable.admin.v2.AppProfile other) {
mergeStandardIsolation(other.getStandardIsolation());
break;
}
+ case DATA_BOOST_ISOLATION_READ_ONLY:
+ {
+ mergeDataBoostIsolationReadOnly(other.getDataBoostIsolationReadOnly());
+ break;
+ }
case ISOLATION_NOT_SET:
{
break;
@@ -3428,6 +4398,13 @@ public Builder mergeFrom(
isolation_ = rawValue;
break;
} // case 56
+ case 82:
+ {
+ input.readMessage(
+ getDataBoostIsolationReadOnlyFieldBuilder().getBuilder(), extensionRegistry);
+ isolationCase_ = 10;
+ break;
+ } // case 82
case 90:
{
input.readMessage(
@@ -4318,7 +5295,7 @@ public Builder clearSingleClusterRouting() {
* .google.bigtable.admin.v2.AppProfile.Priority priority = 7 [deprecated = true];
*
* @deprecated google.bigtable.admin.v2.AppProfile.priority is deprecated. See
- * google/bigtable/admin/v2/instance.proto;l=332
+ * google/bigtable/admin/v2/instance.proto;l=361
* @return Whether the priority field is set.
*/
@java.lang.Override
@@ -4339,7 +5316,7 @@ public boolean hasPriority() {
* .google.bigtable.admin.v2.AppProfile.Priority priority = 7 [deprecated = true];
*
* @deprecated google.bigtable.admin.v2.AppProfile.priority is deprecated. See
- * google/bigtable/admin/v2/instance.proto;l=332
+ * google/bigtable/admin/v2/instance.proto;l=361
* @return The enum numeric value on the wire for priority.
*/
@java.lang.Override
@@ -4363,7 +5340,7 @@ public int getPriorityValue() {
* .google.bigtable.admin.v2.AppProfile.Priority priority = 7 [deprecated = true];
*
* @deprecated google.bigtable.admin.v2.AppProfile.priority is deprecated. See
- * google/bigtable/admin/v2/instance.proto;l=332
+ * google/bigtable/admin/v2/instance.proto;l=361
* @param value The enum numeric value on the wire for priority to set.
* @return This builder for chaining.
*/
@@ -4387,7 +5364,7 @@ public Builder setPriorityValue(int value) {
* .google.bigtable.admin.v2.AppProfile.Priority priority = 7 [deprecated = true];
*
* @deprecated google.bigtable.admin.v2.AppProfile.priority is deprecated. See
- * google/bigtable/admin/v2/instance.proto;l=332
+ * google/bigtable/admin/v2/instance.proto;l=361
* @return The priority.
*/
@java.lang.Override
@@ -4416,7 +5393,7 @@ public com.google.bigtable.admin.v2.AppProfile.Priority getPriority() {
* .google.bigtable.admin.v2.AppProfile.Priority priority = 7 [deprecated = true];
*
* @deprecated google.bigtable.admin.v2.AppProfile.priority is deprecated. See
- * google/bigtable/admin/v2/instance.proto;l=332
+ * google/bigtable/admin/v2/instance.proto;l=361
* @param value The priority to set.
* @return This builder for chaining.
*/
@@ -4443,7 +5420,7 @@ public Builder setPriority(com.google.bigtable.admin.v2.AppProfile.Priority valu
* .google.bigtable.admin.v2.AppProfile.Priority priority = 7 [deprecated = true];
*
* @deprecated google.bigtable.admin.v2.AppProfile.priority is deprecated. See
- * google/bigtable/admin/v2/instance.proto;l=332
+ * google/bigtable/admin/v2/instance.proto;l=361
* @return This builder for chaining.
*/
@java.lang.Deprecated
@@ -4680,6 +5657,256 @@ public Builder clearStandardIsolation() {
return standardIsolationBuilder_;
}
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly,
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.Builder,
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnlyOrBuilder>
+ dataBoostIsolationReadOnlyBuilder_;
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ *
+ * @return Whether the dataBoostIsolationReadOnly field is set.
+ */
+ @java.lang.Override
+ public boolean hasDataBoostIsolationReadOnly() {
+ return isolationCase_ == 10;
+ }
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ *
+ * @return The dataBoostIsolationReadOnly.
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ getDataBoostIsolationReadOnly() {
+ if (dataBoostIsolationReadOnlyBuilder_ == null) {
+ if (isolationCase_ == 10) {
+ return (com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly) isolation_;
+ }
+ return com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ .getDefaultInstance();
+ } else {
+ if (isolationCase_ == 10) {
+ return dataBoostIsolationReadOnlyBuilder_.getMessage();
+ }
+ return com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ .getDefaultInstance();
+ }
+ }
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ */
+ public Builder setDataBoostIsolationReadOnly(
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly value) {
+ if (dataBoostIsolationReadOnlyBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ isolation_ = value;
+ onChanged();
+ } else {
+ dataBoostIsolationReadOnlyBuilder_.setMessage(value);
+ }
+ isolationCase_ = 10;
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ */
+ public Builder setDataBoostIsolationReadOnly(
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.Builder
+ builderForValue) {
+ if (dataBoostIsolationReadOnlyBuilder_ == null) {
+ isolation_ = builderForValue.build();
+ onChanged();
+ } else {
+ dataBoostIsolationReadOnlyBuilder_.setMessage(builderForValue.build());
+ }
+ isolationCase_ = 10;
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ */
+ public Builder mergeDataBoostIsolationReadOnly(
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly value) {
+ if (dataBoostIsolationReadOnlyBuilder_ == null) {
+ if (isolationCase_ == 10
+ && isolation_
+ != com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ .getDefaultInstance()) {
+ isolation_ =
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.newBuilder(
+ (com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly)
+ isolation_)
+ .mergeFrom(value)
+ .buildPartial();
+ } else {
+ isolation_ = value;
+ }
+ onChanged();
+ } else {
+ if (isolationCase_ == 10) {
+ dataBoostIsolationReadOnlyBuilder_.mergeFrom(value);
+ } else {
+ dataBoostIsolationReadOnlyBuilder_.setMessage(value);
+ }
+ }
+ isolationCase_ = 10;
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ */
+ public Builder clearDataBoostIsolationReadOnly() {
+ if (dataBoostIsolationReadOnlyBuilder_ == null) {
+ if (isolationCase_ == 10) {
+ isolationCase_ = 0;
+ isolation_ = null;
+ onChanged();
+ }
+ } else {
+ if (isolationCase_ == 10) {
+ isolationCase_ = 0;
+ isolation_ = null;
+ }
+ dataBoostIsolationReadOnlyBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ */
+ public com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.Builder
+ getDataBoostIsolationReadOnlyBuilder() {
+ return getDataBoostIsolationReadOnlyFieldBuilder().getBuilder();
+ }
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnlyOrBuilder
+ getDataBoostIsolationReadOnlyOrBuilder() {
+ if ((isolationCase_ == 10) && (dataBoostIsolationReadOnlyBuilder_ != null)) {
+ return dataBoostIsolationReadOnlyBuilder_.getMessageOrBuilder();
+ } else {
+ if (isolationCase_ == 10) {
+ return (com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly) isolation_;
+ }
+ return com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ .getDefaultInstance();
+ }
+ }
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly,
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.Builder,
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnlyOrBuilder>
+ getDataBoostIsolationReadOnlyFieldBuilder() {
+ if (dataBoostIsolationReadOnlyBuilder_ == null) {
+ if (!(isolationCase_ == 10)) {
+ isolation_ =
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ .getDefaultInstance();
+ }
+ dataBoostIsolationReadOnlyBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly,
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly.Builder,
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnlyOrBuilder>(
+ (com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly) isolation_,
+ getParentForChildren(),
+ isClean());
+ isolation_ = null;
+ }
+ isolationCase_ = 10;
+ onChanged();
+ return dataBoostIsolationReadOnlyBuilder_;
+ }
+
@java.lang.Override
public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
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 262136da9..e5fa6a2fa 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
@@ -209,7 +209,7 @@ public interface AppProfileOrBuilder
* .google.bigtable.admin.v2.AppProfile.Priority priority = 7 [deprecated = true];
*
* @deprecated google.bigtable.admin.v2.AppProfile.priority is deprecated. See
- * google/bigtable/admin/v2/instance.proto;l=332
+ * google/bigtable/admin/v2/instance.proto;l=361
* @return Whether the priority field is set.
*/
@java.lang.Deprecated
@@ -227,7 +227,7 @@ public interface AppProfileOrBuilder
* .google.bigtable.admin.v2.AppProfile.Priority priority = 7 [deprecated = true];
*
* @deprecated google.bigtable.admin.v2.AppProfile.priority is deprecated. See
- * google/bigtable/admin/v2/instance.proto;l=332
+ * google/bigtable/admin/v2/instance.proto;l=361
* @return The enum numeric value on the wire for priority.
*/
@java.lang.Deprecated
@@ -245,7 +245,7 @@ public interface AppProfileOrBuilder
* .google.bigtable.admin.v2.AppProfile.Priority priority = 7 [deprecated = true];
*
* @deprecated google.bigtable.admin.v2.AppProfile.priority is deprecated. See
- * google/bigtable/admin/v2/instance.proto;l=332
+ * google/bigtable/admin/v2/instance.proto;l=361
* @return The priority.
*/
@java.lang.Deprecated
@@ -290,6 +290,52 @@ public interface AppProfileOrBuilder
com.google.bigtable.admin.v2.AppProfile.StandardIsolationOrBuilder
getStandardIsolationOrBuilder();
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ *
+ * @return Whether the dataBoostIsolationReadOnly field is set.
+ */
+ boolean hasDataBoostIsolationReadOnly();
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ *
+ * @return The dataBoostIsolationReadOnly.
+ */
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly
+ getDataBoostIsolationReadOnly();
+ /**
+ *
+ *
+ * + * Specifies that this app profile is intended for read-only usage via the + * Data Boost feature. + *+ * + *
+ * .google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
+ *
+ */
+ com.google.bigtable.admin.v2.AppProfile.DataBoostIsolationReadOnlyOrBuilder
+ getDataBoostIsolationReadOnlyOrBuilder();
+
com.google.bigtable.admin.v2.AppProfile.RoutingPolicyCase getRoutingPolicyCase();
com.google.bigtable.admin.v2.AppProfile.IsolationCase getIsolationCase();
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 dc4d0a0a0..a9290a9ae 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
@@ -108,6 +108,14 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
internal_static_google_bigtable_admin_v2_CheckConsistencyRequest_descriptor;
static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_google_bigtable_admin_v2_CheckConsistencyRequest_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_bigtable_admin_v2_StandardReadRemoteWrites_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_bigtable_admin_v2_StandardReadRemoteWrites_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_bigtable_admin_v2_DataBoostReadLocalWrites_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_bigtable_admin_v2_DataBoostReadLocalWrites_fieldAccessorTable;
static final com.google.protobuf.Descriptors.Descriptor
internal_static_google_bigtable_admin_v2_CheckConsistencyResponse_descriptor;
static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
@@ -297,277 +305,283 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "nerateConsistencyTokenRequest\0228\n\004name\030\001 "
+ "\001(\tB*\340A\002\372A$\n\"bigtableadmin.googleapis.co"
+ "m/Table\"=\n GenerateConsistencyTokenRespo"
- + "nse\022\031\n\021consistency_token\030\001 \001(\t\"s\n\027CheckC"
- + "onsistencyRequest\0228\n\004name\030\001 \001(\tB*\340A\002\372A$\n"
- + "\"bigtableadmin.googleapis.com/Table\022\036\n\021c"
- + "onsistency_token\030\002 \001(\tB\003\340A\002\".\n\030CheckCons"
- + "istencyResponse\022\022\n\nconsistent\030\001 \001(\010\"\346\001\n\024"
- + "SnapshotTableRequest\0228\n\004name\030\001 \001(\tB*\340A\002\372"
- + "A$\n\"bigtableadmin.googleapis.com/Table\022="
- + "\n\007cluster\030\002 \001(\tB,\340A\002\372A&\n$bigtableadmin.g"
- + "oogleapis.com/Cluster\022\030\n\013snapshot_id\030\003 \001"
- + "(\tB\003\340A\002\022&\n\003ttl\030\004 \001(\0132\031.google.protobuf.D"
- + "uration\022\023\n\013description\030\005 \001(\t\"Q\n\022GetSnaps"
- + "hotRequest\022;\n\004name\030\001 \001(\tB-\340A\002\372A\'\n%bigtab"
- + "leadmin.googleapis.com/Snapshot\"{\n\024ListS"
- + "napshotsRequest\022<\n\006parent\030\001 \001(\tB,\340A\002\372A&\n"
- + "$bigtableadmin.googleapis.com/Cluster\022\021\n"
- + "\tpage_size\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\"g\n\025"
- + "ListSnapshotsResponse\0225\n\tsnapshots\030\001 \003(\013"
- + "2\".google.bigtable.admin.v2.Snapshot\022\027\n\017"
- + "next_page_token\030\002 \001(\t\"T\n\025DeleteSnapshotR"
- + "equest\022;\n\004name\030\001 \001(\tB-\340A\002\372A\'\n%bigtablead"
- + "min.googleapis.com/Snapshot\"\304\001\n\025Snapshot"
- + "TableMetadata\022H\n\020original_request\030\001 \001(\0132"
- + "..google.bigtable.admin.v2.SnapshotTable"
- + "Request\0220\n\014request_time\030\002 \001(\0132\032.google.p"
- + "rotobuf.Timestamp\022/\n\013finish_time\030\003 \001(\0132\032"
- + ".google.protobuf.Timestamp\"\330\001\n\037CreateTab"
- + "leFromSnapshotMetadata\022R\n\020original_reque"
- + "st\030\001 \001(\01328.google.bigtable.admin.v2.Crea"
- + "teTableFromSnapshotRequest\0220\n\014request_ti"
- + "me\030\002 \001(\0132\032.google.protobuf.Timestamp\022/\n\013"
- + "finish_time\030\003 \001(\0132\032.google.protobuf.Time"
- + "stamp\"\242\001\n\023CreateBackupRequest\022<\n\006parent\030"
- + "\001 \001(\tB,\340A\002\372A&\n$bigtableadmin.googleapis."
- + "com/Cluster\022\026\n\tbackup_id\030\002 \001(\tB\003\340A\002\0225\n\006b"
- + "ackup\030\003 \001(\0132 .google.bigtable.admin.v2.B"
- + "ackupB\003\340A\002\"\230\001\n\024CreateBackupMetadata\022\014\n\004n"
- + "ame\030\001 \001(\t\022\024\n\014source_table\030\002 \001(\t\022.\n\nstart"
- + "_time\030\003 \001(\0132\032.google.protobuf.Timestamp\022"
- + ",\n\010end_time\030\004 \001(\0132\032.google.protobuf.Time"
- + "stamp\"\202\001\n\023UpdateBackupRequest\0225\n\006backup\030"
- + "\001 \001(\0132 .google.bigtable.admin.v2.BackupB"
- + "\003\340A\002\0224\n\013update_mask\030\002 \001(\0132\032.google.proto"
- + "buf.FieldMaskB\003\340A\002\"M\n\020GetBackupRequest\0229"
- + "\n\004name\030\001 \001(\tB+\340A\002\372A%\n#bigtableadmin.goog"
- + "leapis.com/Backup\"P\n\023DeleteBackupRequest"
- + "\0229\n\004name\030\001 \001(\tB+\340A\002\372A%\n#bigtableadmin.go"
- + "ogleapis.com/Backup\"\233\001\n\022ListBackupsReque"
- + "st\022<\n\006parent\030\001 \001(\tB,\340A\002\372A&\n$bigtableadmi"
- + "n.googleapis.com/Cluster\022\016\n\006filter\030\002 \001(\t"
- + "\022\020\n\010order_by\030\003 \001(\t\022\021\n\tpage_size\030\004 \001(\005\022\022\n"
- + "\npage_token\030\005 \001(\t\"a\n\023ListBackupsResponse"
- + "\0221\n\007backups\030\001 \003(\0132 .google.bigtable.admi"
- + "n.v2.Backup\022\027\n\017next_page_token\030\002 \001(\t\"\343\001\n"
- + "\021CopyBackupRequest\022<\n\006parent\030\001 \001(\tB,\340A\002\372"
- + "A&\n$bigtableadmin.googleapis.com/Cluster"
- + "\022\026\n\tbackup_id\030\002 \001(\tB\003\340A\002\022B\n\rsource_backu"
- + "p\030\003 \001(\tB+\340A\002\372A%\n#bigtableadmin.googleapi"
- + "s.com/Backup\0224\n\013expire_time\030\004 \001(\0132\032.goog"
- + "le.protobuf.TimestampB\003\340A\002\"\315\001\n\022CopyBacku"
- + "pMetadata\0226\n\004name\030\001 \001(\tB(\372A%\n#bigtablead"
- + "min.googleapis.com/Backup\022@\n\022source_back"
- + "up_info\030\002 \001(\0132$.google.bigtable.admin.v2"
- + ".BackupInfo\022=\n\010progress\030\003 \001(\0132+.google.b"
- + "igtable.admin.v2.OperationProgress\"\313\001\n\033C"
- + "reateAuthorizedViewRequest\022C\n\006parent\030\001 \001"
- + "(\tB3\340A\002\372A-\022+bigtableadmin.googleapis.com"
- + "/AuthorizedView\022\037\n\022authorized_view_id\030\002 "
- + "\001(\tB\003\340A\002\022F\n\017authorized_view\030\003 \001(\0132(.goog"
- + "le.bigtable.admin.v2.AuthorizedViewB\003\340A\002"
- + "\"\322\001\n\034CreateAuthorizedViewMetadata\022O\n\020ori"
- + "ginal_request\030\001 \001(\01325.google.bigtable.ad"
- + "min.v2.CreateAuthorizedViewRequest\0220\n\014re"
+ + "nse\022\031\n\021consistency_token\030\001 \001(\t\"\262\002\n\027Check"
+ + "ConsistencyRequest\0228\n\004name\030\001 \001(\tB*\340A\002\372A$"
+ + "\n\"bigtableadmin.googleapis.com/Table\022\036\n\021"
+ + "consistency_token\030\002 \001(\tB\003\340A\002\022Y\n\033standard"
+ + "_read_remote_writes\030\003 \001(\01322.google.bigta"
+ + "ble.admin.v2.StandardReadRemoteWritesH\000\022"
+ + "Z\n\034data_boost_read_local_writes\030\004 \001(\01322."
+ + "google.bigtable.admin.v2.DataBoostReadLo"
+ + "calWritesH\000B\006\n\004mode\"\032\n\030StandardReadRemot"
+ + "eWrites\"\032\n\030DataBoostReadLocalWrites\".\n\030C"
+ + "heckConsistencyResponse\022\022\n\nconsistent\030\001 "
+ + "\001(\010\"\346\001\n\024SnapshotTableRequest\0228\n\004name\030\001 \001"
+ + "(\tB*\340A\002\372A$\n\"bigtableadmin.googleapis.com"
+ + "/Table\022=\n\007cluster\030\002 \001(\tB,\340A\002\372A&\n$bigtabl"
+ + "eadmin.googleapis.com/Cluster\022\030\n\013snapsho"
+ + "t_id\030\003 \001(\tB\003\340A\002\022&\n\003ttl\030\004 \001(\0132\031.google.pr"
+ + "otobuf.Duration\022\023\n\013description\030\005 \001(\t\"Q\n\022"
+ + "GetSnapshotRequest\022;\n\004name\030\001 \001(\tB-\340A\002\372A\'"
+ + "\n%bigtableadmin.googleapis.com/Snapshot\""
+ + "{\n\024ListSnapshotsRequest\022<\n\006parent\030\001 \001(\tB"
+ + ",\340A\002\372A&\n$bigtableadmin.googleapis.com/Cl"
+ + "uster\022\021\n\tpage_size\030\002 \001(\005\022\022\n\npage_token\030\003"
+ + " \001(\t\"g\n\025ListSnapshotsResponse\0225\n\tsnapsho"
+ + "ts\030\001 \003(\0132\".google.bigtable.admin.v2.Snap"
+ + "shot\022\027\n\017next_page_token\030\002 \001(\t\"T\n\025DeleteS"
+ + "napshotRequest\022;\n\004name\030\001 \001(\tB-\340A\002\372A\'\n%bi"
+ + "gtableadmin.googleapis.com/Snapshot\"\304\001\n\025"
+ + "SnapshotTableMetadata\022H\n\020original_reques"
+ + "t\030\001 \001(\0132..google.bigtable.admin.v2.Snaps"
+ + "hotTableRequest\0220\n\014request_time\030\002 \001(\0132\032."
+ + "google.protobuf.Timestamp\022/\n\013finish_time"
+ + "\030\003 \001(\0132\032.google.protobuf.Timestamp\"\330\001\n\037C"
+ + "reateTableFromSnapshotMetadata\022R\n\020origin"
+ + "al_request\030\001 \001(\01328.google.bigtable.admin"
+ + ".v2.CreateTableFromSnapshotRequest\0220\n\014re"
+ "quest_time\030\002 \001(\0132\032.google.protobuf.Times"
+ "tamp\022/\n\013finish_time\030\003 \001(\0132\032.google.proto"
- + "buf.Timestamp\"\334\001\n\032ListAuthorizedViewsReq"
- + "uest\022C\n\006parent\030\001 \001(\tB3\340A\002\372A-\022+bigtablead"
- + "min.googleapis.com/AuthorizedView\022\026\n\tpag"
- + "e_size\030\002 \001(\005B\003\340A\001\022\027\n\npage_token\030\003 \001(\tB\003\340"
- + "A\001\022H\n\004view\030\004 \001(\01625.google.bigtable.admin"
- + ".v2.AuthorizedView.ResponseViewB\003\340A\001\"z\n\033"
- + "ListAuthorizedViewsResponse\022B\n\020authorize"
- + "d_views\030\001 \003(\0132(.google.bigtable.admin.v2"
- + ".AuthorizedView\022\027\n\017next_page_token\030\002 \001(\t"
- + "\"\247\001\n\030GetAuthorizedViewRequest\022A\n\004name\030\001 "
- + "\001(\tB3\340A\002\372A-\n+bigtableadmin.googleapis.co"
- + "m/AuthorizedView\022H\n\004view\030\002 \001(\01625.google."
- + "bigtable.admin.v2.AuthorizedView.Respons"
- + "eViewB\003\340A\001\"\271\001\n\033UpdateAuthorizedViewReque"
- + "st\022F\n\017authorized_view\030\001 \001(\0132(.google.big"
- + "table.admin.v2.AuthorizedViewB\003\340A\002\0224\n\013up"
- + "date_mask\030\002 \001(\0132\032.google.protobuf.FieldM"
- + "askB\003\340A\001\022\034\n\017ignore_warnings\030\003 \001(\010B\003\340A\001\"\322"
- + "\001\n\034UpdateAuthorizedViewMetadata\022O\n\020origi"
- + "nal_request\030\001 \001(\01325.google.bigtable.admi"
- + "n.v2.UpdateAuthorizedViewRequest\0220\n\014requ"
- + "est_time\030\002 \001(\0132\032.google.protobuf.Timesta"
- + "mp\022/\n\013finish_time\030\003 \001(\0132\032.google.protobu"
- + "f.Timestamp\"s\n\033DeleteAuthorizedViewReque"
- + "st\022A\n\004name\030\001 \001(\tB3\340A\002\372A-\n+bigtableadmin."
- + "googleapis.com/AuthorizedView\022\021\n\004etag\030\002 "
- + "\001(\tB\003\340A\0012\2663\n\022BigtableTableAdmin\022\253\001\n\013Crea"
- + "teTable\022,.google.bigtable.admin.v2.Creat"
- + "eTableRequest\032\037.google.bigtable.admin.v2"
- + ".Table\"M\332A\025parent,table_id,table\202\323\344\223\002/\"*"
- + "/v2/{parent=projects/*/instances/*}/tabl"
- + "es:\001*\022\212\002\n\027CreateTableFromSnapshot\0228.goog"
- + "le.bigtable.admin.v2.CreateTableFromSnap"
- + "shotRequest\032\035.google.longrunning.Operati"
- + "on\"\225\001\312A(\n\005Table\022\037CreateTableFromSnapshot"
- + "Metadata\332A\037parent,table_id,source_snapsh"
- + "ot\202\323\344\223\002B\"=/v2/{parent=projects/*/instanc"
- + "es/*}/tables:createFromSnapshot:\001*\022\244\001\n\nL"
- + "istTables\022+.google.bigtable.admin.v2.Lis"
- + "tTablesRequest\032,.google.bigtable.admin.v"
- + "2.ListTablesResponse\";\332A\006parent\202\323\344\223\002,\022*/"
- + "v2/{parent=projects/*/instances/*}/table"
- + "s\022\221\001\n\010GetTable\022).google.bigtable.admin.v"
- + "2.GetTableRequest\032\037.google.bigtable.admi"
- + "n.v2.Table\"9\332A\004name\202\323\344\223\002,\022*/v2/{name=pro"
- + "jects/*/instances/*/tables/*}\022\316\001\n\013Update"
- + "Table\022,.google.bigtable.admin.v2.UpdateT"
- + "ableRequest\032\035.google.longrunning.Operati"
- + "on\"r\312A\034\n\005Table\022\023UpdateTableMetadata\332A\021ta"
- + "ble,update_mask\202\323\344\223\002920/v2/{table.name=p"
- + "rojects/*/instances/*/tables/*}:\005table\022\216"
- + "\001\n\013DeleteTable\022,.google.bigtable.admin.v"
- + "2.DeleteTableRequest\032\026.google.protobuf.E"
- + "mpty\"9\332A\004name\202\323\344\223\002,**/v2/{name=projects/"
- + "*/instances/*/tables/*}\022\306\001\n\rUndeleteTabl"
- + "e\022..google.bigtable.admin.v2.UndeleteTab"
- + "leRequest\032\035.google.longrunning.Operation"
- + "\"f\312A\036\n\005Table\022\025UndeleteTableMetadata\332A\004na"
- + "me\202\323\344\223\0028\"3/v2/{name=projects/*/instances"
- + "/*/tables/*}:undelete:\001*\022\241\002\n\024CreateAutho"
- + "rizedView\0225.google.bigtable.admin.v2.Cre"
- + "ateAuthorizedViewRequest\032\035.google.longru"
- + "nning.Operation\"\262\001\312A.\n\016AuthorizedView\022\034C"
- + "reateAuthorizedViewMetadata\332A)parent,aut"
- + "horized_view,authorized_view_id\202\323\344\223\002O\""
- + "v2/{parent=projects/*/instances/*/tables"
- + "/*}/authorizedViews:\017authorized_view\022\321\001\n"
- + "\023ListAuthorizedViews\0224.google.bigtable.a"
- + "dmin.v2.ListAuthorizedViewsRequest\0325.goo"
- + "gle.bigtable.admin.v2.ListAuthorizedView"
- + "sResponse\"M\332A\006parent\202\323\344\223\002>\022\022*\022\022*
+ * Checks that reads using an app profile with `StandardIsolation` can
+ * see all writes committed before the token was created, even if the
+ * read and write target different clusters.
+ *
+ *
+ * .google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ *
+ * @return Whether the standardReadRemoteWrites field is set.
+ */
+ @java.lang.Override
+ public boolean hasStandardReadRemoteWrites() {
+ return modeCase_ == 3;
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ *
+ * @return The standardReadRemoteWrites.
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.StandardReadRemoteWrites getStandardReadRemoteWrites() {
+ if (modeCase_ == 3) {
+ return (com.google.bigtable.admin.v2.StandardReadRemoteWrites) mode_;
+ }
+ return com.google.bigtable.admin.v2.StandardReadRemoteWrites.getDefaultInstance();
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.StandardReadRemoteWritesOrBuilder
+ getStandardReadRemoteWritesOrBuilder() {
+ if (modeCase_ == 3) {
+ return (com.google.bigtable.admin.v2.StandardReadRemoteWrites) mode_;
+ }
+ return com.google.bigtable.admin.v2.StandardReadRemoteWrites.getDefaultInstance();
+ }
+
+ public static final int DATA_BOOST_READ_LOCAL_WRITES_FIELD_NUMBER = 4;
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ *
+ * @return Whether the dataBoostReadLocalWrites field is set.
+ */
+ @java.lang.Override
+ public boolean hasDataBoostReadLocalWrites() {
+ return modeCase_ == 4;
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ *
+ * @return The dataBoostReadLocalWrites.
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.DataBoostReadLocalWrites getDataBoostReadLocalWrites() {
+ if (modeCase_ == 4) {
+ return (com.google.bigtable.admin.v2.DataBoostReadLocalWrites) mode_;
+ }
+ return com.google.bigtable.admin.v2.DataBoostReadLocalWrites.getDefaultInstance();
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.DataBoostReadLocalWritesOrBuilder
+ getDataBoostReadLocalWritesOrBuilder() {
+ if (modeCase_ == 4) {
+ return (com.google.bigtable.admin.v2.DataBoostReadLocalWrites) mode_;
+ }
+ return com.google.bigtable.admin.v2.DataBoostReadLocalWrites.getDefaultInstance();
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -195,6 +366,12 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(consistencyToken_)) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 2, consistencyToken_);
}
+ if (modeCase_ == 3) {
+ output.writeMessage(3, (com.google.bigtable.admin.v2.StandardReadRemoteWrites) mode_);
+ }
+ if (modeCase_ == 4) {
+ output.writeMessage(4, (com.google.bigtable.admin.v2.DataBoostReadLocalWrites) mode_);
+ }
getUnknownFields().writeTo(output);
}
@@ -210,6 +387,16 @@ public int getSerializedSize() {
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(consistencyToken_)) {
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, consistencyToken_);
}
+ if (modeCase_ == 3) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 3, (com.google.bigtable.admin.v2.StandardReadRemoteWrites) mode_);
+ }
+ if (modeCase_ == 4) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 4, (com.google.bigtable.admin.v2.DataBoostReadLocalWrites) mode_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -228,6 +415,19 @@ public boolean equals(final java.lang.Object obj) {
if (!getName().equals(other.getName())) return false;
if (!getConsistencyToken().equals(other.getConsistencyToken())) return false;
+ if (!getModeCase().equals(other.getModeCase())) return false;
+ switch (modeCase_) {
+ case 3:
+ if (!getStandardReadRemoteWrites().equals(other.getStandardReadRemoteWrites()))
+ return false;
+ break;
+ case 4:
+ if (!getDataBoostReadLocalWrites().equals(other.getDataBoostReadLocalWrites()))
+ return false;
+ break;
+ case 0:
+ default:
+ }
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -243,6 +443,18 @@ public int hashCode() {
hash = (53 * hash) + getName().hashCode();
hash = (37 * hash) + CONSISTENCY_TOKEN_FIELD_NUMBER;
hash = (53 * hash) + getConsistencyToken().hashCode();
+ switch (modeCase_) {
+ case 3:
+ hash = (37 * hash) + STANDARD_READ_REMOTE_WRITES_FIELD_NUMBER;
+ hash = (53 * hash) + getStandardReadRemoteWrites().hashCode();
+ break;
+ case 4:
+ hash = (37 * hash) + DATA_BOOST_READ_LOCAL_WRITES_FIELD_NUMBER;
+ hash = (53 * hash) + getDataBoostReadLocalWrites().hashCode();
+ break;
+ case 0:
+ default:
+ }
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -385,6 +597,14 @@ public Builder clear() {
bitField0_ = 0;
name_ = "";
consistencyToken_ = "";
+ if (standardReadRemoteWritesBuilder_ != null) {
+ standardReadRemoteWritesBuilder_.clear();
+ }
+ if (dataBoostReadLocalWritesBuilder_ != null) {
+ dataBoostReadLocalWritesBuilder_.clear();
+ }
+ modeCase_ = 0;
+ mode_ = null;
return this;
}
@@ -415,6 +635,7 @@ public com.google.bigtable.admin.v2.CheckConsistencyRequest buildPartial() {
if (bitField0_ != 0) {
buildPartial0(result);
}
+ buildPartialOneofs(result);
onBuilt();
return result;
}
@@ -429,6 +650,17 @@ private void buildPartial0(com.google.bigtable.admin.v2.CheckConsistencyRequest
}
}
+ private void buildPartialOneofs(com.google.bigtable.admin.v2.CheckConsistencyRequest result) {
+ result.modeCase_ = modeCase_;
+ result.mode_ = this.mode_;
+ if (modeCase_ == 3 && standardReadRemoteWritesBuilder_ != null) {
+ result.mode_ = standardReadRemoteWritesBuilder_.build();
+ }
+ if (modeCase_ == 4 && dataBoostReadLocalWritesBuilder_ != null) {
+ result.mode_ = dataBoostReadLocalWritesBuilder_.build();
+ }
+ }
+
@java.lang.Override
public Builder clone() {
return super.clone();
@@ -485,6 +717,22 @@ public Builder mergeFrom(com.google.bigtable.admin.v2.CheckConsistencyRequest ot
bitField0_ |= 0x00000002;
onChanged();
}
+ switch (other.getModeCase()) {
+ case STANDARD_READ_REMOTE_WRITES:
+ {
+ mergeStandardReadRemoteWrites(other.getStandardReadRemoteWrites());
+ break;
+ }
+ case DATA_BOOST_READ_LOCAL_WRITES:
+ {
+ mergeDataBoostReadLocalWrites(other.getDataBoostReadLocalWrites());
+ break;
+ }
+ case MODE_NOT_SET:
+ {
+ break;
+ }
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -523,6 +771,20 @@ public Builder mergeFrom(
bitField0_ |= 0x00000002;
break;
} // case 18
+ case 26:
+ {
+ input.readMessage(
+ getStandardReadRemoteWritesFieldBuilder().getBuilder(), extensionRegistry);
+ modeCase_ = 3;
+ break;
+ } // case 26
+ case 34:
+ {
+ input.readMessage(
+ getDataBoostReadLocalWritesFieldBuilder().getBuilder(), extensionRegistry);
+ modeCase_ = 4;
+ break;
+ } // case 34
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -540,6 +802,20 @@ public Builder mergeFrom(
return this;
}
+ private int modeCase_ = 0;
+ private java.lang.Object mode_;
+
+ public ModeCase getModeCase() {
+ return ModeCase.forNumber(modeCase_);
+ }
+
+ public Builder clearMode() {
+ modeCase_ = 0;
+ mode_ = null;
+ onChanged();
+ return this;
+ }
+
private int bitField0_;
private java.lang.Object name_ = "";
@@ -774,6 +1050,488 @@ public Builder setConsistencyTokenBytes(com.google.protobuf.ByteString value) {
return this;
}
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.bigtable.admin.v2.StandardReadRemoteWrites,
+ com.google.bigtable.admin.v2.StandardReadRemoteWrites.Builder,
+ com.google.bigtable.admin.v2.StandardReadRemoteWritesOrBuilder>
+ standardReadRemoteWritesBuilder_;
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ *
+ * @return Whether the standardReadRemoteWrites field is set.
+ */
+ @java.lang.Override
+ public boolean hasStandardReadRemoteWrites() {
+ return modeCase_ == 3;
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ *
+ * @return The standardReadRemoteWrites.
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.StandardReadRemoteWrites getStandardReadRemoteWrites() {
+ if (standardReadRemoteWritesBuilder_ == null) {
+ if (modeCase_ == 3) {
+ return (com.google.bigtable.admin.v2.StandardReadRemoteWrites) mode_;
+ }
+ return com.google.bigtable.admin.v2.StandardReadRemoteWrites.getDefaultInstance();
+ } else {
+ if (modeCase_ == 3) {
+ return standardReadRemoteWritesBuilder_.getMessage();
+ }
+ return com.google.bigtable.admin.v2.StandardReadRemoteWrites.getDefaultInstance();
+ }
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ */
+ public Builder setStandardReadRemoteWrites(
+ com.google.bigtable.admin.v2.StandardReadRemoteWrites value) {
+ if (standardReadRemoteWritesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ mode_ = value;
+ onChanged();
+ } else {
+ standardReadRemoteWritesBuilder_.setMessage(value);
+ }
+ modeCase_ = 3;
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ */
+ public Builder setStandardReadRemoteWrites(
+ com.google.bigtable.admin.v2.StandardReadRemoteWrites.Builder builderForValue) {
+ if (standardReadRemoteWritesBuilder_ == null) {
+ mode_ = builderForValue.build();
+ onChanged();
+ } else {
+ standardReadRemoteWritesBuilder_.setMessage(builderForValue.build());
+ }
+ modeCase_ = 3;
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ */
+ public Builder mergeStandardReadRemoteWrites(
+ com.google.bigtable.admin.v2.StandardReadRemoteWrites value) {
+ if (standardReadRemoteWritesBuilder_ == null) {
+ if (modeCase_ == 3
+ && mode_
+ != com.google.bigtable.admin.v2.StandardReadRemoteWrites.getDefaultInstance()) {
+ mode_ =
+ com.google.bigtable.admin.v2.StandardReadRemoteWrites.newBuilder(
+ (com.google.bigtable.admin.v2.StandardReadRemoteWrites) mode_)
+ .mergeFrom(value)
+ .buildPartial();
+ } else {
+ mode_ = value;
+ }
+ onChanged();
+ } else {
+ if (modeCase_ == 3) {
+ standardReadRemoteWritesBuilder_.mergeFrom(value);
+ } else {
+ standardReadRemoteWritesBuilder_.setMessage(value);
+ }
+ }
+ modeCase_ = 3;
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ */
+ public Builder clearStandardReadRemoteWrites() {
+ if (standardReadRemoteWritesBuilder_ == null) {
+ if (modeCase_ == 3) {
+ modeCase_ = 0;
+ mode_ = null;
+ onChanged();
+ }
+ } else {
+ if (modeCase_ == 3) {
+ modeCase_ = 0;
+ mode_ = null;
+ }
+ standardReadRemoteWritesBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ */
+ public com.google.bigtable.admin.v2.StandardReadRemoteWrites.Builder
+ getStandardReadRemoteWritesBuilder() {
+ return getStandardReadRemoteWritesFieldBuilder().getBuilder();
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.StandardReadRemoteWritesOrBuilder
+ getStandardReadRemoteWritesOrBuilder() {
+ if ((modeCase_ == 3) && (standardReadRemoteWritesBuilder_ != null)) {
+ return standardReadRemoteWritesBuilder_.getMessageOrBuilder();
+ } else {
+ if (modeCase_ == 3) {
+ return (com.google.bigtable.admin.v2.StandardReadRemoteWrites) mode_;
+ }
+ return com.google.bigtable.admin.v2.StandardReadRemoteWrites.getDefaultInstance();
+ }
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.bigtable.admin.v2.StandardReadRemoteWrites,
+ com.google.bigtable.admin.v2.StandardReadRemoteWrites.Builder,
+ com.google.bigtable.admin.v2.StandardReadRemoteWritesOrBuilder>
+ getStandardReadRemoteWritesFieldBuilder() {
+ if (standardReadRemoteWritesBuilder_ == null) {
+ if (!(modeCase_ == 3)) {
+ mode_ = com.google.bigtable.admin.v2.StandardReadRemoteWrites.getDefaultInstance();
+ }
+ standardReadRemoteWritesBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.bigtable.admin.v2.StandardReadRemoteWrites,
+ com.google.bigtable.admin.v2.StandardReadRemoteWrites.Builder,
+ com.google.bigtable.admin.v2.StandardReadRemoteWritesOrBuilder>(
+ (com.google.bigtable.admin.v2.StandardReadRemoteWrites) mode_,
+ getParentForChildren(),
+ isClean());
+ mode_ = null;
+ }
+ modeCase_ = 3;
+ onChanged();
+ return standardReadRemoteWritesBuilder_;
+ }
+
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.bigtable.admin.v2.DataBoostReadLocalWrites,
+ com.google.bigtable.admin.v2.DataBoostReadLocalWrites.Builder,
+ com.google.bigtable.admin.v2.DataBoostReadLocalWritesOrBuilder>
+ dataBoostReadLocalWritesBuilder_;
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ *
+ * @return Whether the dataBoostReadLocalWrites field is set.
+ */
+ @java.lang.Override
+ public boolean hasDataBoostReadLocalWrites() {
+ return modeCase_ == 4;
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ *
+ * @return The dataBoostReadLocalWrites.
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.DataBoostReadLocalWrites getDataBoostReadLocalWrites() {
+ if (dataBoostReadLocalWritesBuilder_ == null) {
+ if (modeCase_ == 4) {
+ return (com.google.bigtable.admin.v2.DataBoostReadLocalWrites) mode_;
+ }
+ return com.google.bigtable.admin.v2.DataBoostReadLocalWrites.getDefaultInstance();
+ } else {
+ if (modeCase_ == 4) {
+ return dataBoostReadLocalWritesBuilder_.getMessage();
+ }
+ return com.google.bigtable.admin.v2.DataBoostReadLocalWrites.getDefaultInstance();
+ }
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ */
+ public Builder setDataBoostReadLocalWrites(
+ com.google.bigtable.admin.v2.DataBoostReadLocalWrites value) {
+ if (dataBoostReadLocalWritesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ mode_ = value;
+ onChanged();
+ } else {
+ dataBoostReadLocalWritesBuilder_.setMessage(value);
+ }
+ modeCase_ = 4;
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ */
+ public Builder setDataBoostReadLocalWrites(
+ com.google.bigtable.admin.v2.DataBoostReadLocalWrites.Builder builderForValue) {
+ if (dataBoostReadLocalWritesBuilder_ == null) {
+ mode_ = builderForValue.build();
+ onChanged();
+ } else {
+ dataBoostReadLocalWritesBuilder_.setMessage(builderForValue.build());
+ }
+ modeCase_ = 4;
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ */
+ public Builder mergeDataBoostReadLocalWrites(
+ com.google.bigtable.admin.v2.DataBoostReadLocalWrites value) {
+ if (dataBoostReadLocalWritesBuilder_ == null) {
+ if (modeCase_ == 4
+ && mode_
+ != com.google.bigtable.admin.v2.DataBoostReadLocalWrites.getDefaultInstance()) {
+ mode_ =
+ com.google.bigtable.admin.v2.DataBoostReadLocalWrites.newBuilder(
+ (com.google.bigtable.admin.v2.DataBoostReadLocalWrites) mode_)
+ .mergeFrom(value)
+ .buildPartial();
+ } else {
+ mode_ = value;
+ }
+ onChanged();
+ } else {
+ if (modeCase_ == 4) {
+ dataBoostReadLocalWritesBuilder_.mergeFrom(value);
+ } else {
+ dataBoostReadLocalWritesBuilder_.setMessage(value);
+ }
+ }
+ modeCase_ = 4;
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ */
+ public Builder clearDataBoostReadLocalWrites() {
+ if (dataBoostReadLocalWritesBuilder_ == null) {
+ if (modeCase_ == 4) {
+ modeCase_ = 0;
+ mode_ = null;
+ onChanged();
+ }
+ } else {
+ if (modeCase_ == 4) {
+ modeCase_ = 0;
+ mode_ = null;
+ }
+ dataBoostReadLocalWritesBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ */
+ public com.google.bigtable.admin.v2.DataBoostReadLocalWrites.Builder
+ getDataBoostReadLocalWritesBuilder() {
+ return getDataBoostReadLocalWritesFieldBuilder().getBuilder();
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ */
+ @java.lang.Override
+ public com.google.bigtable.admin.v2.DataBoostReadLocalWritesOrBuilder
+ getDataBoostReadLocalWritesOrBuilder() {
+ if ((modeCase_ == 4) && (dataBoostReadLocalWritesBuilder_ != null)) {
+ return dataBoostReadLocalWritesBuilder_.getMessageOrBuilder();
+ } else {
+ if (modeCase_ == 4) {
+ return (com.google.bigtable.admin.v2.DataBoostReadLocalWrites) mode_;
+ }
+ return com.google.bigtable.admin.v2.DataBoostReadLocalWrites.getDefaultInstance();
+ }
+ }
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.bigtable.admin.v2.DataBoostReadLocalWrites,
+ com.google.bigtable.admin.v2.DataBoostReadLocalWrites.Builder,
+ com.google.bigtable.admin.v2.DataBoostReadLocalWritesOrBuilder>
+ getDataBoostReadLocalWritesFieldBuilder() {
+ if (dataBoostReadLocalWritesBuilder_ == null) {
+ if (!(modeCase_ == 4)) {
+ mode_ = com.google.bigtable.admin.v2.DataBoostReadLocalWrites.getDefaultInstance();
+ }
+ dataBoostReadLocalWritesBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.bigtable.admin.v2.DataBoostReadLocalWrites,
+ com.google.bigtable.admin.v2.DataBoostReadLocalWrites.Builder,
+ com.google.bigtable.admin.v2.DataBoostReadLocalWritesOrBuilder>(
+ (com.google.bigtable.admin.v2.DataBoostReadLocalWrites) mode_,
+ getParentForChildren(),
+ isClean());
+ mode_ = null;
+ }
+ modeCase_ = 4;
+ onChanged();
+ return dataBoostReadLocalWritesBuilder_;
+ }
+
@java.lang.Override
public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
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 7f47bb672..259e28260 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
@@ -81,4 +81,96 @@ public interface CheckConsistencyRequestOrBuilder
* @return The bytes for consistencyToken.
*/
com.google.protobuf.ByteString getConsistencyTokenBytes();
+
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ *
+ * @return Whether the standardReadRemoteWrites field is set.
+ */
+ boolean hasStandardReadRemoteWrites();
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ *
+ * @return The standardReadRemoteWrites.
+ */
+ com.google.bigtable.admin.v2.StandardReadRemoteWrites getStandardReadRemoteWrites();
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `StandardIsolation` can + * see all writes committed before the token was created, even if the + * read and write target different clusters. + *+ * + *
.google.bigtable.admin.v2.StandardReadRemoteWrites standard_read_remote_writes = 3;
+ *
+ */
+ com.google.bigtable.admin.v2.StandardReadRemoteWritesOrBuilder
+ getStandardReadRemoteWritesOrBuilder();
+
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ *
+ * @return Whether the dataBoostReadLocalWrites field is set.
+ */
+ boolean hasDataBoostReadLocalWrites();
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ *
+ * @return The dataBoostReadLocalWrites.
+ */
+ com.google.bigtable.admin.v2.DataBoostReadLocalWrites getDataBoostReadLocalWrites();
+ /**
+ *
+ *
+ * + * Checks that reads using an app profile with `DataBoostIsolationReadOnly` + * can see all writes committed before the token was created, but only if + * the read and write target the same cluster. + *+ * + *
.google.bigtable.admin.v2.DataBoostReadLocalWrites data_boost_read_local_writes = 4;
+ *
+ */
+ com.google.bigtable.admin.v2.DataBoostReadLocalWritesOrBuilder
+ getDataBoostReadLocalWritesOrBuilder();
+
+ com.google.bigtable.admin.v2.CheckConsistencyRequest.ModeCase getModeCase();
}
diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DataBoostReadLocalWrites.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DataBoostReadLocalWrites.java
new file mode 100644
index 000000000..88f7fa88a
--- /dev/null
+++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/DataBoostReadLocalWrites.java
@@ -0,0 +1,435 @@
+/*
+ * Copyright 2024 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!
+// source: google/bigtable/admin/v2/bigtable_table_admin.proto
+
+// Protobuf Java Version: 3.25.2
+package com.google.bigtable.admin.v2;
+
+/**
+ *
+ *
+ * + * Checks that all writes before the consistency token was generated in the same + * cluster are readable by Databoost. + *+ * + * Protobuf type {@code google.bigtable.admin.v2.DataBoostReadLocalWrites} + */ +public final class DataBoostReadLocalWrites extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.bigtable.admin.v2.DataBoostReadLocalWrites) + DataBoostReadLocalWritesOrBuilder { + private static final long serialVersionUID = 0L; + // Use DataBoostReadLocalWrites.newBuilder() to construct. + private DataBoostReadLocalWrites(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private DataBoostReadLocalWrites() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new DataBoostReadLocalWrites(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.bigtable.admin.v2.BigtableTableAdminProto + .internal_static_google_bigtable_admin_v2_DataBoostReadLocalWrites_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.bigtable.admin.v2.BigtableTableAdminProto + .internal_static_google_bigtable_admin_v2_DataBoostReadLocalWrites_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.bigtable.admin.v2.DataBoostReadLocalWrites.class, + com.google.bigtable.admin.v2.DataBoostReadLocalWrites.Builder.class); + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.DataBoostReadLocalWrites)) { + return super.equals(obj); + } + com.google.bigtable.admin.v2.DataBoostReadLocalWrites other = + (com.google.bigtable.admin.v2.DataBoostReadLocalWrites) obj; + + 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(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.bigtable.admin.v2.DataBoostReadLocalWrites parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.bigtable.admin.v2.DataBoostReadLocalWrites 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.DataBoostReadLocalWrites parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.bigtable.admin.v2.DataBoostReadLocalWrites 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.DataBoostReadLocalWrites parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.bigtable.admin.v2.DataBoostReadLocalWrites 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.DataBoostReadLocalWrites parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.bigtable.admin.v2.DataBoostReadLocalWrites parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.bigtable.admin.v2.DataBoostReadLocalWrites parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.bigtable.admin.v2.DataBoostReadLocalWrites parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.bigtable.admin.v2.DataBoostReadLocalWrites parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.bigtable.admin.v2.DataBoostReadLocalWrites parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.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.DataBoostReadLocalWrites 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.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * + * + *
+ * Checks that all writes before the consistency token was generated in the same + * cluster are readable by Databoost. + *+ * + * Protobuf type {@code google.bigtable.admin.v2.DataBoostReadLocalWrites} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Checks that all writes before the consistency token was generated are + * replicated in every cluster and readable. + *+ * + * Protobuf type {@code google.bigtable.admin.v2.StandardReadRemoteWrites} + */ +public final class StandardReadRemoteWrites extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.bigtable.admin.v2.StandardReadRemoteWrites) + StandardReadRemoteWritesOrBuilder { + private static final long serialVersionUID = 0L; + // Use StandardReadRemoteWrites.newBuilder() to construct. + private StandardReadRemoteWrites(com.google.protobuf.GeneratedMessageV3.Builder> builder) { + super(builder); + } + + private StandardReadRemoteWrites() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new StandardReadRemoteWrites(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.bigtable.admin.v2.BigtableTableAdminProto + .internal_static_google_bigtable_admin_v2_StandardReadRemoteWrites_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.bigtable.admin.v2.BigtableTableAdminProto + .internal_static_google_bigtable_admin_v2_StandardReadRemoteWrites_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.bigtable.admin.v2.StandardReadRemoteWrites.class, + com.google.bigtable.admin.v2.StandardReadRemoteWrites.Builder.class); + } + + 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 { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.StandardReadRemoteWrites)) { + return super.equals(obj); + } + com.google.bigtable.admin.v2.StandardReadRemoteWrites other = + (com.google.bigtable.admin.v2.StandardReadRemoteWrites) obj; + + 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(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.bigtable.admin.v2.StandardReadRemoteWrites parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.bigtable.admin.v2.StandardReadRemoteWrites 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.StandardReadRemoteWrites parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.bigtable.admin.v2.StandardReadRemoteWrites 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.StandardReadRemoteWrites parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.bigtable.admin.v2.StandardReadRemoteWrites 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.StandardReadRemoteWrites parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.bigtable.admin.v2.StandardReadRemoteWrites parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.bigtable.admin.v2.StandardReadRemoteWrites parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.bigtable.admin.v2.StandardReadRemoteWrites parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.bigtable.admin.v2.StandardReadRemoteWrites parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.bigtable.admin.v2.StandardReadRemoteWrites parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.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.StandardReadRemoteWrites 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.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * + * + *
+ * Checks that all writes before the consistency token was generated are + * replicated in every cluster and readable. + *+ * + * Protobuf type {@code google.bigtable.admin.v2.StandardReadRemoteWrites} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ * Notify the server that the client has client side metrics enabled. + *+ * + *
bool client_side_metrics_enabled = 8;
+ *
+ * @return The clientSideMetricsEnabled.
+ */
+ @java.lang.Override
+ public boolean getClientSideMetricsEnabled() {
+ return clientSideMetricsEnabled_;
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -216,6 +234,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (retryInfo_ != false) {
output.writeBool(7, retryInfo_);
}
+ if (clientSideMetricsEnabled_ != false) {
+ output.writeBool(8, clientSideMetricsEnabled_);
+ }
getUnknownFields().writeTo(output);
}
@@ -243,6 +264,9 @@ public int getSerializedSize() {
if (retryInfo_ != false) {
size += com.google.protobuf.CodedOutputStream.computeBoolSize(7, retryInfo_);
}
+ if (clientSideMetricsEnabled_ != false) {
+ size += com.google.protobuf.CodedOutputStream.computeBoolSize(8, clientSideMetricsEnabled_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -264,6 +288,7 @@ public boolean equals(final java.lang.Object obj) {
if (getLastScannedRowResponses() != other.getLastScannedRowResponses()) return false;
if (getRoutingCookie() != other.getRoutingCookie()) return false;
if (getRetryInfo() != other.getRetryInfo()) return false;
+ if (getClientSideMetricsEnabled() != other.getClientSideMetricsEnabled()) return false;
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -287,6 +312,8 @@ public int hashCode() {
hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getRoutingCookie());
hash = (37 * hash) + RETRY_INFO_FIELD_NUMBER;
hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getRetryInfo());
+ hash = (37 * hash) + CLIENT_SIDE_METRICS_ENABLED_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getClientSideMetricsEnabled());
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -438,6 +465,7 @@ public Builder clear() {
lastScannedRowResponses_ = false;
routingCookie_ = false;
retryInfo_ = false;
+ clientSideMetricsEnabled_ = false;
return this;
}
@@ -491,6 +519,9 @@ private void buildPartial0(com.google.bigtable.v2.FeatureFlags result) {
if (((from_bitField0_ & 0x00000020) != 0)) {
result.retryInfo_ = retryInfo_;
}
+ if (((from_bitField0_ & 0x00000040) != 0)) {
+ result.clientSideMetricsEnabled_ = clientSideMetricsEnabled_;
+ }
}
@java.lang.Override
@@ -556,6 +587,9 @@ public Builder mergeFrom(com.google.bigtable.v2.FeatureFlags other) {
if (other.getRetryInfo() != false) {
setRetryInfo(other.getRetryInfo());
}
+ if (other.getClientSideMetricsEnabled() != false) {
+ setClientSideMetricsEnabled(other.getClientSideMetricsEnabled());
+ }
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -618,6 +652,12 @@ public Builder mergeFrom(
bitField0_ |= 0x00000020;
break;
} // case 56
+ case 64:
+ {
+ clientSideMetricsEnabled_ = input.readBool();
+ bitField0_ |= 0x00000040;
+ break;
+ } // case 64
default:
{
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -979,6 +1019,59 @@ public Builder clearRetryInfo() {
return this;
}
+ private boolean clientSideMetricsEnabled_;
+ /**
+ *
+ *
+ * + * Notify the server that the client has client side metrics enabled. + *+ * + *
bool client_side_metrics_enabled = 8;
+ *
+ * @return The clientSideMetricsEnabled.
+ */
+ @java.lang.Override
+ public boolean getClientSideMetricsEnabled() {
+ return clientSideMetricsEnabled_;
+ }
+ /**
+ *
+ *
+ * + * Notify the server that the client has client side metrics enabled. + *+ * + *
bool client_side_metrics_enabled = 8;
+ *
+ * @param value The clientSideMetricsEnabled to set.
+ * @return This builder for chaining.
+ */
+ public Builder setClientSideMetricsEnabled(boolean value) {
+
+ clientSideMetricsEnabled_ = value;
+ bitField0_ |= 0x00000040;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ *
+ * + * Notify the server that the client has client side metrics enabled. + *+ * + *
bool client_side_metrics_enabled = 8;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearClientSideMetricsEnabled() {
+ bitField0_ = (bitField0_ & ~0x00000040);
+ clientSideMetricsEnabled_ = false;
+ onChanged();
+ return this;
+ }
+
@java.lang.Override
public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
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 4e5e3c3f6..f58d5c96d 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
@@ -109,4 +109,17 @@ public interface FeatureFlagsOrBuilder
* @return The retryInfo.
*/
boolean getRetryInfo();
+
+ /**
+ *
+ *
+ * + * Notify the server that the client has client side metrics enabled. + *+ * + *
bool client_side_metrics_enabled = 8;
+ *
+ * @return The clientSideMetricsEnabled.
+ */
+ boolean getClientSideMetricsEnabled();
}
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 0bd27e36b..30301d352 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
@@ -42,17 +42,18 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
static {
java.lang.String[] descriptorData = {
"\n&google/bigtable/v2/feature_flags.proto"
- + "\022\022google.bigtable.v2\"\266\001\n\014FeatureFlags\022\025\n"
+ + "\022\022google.bigtable.v2\"\333\001\n\014FeatureFlags\022\025\n"
+ "\rreverse_scans\030\001 \001(\010\022\036\n\026mutate_rows_rate"
+ "_limit\030\003 \001(\010\022\037\n\027mutate_rows_rate_limit2\030"
+ "\005 \001(\010\022\"\n\032last_scanned_row_responses\030\004 \001("
+ "\010\022\026\n\016routing_cookie\030\006 \001(\010\022\022\n\nretry_info\030"
- + "\007 \001(\010B\275\001\n\026com.google.bigtable.v2B\021Featur"
- + "eFlagsProtoP\001Z:google.golang.org/genprot"
- + "o/googleapis/bigtable/v2;bigtable\252\002\030Goog"
- + "le.Cloud.Bigtable.V2\312\002\030Google\\Cloud\\Bigt"
- + "able\\V2\352\002\033Google::Cloud::Bigtable::V2b\006p"
- + "roto3"
+ + "\007 \001(\010\022#\n\033client_side_metrics_enabled\030\010 \001"
+ + "(\010B\275\001\n\026com.google.bigtable.v2B\021FeatureFl"
+ + "agsProtoP\001Z:google.golang.org/genproto/g"
+ + "oogleapis/bigtable/v2;bigtable\252\002\030Google."
+ + "Cloud.Bigtable.V2\312\002\030Google\\Cloud\\Bigtabl"
+ + "e\\V2\352\002\033Google::Cloud::Bigtable::V2b\006prot"
+ + "o3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -69,6 +70,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"LastScannedRowResponses",
"RoutingCookie",
"RetryInfo",
+ "ClientSideMetricsEnabled",
});
}
diff --git a/proto-google-cloud-bigtable-v2/src/main/proto/google/bigtable/v2/feature_flags.proto b/proto-google-cloud-bigtable-v2/src/main/proto/google/bigtable/v2/feature_flags.proto
index d3128c5c6..bfce3180f 100644
--- a/proto-google-cloud-bigtable-v2/src/main/proto/google/bigtable/v2/feature_flags.proto
+++ b/proto-google-cloud-bigtable-v2/src/main/proto/google/bigtable/v2/feature_flags.proto
@@ -58,4 +58,7 @@ message FeatureFlags {
// Notify the server that the client supports using retry info back off
// durations to retry requests with.
bool retry_info = 7;
+
+ // Notify the server that the client has client side metrics enabled.
+ bool client_side_metrics_enabled = 8;
}
From 2748eebe3b74100b1169a5951f1b012be26ded53 Mon Sep 17 00:00:00 2001
From: Lixia Chen By default, this is set to {@link + * com.google.cloud.bigtable.data.v2.stub.metrics.DefaultMetricsProvider#INSTANCE} which will + * collect and export client side metrics. + * + *
To disable client side metrics, set it to {@link + * com.google.cloud.bigtable.data.v2.stub.metrics.NoopMetricsProvider#INSTANCE}. + * + *
To use a custom OpenTelemetry instance, refer to {@link
+ * com.google.cloud.bigtable.data.v2.stub.metrics.CustomOpenTelemetryMetricsProvider} on how to
+ * set it up.
+ */
+ public Builder setMetricsProvider(MetricsProvider metricsProvider) {
+ stubSettings.setMetricsProvider(metricsProvider);
+ return this;
+ }
+
+ /** Gets the {@link MetricsProvider}. */
+ public MetricsProvider getMetricsProvider() {
+ return stubSettings.getMetricsProvider();
+ }
+
/**
* Returns the underlying settings for making RPC calls. The settings should be changed with
* care.
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java
index ec15c4131..f0aa85233 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java
@@ -15,6 +15,11 @@
*/
package com.google.cloud.bigtable.data.v2.stub;
+import static com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants.APP_PROFILE_KEY;
+import static com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants.BIGTABLE_PROJECT_ID_KEY;
+import static com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants.CLIENT_NAME_KEY;
+import static com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants.INSTANCE_ID_KEY;
+
import com.google.api.core.ApiFunction;
import com.google.api.core.BetaApi;
import com.google.api.core.InternalApi;
@@ -68,6 +73,7 @@
import com.google.bigtable.v2.RowRange;
import com.google.bigtable.v2.SampleRowKeysResponse;
import com.google.cloud.bigtable.Version;
+import com.google.cloud.bigtable.data.v2.BigtableDataSettings;
import com.google.cloud.bigtable.data.v2.internal.JwtCredentialsWithAudience;
import com.google.cloud.bigtable.data.v2.internal.NameUtil;
import com.google.cloud.bigtable.data.v2.internal.RequestContext;
@@ -97,8 +103,12 @@
import com.google.cloud.bigtable.data.v2.stub.metrics.BigtableTracerUnaryCallable;
import com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsTracerFactory;
import com.google.cloud.bigtable.data.v2.stub.metrics.CompositeTracerFactory;
+import com.google.cloud.bigtable.data.v2.stub.metrics.CustomOpenTelemetryMetricsProvider;
+import com.google.cloud.bigtable.data.v2.stub.metrics.DefaultMetricsProvider;
import com.google.cloud.bigtable.data.v2.stub.metrics.ErrorCountPerConnectionMetricTracker;
+import com.google.cloud.bigtable.data.v2.stub.metrics.MetricsProvider;
import com.google.cloud.bigtable.data.v2.stub.metrics.MetricsTracerFactory;
+import com.google.cloud.bigtable.data.v2.stub.metrics.NoopMetricsProvider;
import com.google.cloud.bigtable.data.v2.stub.metrics.RpcMeasureConstants;
import com.google.cloud.bigtable.data.v2.stub.metrics.StatsHeadersServerStreamingCallable;
import com.google.cloud.bigtable.data.v2.stub.metrics.StatsHeadersUnaryCallable;
@@ -130,6 +140,8 @@
import io.opencensus.tags.TagValue;
import io.opencensus.tags.Tagger;
import io.opencensus.tags.Tags;
+import io.opentelemetry.api.OpenTelemetry;
+import io.opentelemetry.api.common.Attributes;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -185,10 +197,17 @@ public class EnhancedBigtableStub implements AutoCloseable {
public static EnhancedBigtableStub create(EnhancedBigtableStubSettings settings)
throws IOException {
- settings = settings.toBuilder().setTracerFactory(createBigtableTracerFactory(settings)).build();
ClientContext clientContext = createClientContext(settings);
+ OpenTelemetry openTelemetry =
+ getOpenTelemetry(
+ settings.getProjectId(), settings.getMetricsProvider(), clientContext.getCredentials());
+ ClientContext contextWithTracer =
+ clientContext
+ .toBuilder()
+ .setTracerFactory(createBigtableTracerFactory(settings, openTelemetry))
+ .build();
- return new EnhancedBigtableStub(settings, clientContext);
+ return new EnhancedBigtableStub(settings, contextWithTracer);
}
public static EnhancedBigtableStub createWithClientContext(
@@ -207,15 +226,26 @@ public static ClientContext createClientContext(EnhancedBigtableStubSettings set
// workaround JWT audience issues
patchCredentials(builder);
+ // Fix the credentials so that they can be shared
+ Credentials credentials = null;
+ if (builder.getCredentialsProvider() != null) {
+ credentials = builder.getCredentialsProvider().getCredentials();
+ }
+ builder.setCredentialsProvider(FixedCredentialsProvider.create(credentials));
+
InstantiatingGrpcChannelProvider.Builder transportProvider =
builder.getTransportChannelProvider() instanceof InstantiatingGrpcChannelProvider
? ((InstantiatingGrpcChannelProvider) builder.getTransportChannelProvider()).toBuilder()
: null;
+ OpenTelemetry openTelemetry =
+ getOpenTelemetry(settings.getProjectId(), settings.getMetricsProvider(), credentials);
ErrorCountPerConnectionMetricTracker errorCountPerConnectionMetricTracker;
- if (transportProvider != null) {
+ // Skip setting up ErrorCountPerConnectionMetricTracker if openTelemetry is null
+ if (openTelemetry != null && transportProvider != null) {
errorCountPerConnectionMetricTracker =
- new ErrorCountPerConnectionMetricTracker(createBuiltinAttributes(builder));
+ new ErrorCountPerConnectionMetricTracker(
+ openTelemetry, createBuiltinAttributes(settings));
ApiFunction By default, this is set to {@link
+ * com.google.cloud.bigtable.data.v2.stub.metrics.DefaultMetricsProvider#INSTANCE} which will
+ * collect and export client side metrics.
+ *
+ * To disable client side metrics, set it to {@link
+ * com.google.cloud.bigtable.data.v2.stub.metrics.NoopMetricsProvider#INSTANCE}.
+ *
+ * To use a custom OpenTelemetry instance, refer to {@link
+ * com.google.cloud.bigtable.data.v2.stub.metrics.CustomOpenTelemetryMetricsProvider} on how to
+ * set it up.
+ */
+ public Builder setMetricsProvider(MetricsProvider metricsProvider) {
+ this.metricsProvider = Preconditions.checkNotNull(metricsProvider);
+ return this;
+ }
+
+ /** Gets the {@link MetricsProvider}. */
+ public MetricsProvider getMetricsProvider() {
+ return this.metricsProvider;
+ }
+
@InternalApi("Used for internal testing")
public Map The exporter will look for all bigtable owned metrics under bigtable.googleapis.com
+ * instrumentation scope and upload it via the Google Cloud Monitoring API.
+ */
+@InternalApi
+public final class BigtableCloudMonitoringExporter implements MetricExporter {
+
+ private static final Logger logger =
+ Logger.getLogger(BigtableCloudMonitoringExporter.class.getName());
+
+ // This system property can be used to override the monitoring endpoint
+ // to a different environment. It's meant for internal testing only.
+ private static final String MONITORING_ENDPOINT =
+ MoreObjects.firstNonNull(
+ System.getProperty("bigtable.test-monitoring-endpoint"),
+ MetricServiceSettings.getDefaultEndpoint());
+
+ private static String APPLICATION_RESOURCE_PROJECT_ID = "project_id";
+
+ private final MetricServiceClient client;
+
+ private final String bigtableProjectId;
+ private final String taskId;
+
+ // The resource the client application is running on
+ private final MonitoredResource applicationResource;
+
+ private final AtomicBoolean isShutdown = new AtomicBoolean(false);
+
+ private CompletableResultCode lastExportCode;
+
+ private static final ImmutableList To register client side metrics on the custom OpenTelemetry:
+ *
+ * {@code
+ * SdkMeterProviderBuilder sdkMeterProvider = SdkMeterProvider.builder();
+ *
+ * // register Builtin metrics on your meter provider with default credentials
+ * BuiltinMetricsViews.registerBuiltinMetrics("project-id", sdkMeterProvider);
+ *
+ * // register other metrics reader and views
+ * sdkMeterProvider.registerMetricReader(..);
+ * sdkMeterProvider.registerView(..);
+ *
+ * // create the OTEL instance
+ * OpenTelemetry openTelemetry = OpenTelemetrySdk
+ * .builder()
+ * .setMeterProvider(sdkMeterProvider.build())
+ * .build();
+ *
+ * // Override MetricsProvider in BigtableDataSettings
+ * BigtableDataSettings settings = BigtableDataSettings.newBuilder()
+ * .setProjectId("my-project")
+ * .setInstanceId("my-instance-id")
+ * .setMetricsProvider(CustomOpenTelemetryMetricsProvider.create(openTelemetry)
+ * .build();
+ * }
+ */
+public final class CustomOpenTelemetryMetricsProvider implements MetricsProvider {
+
+ private final OpenTelemetry otel;
+
+ public static CustomOpenTelemetryMetricsProvider create(OpenTelemetry otel) {
+ return new CustomOpenTelemetryMetricsProvider(otel);
+ }
+
+ private CustomOpenTelemetryMetricsProvider(OpenTelemetry otel) {
+ this.otel = otel;
+ }
+
+ public OpenTelemetry getOpenTelemetry() {
+ return otel;
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this).add("openTelemetry", otel).toString();
+ }
+}
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/DefaultMetricsProvider.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/DefaultMetricsProvider.java
new file mode 100644
index 000000000..b8aad8c93
--- /dev/null
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/DefaultMetricsProvider.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2024 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.
+ */
+package com.google.cloud.bigtable.data.v2.stub.metrics;
+
+import com.google.api.core.InternalApi;
+import com.google.auth.Credentials;
+import com.google.common.base.MoreObjects;
+import io.opentelemetry.api.OpenTelemetry;
+import io.opentelemetry.sdk.OpenTelemetrySdk;
+import io.opentelemetry.sdk.metrics.SdkMeterProvider;
+import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder;
+import java.io.IOException;
+import javax.annotation.Nullable;
+
+/**
+ * Set {@link
+ * com.google.cloud.bigtable.data.v2.BigtableDataSettings.Builder#setMetricsProvider(MetricsProvider)},
+ * to {@link this#INSTANCE} to enable collecting and export client side metrics
+ * https://cloud.google.com/bigtable/docs/client-side-metrics. This is the default setting in {@link
+ * com.google.cloud.bigtable.data.v2.BigtableDataSettings}.
+ */
+public final class DefaultMetricsProvider implements MetricsProvider {
+
+ public static DefaultMetricsProvider INSTANCE = new DefaultMetricsProvider();
+
+ private OpenTelemetry openTelemetry;
+ private String projectId;
+
+ private DefaultMetricsProvider() {}
+
+ @InternalApi
+ public OpenTelemetry getOpenTelemetry(String projectId, @Nullable Credentials credentials)
+ throws IOException {
+ this.projectId = projectId;
+ if (openTelemetry == null) {
+ SdkMeterProviderBuilder meterProvider = SdkMeterProvider.builder();
+ BuiltinMetricsView.registerBuiltinMetrics(projectId, credentials, meterProvider);
+ openTelemetry = OpenTelemetrySdk.builder().setMeterProvider(meterProvider.build()).build();
+ }
+ return openTelemetry;
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("projectId", projectId)
+ .add("openTelemetry", openTelemetry)
+ .toString();
+ }
+}
diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/ErrorCountPerConnectionMetricTracker.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/ErrorCountPerConnectionMetricTracker.java
index cab3b0bbd..a891df950 100644
--- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/ErrorCountPerConnectionMetricTracker.java
+++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/ErrorCountPerConnectionMetricTracker.java
@@ -15,12 +15,15 @@
*/
package com.google.cloud.bigtable.data.v2.stub.metrics;
+import static com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants.METER_NAME;
+import static com.google.cloud.bigtable.data.v2.stub.metrics.BuiltinMetricsConstants.PER_CONNECTION_ERROR_COUNT_NAME;
+
import com.google.api.core.InternalApi;
-import com.google.cloud.bigtable.stats.StatsRecorderWrapperForConnection;
-import com.google.cloud.bigtable.stats.StatsWrapper;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ImmutableMap;
import io.grpc.ClientInterceptor;
+import io.opentelemetry.api.OpenTelemetry;
+import io.opentelemetry.api.common.Attributes;
+import io.opentelemetry.api.metrics.LongHistogram;
+import io.opentelemetry.api.metrics.Meter;
import java.util.Collections;
import java.util.Set;
import java.util.WeakHashMap;
@@ -30,24 +33,30 @@
/* Background task that goes through all connections and updates the errors_per_connection metric. */
@InternalApi("For internal use only")
public class ErrorCountPerConnectionMetricTracker implements Runnable {
+
private static final Integer PER_CONNECTION_ERROR_COUNT_PERIOD_SECONDS = 60;
+
+ private final LongHistogram perConnectionErrorCountHistogram;
+ private final Attributes attributes;
+
private final Set> clustersFuture =
testEnvRule
@@ -64,27 +103,73 @@ public void testSuccess() throws Exception {
List