From aea271185eb06c046cd5b7431fd431c0c97671e6 Mon Sep 17 00:00:00 2001 From: G8XSU <3442979+G8XSU@users.noreply.github.com> Date: Fri, 13 Dec 2024 12:59:21 -0800 Subject: [PATCH] Upgrade protobuf to v3.25.5. Earlier versions are impacted by `CVE-2024-7254`. Even though we don't use groups or nested fields and mostly are not impacted directly. We upgrade nonetheless to ensure safe use in case on unknown fields. --- java/app/build.gradle | 2 +- .../proto/org/vss/DeleteObjectRequest.java | 168 +++++-- .../org/vss/DeleteObjectRequestOrBuilder.java | 16 + .../proto/org/vss/DeleteObjectResponse.java | 7 +- .../vss/DeleteObjectResponseOrBuilder.java | 1 + .../proto/org/vss/EncryptionMetadata.java | 60 ++- .../org/vss/EncryptionMetadataOrBuilder.java | 1 + .../generated/proto/org/vss/ErrorCode.java | 1 + .../proto/org/vss/ErrorResponse.java | 55 ++- .../proto/org/vss/ErrorResponseOrBuilder.java | 1 + .../proto/org/vss/GetObjectRequest.java | 72 ++- .../org/vss/GetObjectRequestOrBuilder.java | 7 + .../proto/org/vss/GetObjectResponse.java | 91 ++-- .../org/vss/GetObjectResponseOrBuilder.java | 1 + .../generated/proto/org/vss/KeyValue.java | 59 ++- .../proto/org/vss/KeyValueOrBuilder.java | 1 + .../proto/org/vss/ListKeyVersionsRequest.java | 127 +++-- .../vss/ListKeyVersionsRequestOrBuilder.java | 13 + .../org/vss/ListKeyVersionsResponse.java | 88 +++- .../vss/ListKeyVersionsResponseOrBuilder.java | 14 + .../proto/org/vss/PlaintextBlob.java | 42 +- .../proto/org/vss/PlaintextBlobOrBuilder.java | 1 + .../proto/org/vss/PutObjectRequest.java | 441 ++++++++++++++++-- .../org/vss/PutObjectRequestOrBuilder.java | 77 +++ .../proto/org/vss/PutObjectResponse.java | 7 +- .../org/vss/PutObjectResponseOrBuilder.java | 1 + .../generated/proto/org/vss/Storable.java | 104 +++-- .../proto/org/vss/StorableOrBuilder.java | 1 + .../src/main/generated/proto/org/vss/Vss.java | 7 +- 29 files changed, 1107 insertions(+), 359 deletions(-) diff --git a/java/app/build.gradle b/java/app/build.gradle index 8f66fbe..9f9c86d 100644 --- a/java/app/build.gradle +++ b/java/app/build.gradle @@ -1,6 +1,6 @@ buildscript { ext.protobufPlugInVersion = '0.9.4' - ext.protobufVersion = '3.21.7' + ext.protobufVersion = '3.25.5' ext.jerseyVersion = '3.1.0' ext.junitVersion = '5.9.0' ext.mockitoVersion = '5.2.0' diff --git a/java/app/src/main/generated/proto/org/vss/DeleteObjectRequest.java b/java/app/src/main/generated/proto/org/vss/DeleteObjectRequest.java index 48a68dc..f4e35b1 100644 --- a/java/app/src/main/generated/proto/org/vss/DeleteObjectRequest.java +++ b/java/app/src/main/generated/proto/org/vss/DeleteObjectRequest.java @@ -1,6 +1,7 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: vss.proto +// Protobuf Java Version: 3.25.5 package org.vss; /** @@ -32,12 +33,6 @@ protected java.lang.Object newInstance( return new DeleteObjectRequest(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return org.vss.Vss.internal_static_vss_DeleteObjectRequest_descriptor; @@ -51,8 +46,10 @@ protected java.lang.Object newInstance( org.vss.DeleteObjectRequest.class, org.vss.DeleteObjectRequest.Builder.class); } + private int bitField0_; public static final int STORE_ID_FIELD_NUMBER = 1; - private volatile java.lang.Object storeId_; + @SuppressWarnings("serial") + private volatile java.lang.Object storeId_ = ""; /** *
@@ -117,14 +114,19 @@ public java.lang.String getStoreId() {
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -135,20 +137,25 @@ public java.lang.String getStoreId() {
*/
@java.lang.Override
public boolean hasKeyValue() {
- return keyValue_ != null;
+ return ((bitField0_ & 0x00000001) != 0);
}
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -165,14 +172,19 @@ public org.vss.KeyValue getKeyValue() {
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -181,7 +193,7 @@ public org.vss.KeyValue getKeyValue() {
*/
@java.lang.Override
public org.vss.KeyValueOrBuilder getKeyValueOrBuilder() {
- return getKeyValue();
+ return keyValue_ == null ? org.vss.KeyValue.getDefaultInstance() : keyValue_;
}
private byte memoizedIsInitialized = -1;
@@ -202,7 +214,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(storeId_)) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 1, storeId_);
}
- if (keyValue_ != null) {
+ if (((bitField0_ & 0x00000001) != 0)) {
output.writeMessage(2, getKeyValue());
}
getUnknownFields().writeTo(output);
@@ -217,7 +229,7 @@ public int getSerializedSize() {
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(storeId_)) {
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, storeId_);
}
- if (keyValue_ != null) {
+ if (((bitField0_ & 0x00000001) != 0)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, getKeyValue());
}
@@ -398,24 +410,30 @@ public static final class Builder extends
// Construct using org.vss.DeleteObjectRequest.newBuilder()
private Builder() {
-
+ maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ getKeyValueFieldBuilder();
+ }
}
@java.lang.Override
public Builder clear() {
super.clear();
+ bitField0_ = 0;
storeId_ = "";
-
- if (keyValueBuilder_ == null) {
- keyValue_ = null;
- } else {
- keyValue_ = null;
+ keyValue_ = null;
+ if (keyValueBuilder_ != null) {
+ keyValueBuilder_.dispose();
keyValueBuilder_ = null;
}
return this;
@@ -444,16 +462,28 @@ public org.vss.DeleteObjectRequest build() {
@java.lang.Override
public org.vss.DeleteObjectRequest buildPartial() {
org.vss.DeleteObjectRequest result = new org.vss.DeleteObjectRequest(this);
- result.storeId_ = storeId_;
- if (keyValueBuilder_ == null) {
- result.keyValue_ = keyValue_;
- } else {
- result.keyValue_ = keyValueBuilder_.build();
+ if (bitField0_ != 0) {
+ buildPartial0(result);
}
onBuilt();
return result;
}
+ private void buildPartial0(org.vss.DeleteObjectRequest result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.storeId_ = storeId_;
+ }
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.keyValue_ = keyValueBuilder_ == null
+ ? keyValue_
+ : keyValueBuilder_.build();
+ to_bitField0_ |= 0x00000001;
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
@java.lang.Override
public Builder clone() {
return super.clone();
@@ -506,6 +536,7 @@ public Builder mergeFrom(org.vss.DeleteObjectRequest other) {
if (other == org.vss.DeleteObjectRequest.getDefaultInstance()) return this;
if (!other.getStoreId().isEmpty()) {
storeId_ = other.storeId_;
+ bitField0_ |= 0x00000001;
onChanged();
}
if (other.hasKeyValue()) {
@@ -539,14 +570,14 @@ public Builder mergeFrom(
break;
case 10: {
storeId_ = input.readStringRequireUtf8();
-
+ bitField0_ |= 0x00000001;
break;
} // case 10
case 18: {
input.readMessage(
getKeyValueFieldBuilder().getBuilder(),
extensionRegistry);
-
+ bitField0_ |= 0x00000002;
break;
} // case 18
default: {
@@ -565,6 +596,8 @@ public Builder mergeFrom(
return this;
}
+ private int bitField0_;
+
private java.lang.Object storeId_ = "";
/**
@@ -642,8 +675,8 @@ public Builder setStoreId(
if (value == null) {
throw new NullPointerException();
}
-
storeId_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -663,8 +696,8 @@ public Builder setStoreId(
* @return This builder for chaining.
*/
public Builder clearStoreId() {
-
storeId_ = getDefaultInstance().getStoreId();
+ bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
return this;
}
@@ -690,8 +723,8 @@ public Builder setStoreIdBytes(
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
-
storeId_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -703,14 +736,19 @@ public Builder setStoreIdBytes(
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -720,20 +758,25 @@ public Builder setStoreIdBytes(
* @return Whether the keyValue field is set.
*/
public boolean hasKeyValue() {
- return keyValueBuilder_ != null || keyValue_ != null;
+ return ((bitField0_ & 0x00000002) != 0);
}
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -753,14 +796,19 @@ public org.vss.KeyValue getKeyValue() {
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -773,25 +821,30 @@ public Builder setKeyValue(org.vss.KeyValue value) {
throw new NullPointerException();
}
keyValue_ = value;
- onChanged();
} else {
keyValueBuilder_.setMessage(value);
}
-
+ bitField0_ |= 0x00000002;
+ onChanged();
return this;
}
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -802,25 +855,30 @@ public Builder setKeyValue(
org.vss.KeyValue.Builder builderForValue) {
if (keyValueBuilder_ == null) {
keyValue_ = builderForValue.build();
- onChanged();
} else {
keyValueBuilder_.setMessage(builderForValue.build());
}
-
+ bitField0_ |= 0x00000002;
+ onChanged();
return this;
}
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -829,31 +887,39 @@ public Builder setKeyValue(
*/
public Builder mergeKeyValue(org.vss.KeyValue value) {
if (keyValueBuilder_ == null) {
- if (keyValue_ != null) {
- keyValue_ =
- org.vss.KeyValue.newBuilder(keyValue_).mergeFrom(value).buildPartial();
+ if (((bitField0_ & 0x00000002) != 0) &&
+ keyValue_ != null &&
+ keyValue_ != org.vss.KeyValue.getDefaultInstance()) {
+ getKeyValueBuilder().mergeFrom(value);
} else {
keyValue_ = value;
}
- onChanged();
} else {
keyValueBuilder_.mergeFrom(value);
}
-
+ if (keyValue_ != null) {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
return this;
}
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -861,28 +927,32 @@ public Builder mergeKeyValue(org.vss.KeyValue value) {
* .vss.KeyValue key_value = 2;
*/
public Builder clearKeyValue() {
- if (keyValueBuilder_ == null) {
- keyValue_ = null;
- onChanged();
- } else {
- keyValue_ = null;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ keyValue_ = null;
+ if (keyValueBuilder_ != null) {
+ keyValueBuilder_.dispose();
keyValueBuilder_ = null;
}
-
+ onChanged();
return this;
}
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -890,7 +960,7 @@ public Builder clearKeyValue() {
* .vss.KeyValue key_value = 2;
*/
public org.vss.KeyValue.Builder getKeyValueBuilder() {
-
+ bitField0_ |= 0x00000002;
onChanged();
return getKeyValueFieldBuilder().getBuilder();
}
@@ -898,14 +968,19 @@ public org.vss.KeyValue.Builder getKeyValueBuilder() {
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -924,14 +999,19 @@ public org.vss.KeyValueOrBuilder getKeyValueOrBuilder() {
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
diff --git a/java/app/src/main/generated/proto/org/vss/DeleteObjectRequestOrBuilder.java b/java/app/src/main/generated/proto/org/vss/DeleteObjectRequestOrBuilder.java
index fb5fef4..6c150e6 100644
--- a/java/app/src/main/generated/proto/org/vss/DeleteObjectRequestOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/DeleteObjectRequestOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface DeleteObjectRequestOrBuilder extends
@@ -43,14 +44,19 @@ public interface DeleteObjectRequestOrBuilder extends
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -64,14 +70,19 @@ public interface DeleteObjectRequestOrBuilder extends
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
@@ -85,14 +96,19 @@ public interface DeleteObjectRequestOrBuilder extends
/**
*
* Item to be deleted as a result of this `DeleteObjectRequest`.
+ *
* An item consists of a `key` and its corresponding `version`.
+ *
* Key-level Versioning (Conditional Delete):
* The item is only deleted if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* This operation is idempotent, that is, multiple delete calls for the same item will not fail.
+ *
* If the requested item does not exist, this operation will not fail.
* If you wish to perform stricter checks while deleting an item, consider using `PutObject` API.
*
diff --git a/java/app/src/main/generated/proto/org/vss/DeleteObjectResponse.java b/java/app/src/main/generated/proto/org/vss/DeleteObjectResponse.java
index dcf3603..20d0ab8 100644
--- a/java/app/src/main/generated/proto/org/vss/DeleteObjectResponse.java
+++ b/java/app/src/main/generated/proto/org/vss/DeleteObjectResponse.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
@@ -31,12 +32,6 @@ protected java.lang.Object newInstance(
return new DeleteObjectResponse();
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
-
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.vss.Vss.internal_static_vss_DeleteObjectResponse_descriptor;
diff --git a/java/app/src/main/generated/proto/org/vss/DeleteObjectResponseOrBuilder.java b/java/app/src/main/generated/proto/org/vss/DeleteObjectResponseOrBuilder.java
index 42442e9..a2c3edb 100644
--- a/java/app/src/main/generated/proto/org/vss/DeleteObjectResponseOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/DeleteObjectResponseOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface DeleteObjectResponseOrBuilder extends
diff --git a/java/app/src/main/generated/proto/org/vss/EncryptionMetadata.java b/java/app/src/main/generated/proto/org/vss/EncryptionMetadata.java
index 9d2b698..4d689f0 100644
--- a/java/app/src/main/generated/proto/org/vss/EncryptionMetadata.java
+++ b/java/app/src/main/generated/proto/org/vss/EncryptionMetadata.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
@@ -34,12 +35,6 @@ protected java.lang.Object newInstance(
return new EncryptionMetadata();
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
-
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.vss.Vss.internal_static_vss_EncryptionMetadata_descriptor;
@@ -54,7 +49,8 @@ protected java.lang.Object newInstance(
}
public static final int CIPHER_FORMAT_FIELD_NUMBER = 1;
- private volatile java.lang.Object cipherFormat_;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object cipherFormat_ = "";
/**
*
@@ -104,7 +100,7 @@ public java.lang.String getCipherFormat() {
}
public static final int NONCE_FIELD_NUMBER = 2;
- private com.google.protobuf.ByteString nonce_;
+ private com.google.protobuf.ByteString nonce_ = com.google.protobuf.ByteString.EMPTY;
/**
*
@@ -122,7 +118,7 @@ public com.google.protobuf.ByteString getNonce() {
}
public static final int TAG_FIELD_NUMBER = 3;
- private com.google.protobuf.ByteString tag_;
+ private com.google.protobuf.ByteString tag_ = com.google.protobuf.ByteString.EMPTY;
/**
*
@@ -371,12 +367,10 @@ private Builder(
@java.lang.Override
public Builder clear() {
super.clear();
+ bitField0_ = 0;
cipherFormat_ = "";
-
nonce_ = com.google.protobuf.ByteString.EMPTY;
-
tag_ = com.google.protobuf.ByteString.EMPTY;
-
return this;
}
@@ -403,13 +397,26 @@ public org.vss.EncryptionMetadata build() {
@java.lang.Override
public org.vss.EncryptionMetadata buildPartial() {
org.vss.EncryptionMetadata result = new org.vss.EncryptionMetadata(this);
- result.cipherFormat_ = cipherFormat_;
- result.nonce_ = nonce_;
- result.tag_ = tag_;
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
onBuilt();
return result;
}
+ private void buildPartial0(org.vss.EncryptionMetadata result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.cipherFormat_ = cipherFormat_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.nonce_ = nonce_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.tag_ = tag_;
+ }
+ }
+
@java.lang.Override
public Builder clone() {
return super.clone();
@@ -462,6 +469,7 @@ public Builder mergeFrom(org.vss.EncryptionMetadata other) {
if (other == org.vss.EncryptionMetadata.getDefaultInstance()) return this;
if (!other.getCipherFormat().isEmpty()) {
cipherFormat_ = other.cipherFormat_;
+ bitField0_ |= 0x00000001;
onChanged();
}
if (other.getNonce() != com.google.protobuf.ByteString.EMPTY) {
@@ -498,17 +506,17 @@ public Builder mergeFrom(
break;
case 10: {
cipherFormat_ = input.readStringRequireUtf8();
-
+ bitField0_ |= 0x00000001;
break;
} // case 10
case 18: {
nonce_ = input.readBytes();
-
+ bitField0_ |= 0x00000002;
break;
} // case 18
case 26: {
tag_ = input.readBytes();
-
+ bitField0_ |= 0x00000004;
break;
} // case 26
default: {
@@ -527,6 +535,8 @@ public Builder mergeFrom(
return this;
}
+ private int bitField0_;
+
private java.lang.Object cipherFormat_ = "";
/**
@@ -589,8 +599,8 @@ public Builder setCipherFormat(
if (value == null) {
throw new NullPointerException();
}
-
cipherFormat_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -605,8 +615,8 @@ public Builder setCipherFormat(
* @return This builder for chaining.
*/
public Builder clearCipherFormat() {
-
cipherFormat_ = getDefaultInstance().getCipherFormat();
+ bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
return this;
}
@@ -627,8 +637,8 @@ public Builder setCipherFormatBytes(
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
-
cipherFormat_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -665,8 +675,8 @@ public Builder setNonce(com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
-
nonce_ = value;
+ bitField0_ |= 0x00000002;
onChanged();
return this;
}
@@ -682,7 +692,7 @@ public Builder setNonce(com.google.protobuf.ByteString value) {
* @return This builder for chaining.
*/
public Builder clearNonce() {
-
+ bitField0_ = (bitField0_ & ~0x00000002);
nonce_ = getDefaultInstance().getNonce();
onChanged();
return this;
@@ -720,8 +730,8 @@ public Builder setTag(com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
-
tag_ = value;
+ bitField0_ |= 0x00000004;
onChanged();
return this;
}
@@ -737,7 +747,7 @@ public Builder setTag(com.google.protobuf.ByteString value) {
* @return This builder for chaining.
*/
public Builder clearTag() {
-
+ bitField0_ = (bitField0_ & ~0x00000004);
tag_ = getDefaultInstance().getTag();
onChanged();
return this;
diff --git a/java/app/src/main/generated/proto/org/vss/EncryptionMetadataOrBuilder.java b/java/app/src/main/generated/proto/org/vss/EncryptionMetadataOrBuilder.java
index 2d51ad5..6d6fcd9 100644
--- a/java/app/src/main/generated/proto/org/vss/EncryptionMetadataOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/EncryptionMetadataOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface EncryptionMetadataOrBuilder extends
diff --git a/java/app/src/main/generated/proto/org/vss/ErrorCode.java b/java/app/src/main/generated/proto/org/vss/ErrorCode.java
index 2775e69..aa99ede 100644
--- a/java/app/src/main/generated/proto/org/vss/ErrorCode.java
+++ b/java/app/src/main/generated/proto/org/vss/ErrorCode.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
diff --git a/java/app/src/main/generated/proto/org/vss/ErrorResponse.java b/java/app/src/main/generated/proto/org/vss/ErrorResponse.java
index 8fb7f69..1088646 100644
--- a/java/app/src/main/generated/proto/org/vss/ErrorResponse.java
+++ b/java/app/src/main/generated/proto/org/vss/ErrorResponse.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
@@ -34,12 +35,6 @@ protected java.lang.Object newInstance(
return new ErrorResponse();
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
-
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.vss.Vss.internal_static_vss_ErrorResponse_descriptor;
@@ -54,7 +49,7 @@ protected java.lang.Object newInstance(
}
public static final int ERROR_CODE_FIELD_NUMBER = 1;
- private int errorCode_;
+ private int errorCode_ = 0;
/**
*
@@ -85,13 +80,13 @@ public int getErrorCodeValue() {
*/
@java.lang.Override
public org.vss.ErrorCode getErrorCode() {
- @SuppressWarnings("deprecation")
- org.vss.ErrorCode result = org.vss.ErrorCode.valueOf(errorCode_);
+ org.vss.ErrorCode result = org.vss.ErrorCode.forNumber(errorCode_);
return result == null ? org.vss.ErrorCode.UNRECOGNIZED : result;
}
public static final int MESSAGE_FIELD_NUMBER = 2;
- private volatile java.lang.Object message_;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object message_ = "";
/**
*
@@ -365,10 +360,9 @@ private Builder(
@java.lang.Override
public Builder clear() {
super.clear();
+ bitField0_ = 0;
errorCode_ = 0;
-
message_ = "";
-
return this;
}
@@ -395,12 +389,23 @@ public org.vss.ErrorResponse build() {
@java.lang.Override
public org.vss.ErrorResponse buildPartial() {
org.vss.ErrorResponse result = new org.vss.ErrorResponse(this);
- result.errorCode_ = errorCode_;
- result.message_ = message_;
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
onBuilt();
return result;
}
+ private void buildPartial0(org.vss.ErrorResponse result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.errorCode_ = errorCode_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.message_ = message_;
+ }
+ }
+
@java.lang.Override
public Builder clone() {
return super.clone();
@@ -456,6 +461,7 @@ public Builder mergeFrom(org.vss.ErrorResponse other) {
}
if (!other.getMessage().isEmpty()) {
message_ = other.message_;
+ bitField0_ |= 0x00000002;
onChanged();
}
this.mergeUnknownFields(other.getUnknownFields());
@@ -486,12 +492,12 @@ public Builder mergeFrom(
break;
case 8: {
errorCode_ = input.readEnum();
-
+ bitField0_ |= 0x00000001;
break;
} // case 8
case 18: {
message_ = input.readStringRequireUtf8();
-
+ bitField0_ |= 0x00000002;
break;
} // case 18
default: {
@@ -510,6 +516,8 @@ public Builder mergeFrom(
return this;
}
+ private int bitField0_;
+
private int errorCode_ = 0;
/**
@@ -541,8 +549,8 @@ public int getErrorCodeValue() {
* @return This builder for chaining.
*/
public Builder setErrorCodeValue(int value) {
-
errorCode_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -560,8 +568,7 @@ public Builder setErrorCodeValue(int value) {
*/
@java.lang.Override
public org.vss.ErrorCode getErrorCode() {
- @SuppressWarnings("deprecation")
- org.vss.ErrorCode result = org.vss.ErrorCode.valueOf(errorCode_);
+ org.vss.ErrorCode result = org.vss.ErrorCode.forNumber(errorCode_);
return result == null ? org.vss.ErrorCode.UNRECOGNIZED : result;
}
@@ -581,7 +588,7 @@ public Builder setErrorCode(org.vss.ErrorCode value) {
if (value == null) {
throw new NullPointerException();
}
-
+ bitField0_ |= 0x00000001;
errorCode_ = value.getNumber();
onChanged();
return this;
@@ -599,7 +606,7 @@ public Builder setErrorCode(org.vss.ErrorCode value) {
* @return This builder for chaining.
*/
public Builder clearErrorCode() {
-
+ bitField0_ = (bitField0_ & ~0x00000001);
errorCode_ = 0;
onChanged();
return this;
@@ -673,8 +680,8 @@ public Builder setMessage(
if (value == null) {
throw new NullPointerException();
}
-
message_ = value;
+ bitField0_ |= 0x00000002;
onChanged();
return this;
}
@@ -691,8 +698,8 @@ public Builder setMessage(
* @return This builder for chaining.
*/
public Builder clearMessage() {
-
message_ = getDefaultInstance().getMessage();
+ bitField0_ = (bitField0_ & ~0x00000002);
onChanged();
return this;
}
@@ -715,8 +722,8 @@ public Builder setMessageBytes(
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
-
message_ = value;
+ bitField0_ |= 0x00000002;
onChanged();
return this;
}
diff --git a/java/app/src/main/generated/proto/org/vss/ErrorResponseOrBuilder.java b/java/app/src/main/generated/proto/org/vss/ErrorResponseOrBuilder.java
index 3dd0a08..a1ea738 100644
--- a/java/app/src/main/generated/proto/org/vss/ErrorResponseOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/ErrorResponseOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface ErrorResponseOrBuilder extends
diff --git a/java/app/src/main/generated/proto/org/vss/GetObjectRequest.java b/java/app/src/main/generated/proto/org/vss/GetObjectRequest.java
index eb8e69b..89b1e51 100644
--- a/java/app/src/main/generated/proto/org/vss/GetObjectRequest.java
+++ b/java/app/src/main/generated/proto/org/vss/GetObjectRequest.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
@@ -33,12 +34,6 @@ protected java.lang.Object newInstance(
return new GetObjectRequest();
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
-
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.vss.Vss.internal_static_vss_GetObjectRequest_descriptor;
@@ -53,7 +48,8 @@ protected java.lang.Object newInstance(
}
public static final int STORE_ID_FIELD_NUMBER = 1;
- private volatile java.lang.Object storeId_;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object storeId_ = "";
/**
*
@@ -113,16 +109,20 @@ public java.lang.String getStoreId() {
}
public static final int KEY_FIELD_NUMBER = 2;
- private volatile java.lang.Object key_;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object key_ = "";
/**
*
* The key of the value to be fetched.
+ *
* If the specified `key` does not exist, returns `ErrorCode.NO_SUCH_KEY_EXCEPTION` in the
* the `ErrorResponse`.
+ *
* Consistency Guarantee:
* Get(read) operations against a `key` are consistent reads and will reflect all previous writes,
* since Put/Write provides read-after-write and read-after-update consistency guarantees.
+ *
* Read Isolation:
* Get/Read operations against a `key` are ensured to have read-committed isolation.
* Ref: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Read_committed
@@ -149,11 +149,14 @@ public java.lang.String getKey() {
/**
*
* The key of the value to be fetched.
+ *
* If the specified `key` does not exist, returns `ErrorCode.NO_SUCH_KEY_EXCEPTION` in the
* the `ErrorResponse`.
+ *
* Consistency Guarantee:
* Get(read) operations against a `key` are consistent reads and will reflect all previous writes,
* since Put/Write provides read-after-write and read-after-update consistency guarantees.
+ *
* Read Isolation:
* Get/Read operations against a `key` are ensured to have read-committed isolation.
* Ref: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Read_committed
@@ -398,10 +401,9 @@ private Builder(
@java.lang.Override
public Builder clear() {
super.clear();
+ bitField0_ = 0;
storeId_ = "";
-
key_ = "";
-
return this;
}
@@ -428,12 +430,23 @@ public org.vss.GetObjectRequest build() {
@java.lang.Override
public org.vss.GetObjectRequest buildPartial() {
org.vss.GetObjectRequest result = new org.vss.GetObjectRequest(this);
- result.storeId_ = storeId_;
- result.key_ = key_;
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
onBuilt();
return result;
}
+ private void buildPartial0(org.vss.GetObjectRequest result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.storeId_ = storeId_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.key_ = key_;
+ }
+ }
+
@java.lang.Override
public Builder clone() {
return super.clone();
@@ -486,10 +499,12 @@ public Builder mergeFrom(org.vss.GetObjectRequest other) {
if (other == org.vss.GetObjectRequest.getDefaultInstance()) return this;
if (!other.getStoreId().isEmpty()) {
storeId_ = other.storeId_;
+ bitField0_ |= 0x00000001;
onChanged();
}
if (!other.getKey().isEmpty()) {
key_ = other.key_;
+ bitField0_ |= 0x00000002;
onChanged();
}
this.mergeUnknownFields(other.getUnknownFields());
@@ -520,12 +535,12 @@ public Builder mergeFrom(
break;
case 10: {
storeId_ = input.readStringRequireUtf8();
-
+ bitField0_ |= 0x00000001;
break;
} // case 10
case 18: {
key_ = input.readStringRequireUtf8();
-
+ bitField0_ |= 0x00000002;
break;
} // case 18
default: {
@@ -544,6 +559,8 @@ public Builder mergeFrom(
return this;
}
+ private int bitField0_;
+
private java.lang.Object storeId_ = "";
/**
@@ -621,8 +638,8 @@ public Builder setStoreId(
if (value == null) {
throw new NullPointerException();
}
-
storeId_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -642,8 +659,8 @@ public Builder setStoreId(
* @return This builder for chaining.
*/
public Builder clearStoreId() {
-
storeId_ = getDefaultInstance().getStoreId();
+ bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
return this;
}
@@ -669,8 +686,8 @@ public Builder setStoreIdBytes(
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
-
storeId_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -680,11 +697,14 @@ public Builder setStoreIdBytes(
/**
*
* The key of the value to be fetched.
+ *
* If the specified `key` does not exist, returns `ErrorCode.NO_SUCH_KEY_EXCEPTION` in the
* the `ErrorResponse`.
+ *
* Consistency Guarantee:
* Get(read) operations against a `key` are consistent reads and will reflect all previous writes,
* since Put/Write provides read-after-write and read-after-update consistency guarantees.
+ *
* Read Isolation:
* Get/Read operations against a `key` are ensured to have read-committed isolation.
* Ref: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Read_committed
@@ -710,11 +730,14 @@ public java.lang.String getKey() {
/**
*
* The key of the value to be fetched.
+ *
* If the specified `key` does not exist, returns `ErrorCode.NO_SUCH_KEY_EXCEPTION` in the
* the `ErrorResponse`.
+ *
* Consistency Guarantee:
* Get(read) operations against a `key` are consistent reads and will reflect all previous writes,
* since Put/Write provides read-after-write and read-after-update consistency guarantees.
+ *
* Read Isolation:
* Get/Read operations against a `key` are ensured to have read-committed isolation.
* Ref: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Read_committed
@@ -741,11 +764,14 @@ public java.lang.String getKey() {
/**
*
* The key of the value to be fetched.
+ *
* If the specified `key` does not exist, returns `ErrorCode.NO_SUCH_KEY_EXCEPTION` in the
* the `ErrorResponse`.
+ *
* Consistency Guarantee:
* Get(read) operations against a `key` are consistent reads and will reflect all previous writes,
* since Put/Write provides read-after-write and read-after-update consistency guarantees.
+ *
* Read Isolation:
* Get/Read operations against a `key` are ensured to have read-committed isolation.
* Ref: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Read_committed
@@ -761,8 +787,8 @@ public Builder setKey(
if (value == null) {
throw new NullPointerException();
}
-
key_ = value;
+ bitField0_ |= 0x00000002;
onChanged();
return this;
}
@@ -770,11 +796,14 @@ public Builder setKey(
/**
*
* The key of the value to be fetched.
+ *
* If the specified `key` does not exist, returns `ErrorCode.NO_SUCH_KEY_EXCEPTION` in the
* the `ErrorResponse`.
+ *
* Consistency Guarantee:
* Get(read) operations against a `key` are consistent reads and will reflect all previous writes,
* since Put/Write provides read-after-write and read-after-update consistency guarantees.
+ *
* Read Isolation:
* Get/Read operations against a `key` are ensured to have read-committed isolation.
* Ref: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Read_committed
@@ -785,8 +814,8 @@ public Builder setKey(
* @return This builder for chaining.
*/
public Builder clearKey() {
-
key_ = getDefaultInstance().getKey();
+ bitField0_ = (bitField0_ & ~0x00000002);
onChanged();
return this;
}
@@ -794,11 +823,14 @@ public Builder clearKey() {
/**
*
* The key of the value to be fetched.
+ *
* If the specified `key` does not exist, returns `ErrorCode.NO_SUCH_KEY_EXCEPTION` in the
* the `ErrorResponse`.
+ *
* Consistency Guarantee:
* Get(read) operations against a `key` are consistent reads and will reflect all previous writes,
* since Put/Write provides read-after-write and read-after-update consistency guarantees.
+ *
* Read Isolation:
* Get/Read operations against a `key` are ensured to have read-committed isolation.
* Ref: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Read_committed
@@ -815,8 +847,8 @@ public Builder setKeyBytes(
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
-
key_ = value;
+ bitField0_ |= 0x00000002;
onChanged();
return this;
}
diff --git a/java/app/src/main/generated/proto/org/vss/GetObjectRequestOrBuilder.java b/java/app/src/main/generated/proto/org/vss/GetObjectRequestOrBuilder.java
index e57542d..3150f62 100644
--- a/java/app/src/main/generated/proto/org/vss/GetObjectRequestOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/GetObjectRequestOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface GetObjectRequestOrBuilder extends
@@ -43,11 +44,14 @@ public interface GetObjectRequestOrBuilder extends
/**
*
* The key of the value to be fetched.
+ *
* If the specified `key` does not exist, returns `ErrorCode.NO_SUCH_KEY_EXCEPTION` in the
* the `ErrorResponse`.
+ *
* Consistency Guarantee:
* Get(read) operations against a `key` are consistent reads and will reflect all previous writes,
* since Put/Write provides read-after-write and read-after-update consistency guarantees.
+ *
* Read Isolation:
* Get/Read operations against a `key` are ensured to have read-committed isolation.
* Ref: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Read_committed
@@ -62,11 +66,14 @@ public interface GetObjectRequestOrBuilder extends
/**
*
* The key of the value to be fetched.
+ *
* If the specified `key` does not exist, returns `ErrorCode.NO_SUCH_KEY_EXCEPTION` in the
* the `ErrorResponse`.
+ *
* Consistency Guarantee:
* Get(read) operations against a `key` are consistent reads and will reflect all previous writes,
* since Put/Write provides read-after-write and read-after-update consistency guarantees.
+ *
* Read Isolation:
* Get/Read operations against a `key` are ensured to have read-committed isolation.
* Ref: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Read_committed
diff --git a/java/app/src/main/generated/proto/org/vss/GetObjectResponse.java b/java/app/src/main/generated/proto/org/vss/GetObjectResponse.java
index e4bf9dd..686e48a 100644
--- a/java/app/src/main/generated/proto/org/vss/GetObjectResponse.java
+++ b/java/app/src/main/generated/proto/org/vss/GetObjectResponse.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
@@ -31,12 +32,6 @@ protected java.lang.Object newInstance(
return new GetObjectResponse();
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
-
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.vss.Vss.internal_static_vss_GetObjectResponse_descriptor;
@@ -50,6 +45,7 @@ protected java.lang.Object newInstance(
org.vss.GetObjectResponse.class, org.vss.GetObjectResponse.Builder.class);
}
+ private int bitField0_;
public static final int VALUE_FIELD_NUMBER = 2;
private org.vss.KeyValue value_;
@@ -64,7 +60,7 @@ protected java.lang.Object newInstance(
*/
@java.lang.Override
public boolean hasValue() {
- return value_ != null;
+ return ((bitField0_ & 0x00000001) != 0);
}
/**
@@ -90,7 +86,7 @@ public org.vss.KeyValue getValue() {
*/
@java.lang.Override
public org.vss.KeyValueOrBuilder getValueOrBuilder() {
- return getValue();
+ return value_ == null ? org.vss.KeyValue.getDefaultInstance() : value_;
}
private byte memoizedIsInitialized = -1;
@@ -108,7 +104,7 @@ public final boolean isInitialized() {
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
- if (value_ != null) {
+ if (((bitField0_ & 0x00000001) != 0)) {
output.writeMessage(2, getValue());
}
getUnknownFields().writeTo(output);
@@ -120,7 +116,7 @@ public int getSerializedSize() {
if (size != -1) return size;
size = 0;
- if (value_ != null) {
+ if (((bitField0_ & 0x00000001) != 0)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, getValue());
}
@@ -297,22 +293,29 @@ public static final class Builder extends
// Construct using org.vss.GetObjectResponse.newBuilder()
private Builder() {
-
+ maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ getValueFieldBuilder();
+ }
}
@java.lang.Override
public Builder clear() {
super.clear();
- if (valueBuilder_ == null) {
- value_ = null;
- } else {
- value_ = null;
+ bitField0_ = 0;
+ value_ = null;
+ if (valueBuilder_ != null) {
+ valueBuilder_.dispose();
valueBuilder_ = null;
}
return this;
@@ -341,15 +344,25 @@ public org.vss.GetObjectResponse build() {
@java.lang.Override
public org.vss.GetObjectResponse buildPartial() {
org.vss.GetObjectResponse result = new org.vss.GetObjectResponse(this);
- if (valueBuilder_ == null) {
- result.value_ = value_;
- } else {
- result.value_ = valueBuilder_.build();
+ if (bitField0_ != 0) {
+ buildPartial0(result);
}
onBuilt();
return result;
}
+ private void buildPartial0(org.vss.GetObjectResponse result) {
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.value_ = valueBuilder_ == null
+ ? value_
+ : valueBuilder_.build();
+ to_bitField0_ |= 0x00000001;
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
@java.lang.Override
public Builder clone() {
return super.clone();
@@ -433,7 +446,7 @@ public Builder mergeFrom(
input.readMessage(
getValueFieldBuilder().getBuilder(),
extensionRegistry);
-
+ bitField0_ |= 0x00000001;
break;
} // case 18
default: {
@@ -452,6 +465,8 @@ public Builder mergeFrom(
return this;
}
+ private int bitField0_;
+
private org.vss.KeyValue value_;
private com.google.protobuf.SingleFieldBuilderV3<
org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder> valueBuilder_;
@@ -466,7 +481,7 @@ public Builder mergeFrom(
* @return Whether the value field is set.
*/
public boolean hasValue() {
- return valueBuilder_ != null || value_ != null;
+ return ((bitField0_ & 0x00000001) != 0);
}
/**
@@ -499,11 +514,11 @@ public Builder setValue(org.vss.KeyValue value) {
throw new NullPointerException();
}
value_ = value;
- onChanged();
} else {
valueBuilder_.setMessage(value);
}
-
+ bitField0_ |= 0x00000001;
+ onChanged();
return this;
}
@@ -518,11 +533,11 @@ public Builder setValue(
org.vss.KeyValue.Builder builderForValue) {
if (valueBuilder_ == null) {
value_ = builderForValue.build();
- onChanged();
} else {
valueBuilder_.setMessage(builderForValue.build());
}
-
+ bitField0_ |= 0x00000001;
+ onChanged();
return this;
}
@@ -535,17 +550,20 @@ public Builder setValue(
*/
public Builder mergeValue(org.vss.KeyValue value) {
if (valueBuilder_ == null) {
- if (value_ != null) {
- value_ =
- org.vss.KeyValue.newBuilder(value_).mergeFrom(value).buildPartial();
+ if (((bitField0_ & 0x00000001) != 0) &&
+ value_ != null &&
+ value_ != org.vss.KeyValue.getDefaultInstance()) {
+ getValueBuilder().mergeFrom(value);
} else {
value_ = value;
}
- onChanged();
} else {
valueBuilder_.mergeFrom(value);
}
-
+ if (value_ != null) {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ }
return this;
}
@@ -557,14 +575,13 @@ public Builder mergeValue(org.vss.KeyValue value) {
* .vss.KeyValue value = 2;
*/
public Builder clearValue() {
- if (valueBuilder_ == null) {
- value_ = null;
- onChanged();
- } else {
- value_ = null;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ value_ = null;
+ if (valueBuilder_ != null) {
+ valueBuilder_.dispose();
valueBuilder_ = null;
}
-
+ onChanged();
return this;
}
@@ -576,7 +593,7 @@ public Builder clearValue() {
* .vss.KeyValue value = 2;
*/
public org.vss.KeyValue.Builder getValueBuilder() {
-
+ bitField0_ |= 0x00000001;
onChanged();
return getValueFieldBuilder().getBuilder();
}
diff --git a/java/app/src/main/generated/proto/org/vss/GetObjectResponseOrBuilder.java b/java/app/src/main/generated/proto/org/vss/GetObjectResponseOrBuilder.java
index 19be268..4903be2 100644
--- a/java/app/src/main/generated/proto/org/vss/GetObjectResponseOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/GetObjectResponseOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface GetObjectResponseOrBuilder extends
diff --git a/java/app/src/main/generated/proto/org/vss/KeyValue.java b/java/app/src/main/generated/proto/org/vss/KeyValue.java
index 1ef1fa8..76d3fc0 100644
--- a/java/app/src/main/generated/proto/org/vss/KeyValue.java
+++ b/java/app/src/main/generated/proto/org/vss/KeyValue.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
@@ -33,12 +34,6 @@ protected java.lang.Object newInstance(
return new KeyValue();
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
-
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.vss.Vss.internal_static_vss_KeyValue_descriptor;
@@ -53,7 +48,8 @@ protected java.lang.Object newInstance(
}
public static final int KEY_FIELD_NUMBER = 1;
- private volatile java.lang.Object key_;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object key_ = "";
/**
*
@@ -103,7 +99,7 @@ public java.lang.String getKey() {
}
public static final int VERSION_FIELD_NUMBER = 2;
- private long version_;
+ private long version_ = 0L;
/**
*
@@ -125,7 +121,7 @@ public long getVersion() {
}
public static final int VALUE_FIELD_NUMBER = 3;
- private com.google.protobuf.ByteString value_;
+ private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
/**
*
@@ -377,12 +373,10 @@ private Builder(
@java.lang.Override
public Builder clear() {
super.clear();
+ bitField0_ = 0;
key_ = "";
-
version_ = 0L;
-
value_ = com.google.protobuf.ByteString.EMPTY;
-
return this;
}
@@ -409,13 +403,26 @@ public org.vss.KeyValue build() {
@java.lang.Override
public org.vss.KeyValue buildPartial() {
org.vss.KeyValue result = new org.vss.KeyValue(this);
- result.key_ = key_;
- result.version_ = version_;
- result.value_ = value_;
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
onBuilt();
return result;
}
+ private void buildPartial0(org.vss.KeyValue result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.key_ = key_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.version_ = version_;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
+ result.value_ = value_;
+ }
+ }
+
@java.lang.Override
public Builder clone() {
return super.clone();
@@ -468,6 +475,7 @@ public Builder mergeFrom(org.vss.KeyValue other) {
if (other == org.vss.KeyValue.getDefaultInstance()) return this;
if (!other.getKey().isEmpty()) {
key_ = other.key_;
+ bitField0_ |= 0x00000001;
onChanged();
}
if (other.getVersion() != 0L) {
@@ -504,17 +512,17 @@ public Builder mergeFrom(
break;
case 10: {
key_ = input.readStringRequireUtf8();
-
+ bitField0_ |= 0x00000001;
break;
} // case 10
case 16: {
version_ = input.readInt64();
-
+ bitField0_ |= 0x00000002;
break;
} // case 16
case 26: {
value_ = input.readBytes();
-
+ bitField0_ |= 0x00000004;
break;
} // case 26
default: {
@@ -533,6 +541,8 @@ public Builder mergeFrom(
return this;
}
+ private int bitField0_;
+
private java.lang.Object key_ = "";
/**
@@ -595,8 +605,8 @@ public Builder setKey(
if (value == null) {
throw new NullPointerException();
}
-
key_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -611,8 +621,8 @@ public Builder setKey(
* @return This builder for chaining.
*/
public Builder clearKey() {
-
key_ = getDefaultInstance().getKey();
+ bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
return this;
}
@@ -633,8 +643,8 @@ public Builder setKeyBytes(
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
-
key_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -678,6 +688,7 @@ public long getVersion() {
public Builder setVersion(long value) {
version_ = value;
+ bitField0_ |= 0x00000002;
onChanged();
return this;
}
@@ -697,7 +708,7 @@ public Builder setVersion(long value) {
* @return This builder for chaining.
*/
public Builder clearVersion() {
-
+ bitField0_ = (bitField0_ & ~0x00000002);
version_ = 0L;
onChanged();
return this;
@@ -739,8 +750,8 @@ public Builder setValue(com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
-
value_ = value;
+ bitField0_ |= 0x00000004;
onChanged();
return this;
}
@@ -758,7 +769,7 @@ public Builder setValue(com.google.protobuf.ByteString value) {
* @return This builder for chaining.
*/
public Builder clearValue() {
-
+ bitField0_ = (bitField0_ & ~0x00000004);
value_ = getDefaultInstance().getValue();
onChanged();
return this;
diff --git a/java/app/src/main/generated/proto/org/vss/KeyValueOrBuilder.java b/java/app/src/main/generated/proto/org/vss/KeyValueOrBuilder.java
index 1728e8d..3c92503 100644
--- a/java/app/src/main/generated/proto/org/vss/KeyValueOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/KeyValueOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface KeyValueOrBuilder extends
diff --git a/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequest.java b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequest.java
index af516f8..ea35ff9 100644
--- a/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequest.java
+++ b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequest.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
@@ -34,12 +35,6 @@ protected java.lang.Object newInstance(
return new ListKeyVersionsRequest();
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
-
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.vss.Vss.internal_static_vss_ListKeyVersionsRequest_descriptor;
@@ -55,7 +50,8 @@ protected java.lang.Object newInstance(
private int bitField0_;
public static final int STORE_ID_FIELD_NUMBER = 1;
- private volatile java.lang.Object storeId_;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object storeId_ = "";
/**
*
@@ -115,14 +111,17 @@ public java.lang.String getStoreId() {
}
public static final int KEY_PREFIX_FIELD_NUMBER = 2;
- private volatile java.lang.Object keyPrefix_;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object keyPrefix_ = "";
/**
*
* A `key_prefix` is a string of characters at the beginning of the key. Prefixes can be used as
* a way to organize key-values in a similar way to directories.
+ *
* If `key_prefix` is specified, the response results will be limited to those keys that begin with
* the specified prefix.
+ *
* If no `key_prefix` is specified or it is empty (""), all the keys are eligible to be returned in
* the response.
*
@@ -140,8 +139,10 @@ public boolean hasKeyPrefix() {
*
* A `key_prefix` is a string of characters at the beginning of the key. Prefixes can be used as
* a way to organize key-values in a similar way to directories.
+ *
* If `key_prefix` is specified, the response results will be limited to those keys that begin with
* the specified prefix.
+ *
* If no `key_prefix` is specified or it is empty (""), all the keys are eligible to be returned in
* the response.
*
@@ -168,8 +169,10 @@ public java.lang.String getKeyPrefix() {
*
* A `key_prefix` is a string of characters at the beginning of the key. Prefixes can be used as
* a way to organize key-values in a similar way to directories.
+ *
* If `key_prefix` is specified, the response results will be limited to those keys that begin with
* the specified prefix.
+ *
* If no `key_prefix` is specified or it is empty (""), all the keys are eligible to be returned in
* the response.
*
@@ -194,7 +197,7 @@ public java.lang.String getKeyPrefix() {
}
public static final int PAGE_SIZE_FIELD_NUMBER = 3;
- private int pageSize_;
+ private int pageSize_ = 0;
/**
*
@@ -231,12 +234,15 @@ public int getPageSize() {
}
public static final int PAGE_TOKEN_FIELD_NUMBER = 4;
- private volatile java.lang.Object pageToken_;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object pageToken_ = "";
/**
*
* `page_token` is a pagination token.
+ *
* To query for the first page of `ListKeyVersions`, `page_token` must not be specified.
+ *
* For subsequent pages, use the value that was returned as `next_page_token` in the previous
* page's `ListKeyVersionsResponse`.
*
@@ -253,7 +259,9 @@ public boolean hasPageToken() {
/**
*
* `page_token` is a pagination token.
+ *
* To query for the first page of `ListKeyVersions`, `page_token` must not be specified.
+ *
* For subsequent pages, use the value that was returned as `next_page_token` in the previous
* page's `ListKeyVersionsResponse`.
*
@@ -279,7 +287,9 @@ public java.lang.String getPageToken() {
/**
*
* `page_token` is a pagination token.
+ *
* To query for the first page of `ListKeyVersions`, `page_token` must not be specified.
+ *
* For subsequent pages, use the value that was returned as `next_page_token` in the previous
* page's `ListKeyVersionsResponse`.
*
@@ -559,14 +569,11 @@ private Builder(
@java.lang.Override
public Builder clear() {
super.clear();
+ bitField0_ = 0;
storeId_ = "";
-
keyPrefix_ = "";
- bitField0_ = (bitField0_ & ~0x00000001);
pageSize_ = 0;
- bitField0_ = (bitField0_ & ~0x00000002);
pageToken_ = "";
- bitField0_ = (bitField0_ & ~0x00000004);
return this;
}
@@ -593,24 +600,32 @@ public org.vss.ListKeyVersionsRequest build() {
@java.lang.Override
public org.vss.ListKeyVersionsRequest buildPartial() {
org.vss.ListKeyVersionsRequest result = new org.vss.ListKeyVersionsRequest(this);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartial0(org.vss.ListKeyVersionsRequest result) {
int from_bitField0_ = bitField0_;
- int to_bitField0_ = 0;
- result.storeId_ = storeId_;
if (((from_bitField0_ & 0x00000001) != 0)) {
- to_bitField0_ |= 0x00000001;
+ result.storeId_ = storeId_;
}
- result.keyPrefix_ = keyPrefix_;
+ int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.keyPrefix_ = keyPrefix_;
+ to_bitField0_ |= 0x00000001;
+ }
+ if (((from_bitField0_ & 0x00000004) != 0)) {
result.pageSize_ = pageSize_;
to_bitField0_ |= 0x00000002;
}
- if (((from_bitField0_ & 0x00000004) != 0)) {
+ if (((from_bitField0_ & 0x00000008) != 0)) {
+ result.pageToken_ = pageToken_;
to_bitField0_ |= 0x00000004;
}
- result.pageToken_ = pageToken_;
- result.bitField0_ = to_bitField0_;
- onBuilt();
- return result;
+ result.bitField0_ |= to_bitField0_;
}
@java.lang.Override
@@ -665,19 +680,20 @@ public Builder mergeFrom(org.vss.ListKeyVersionsRequest other) {
if (other == org.vss.ListKeyVersionsRequest.getDefaultInstance()) return this;
if (!other.getStoreId().isEmpty()) {
storeId_ = other.storeId_;
+ bitField0_ |= 0x00000001;
onChanged();
}
if (other.hasKeyPrefix()) {
- bitField0_ |= 0x00000001;
keyPrefix_ = other.keyPrefix_;
+ bitField0_ |= 0x00000002;
onChanged();
}
if (other.hasPageSize()) {
setPageSize(other.getPageSize());
}
if (other.hasPageToken()) {
- bitField0_ |= 0x00000004;
pageToken_ = other.pageToken_;
+ bitField0_ |= 0x00000008;
onChanged();
}
this.mergeUnknownFields(other.getUnknownFields());
@@ -708,22 +724,22 @@ public Builder mergeFrom(
break;
case 10: {
storeId_ = input.readStringRequireUtf8();
-
+ bitField0_ |= 0x00000001;
break;
} // case 10
case 18: {
keyPrefix_ = input.readStringRequireUtf8();
- bitField0_ |= 0x00000001;
+ bitField0_ |= 0x00000002;
break;
} // case 18
case 24: {
pageSize_ = input.readInt32();
- bitField0_ |= 0x00000002;
+ bitField0_ |= 0x00000004;
break;
} // case 24
case 34: {
pageToken_ = input.readStringRequireUtf8();
- bitField0_ |= 0x00000004;
+ bitField0_ |= 0x00000008;
break;
} // case 34
default: {
@@ -821,8 +837,8 @@ public Builder setStoreId(
if (value == null) {
throw new NullPointerException();
}
-
storeId_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -842,8 +858,8 @@ public Builder setStoreId(
* @return This builder for chaining.
*/
public Builder clearStoreId() {
-
storeId_ = getDefaultInstance().getStoreId();
+ bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
return this;
}
@@ -869,8 +885,8 @@ public Builder setStoreIdBytes(
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
-
storeId_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -881,8 +897,10 @@ public Builder setStoreIdBytes(
*
* A `key_prefix` is a string of characters at the beginning of the key. Prefixes can be used as
* a way to organize key-values in a similar way to directories.
+ *
* If `key_prefix` is specified, the response results will be limited to those keys that begin with
* the specified prefix.
+ *
* If no `key_prefix` is specified or it is empty (""), all the keys are eligible to be returned in
* the response.
*
@@ -892,15 +910,17 @@ public Builder setStoreIdBytes(
* @return Whether the keyPrefix field is set.
*/
public boolean hasKeyPrefix() {
- return ((bitField0_ & 0x00000001) != 0);
+ return ((bitField0_ & 0x00000002) != 0);
}
/**
*
* A `key_prefix` is a string of characters at the beginning of the key. Prefixes can be used as
* a way to organize key-values in a similar way to directories.
+ *
* If `key_prefix` is specified, the response results will be limited to those keys that begin with
* the specified prefix.
+ *
* If no `key_prefix` is specified or it is empty (""), all the keys are eligible to be returned in
* the response.
*
@@ -926,8 +946,10 @@ public java.lang.String getKeyPrefix() {
*
* A `key_prefix` is a string of characters at the beginning of the key. Prefixes can be used as
* a way to organize key-values in a similar way to directories.
+ *
* If `key_prefix` is specified, the response results will be limited to those keys that begin with
* the specified prefix.
+ *
* If no `key_prefix` is specified or it is empty (""), all the keys are eligible to be returned in
* the response.
*
@@ -954,8 +976,10 @@ public java.lang.String getKeyPrefix() {
*
* A `key_prefix` is a string of characters at the beginning of the key. Prefixes can be used as
* a way to organize key-values in a similar way to directories.
+ *
* If `key_prefix` is specified, the response results will be limited to those keys that begin with
* the specified prefix.
+ *
* If no `key_prefix` is specified or it is empty (""), all the keys are eligible to be returned in
* the response.
*
@@ -970,8 +994,8 @@ public Builder setKeyPrefix(
if (value == null) {
throw new NullPointerException();
}
- bitField0_ |= 0x00000001;
keyPrefix_ = value;
+ bitField0_ |= 0x00000002;
onChanged();
return this;
}
@@ -980,8 +1004,10 @@ public Builder setKeyPrefix(
*
* A `key_prefix` is a string of characters at the beginning of the key. Prefixes can be used as
* a way to organize key-values in a similar way to directories.
+ *
* If `key_prefix` is specified, the response results will be limited to those keys that begin with
* the specified prefix.
+ *
* If no `key_prefix` is specified or it is empty (""), all the keys are eligible to be returned in
* the response.
*
@@ -991,8 +1017,8 @@ public Builder setKeyPrefix(
* @return This builder for chaining.
*/
public Builder clearKeyPrefix() {
- bitField0_ = (bitField0_ & ~0x00000001);
keyPrefix_ = getDefaultInstance().getKeyPrefix();
+ bitField0_ = (bitField0_ & ~0x00000002);
onChanged();
return this;
}
@@ -1001,8 +1027,10 @@ public Builder clearKeyPrefix() {
*
* A `key_prefix` is a string of characters at the beginning of the key. Prefixes can be used as
* a way to organize key-values in a similar way to directories.
+ *
* If `key_prefix` is specified, the response results will be limited to those keys that begin with
* the specified prefix.
+ *
* If no `key_prefix` is specified or it is empty (""), all the keys are eligible to be returned in
* the response.
*
@@ -1018,8 +1046,8 @@ public Builder setKeyPrefixBytes(
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
- bitField0_ |= 0x00000001;
keyPrefix_ = value;
+ bitField0_ |= 0x00000002;
onChanged();
return this;
}
@@ -1040,7 +1068,7 @@ public Builder setKeyPrefixBytes(
*/
@java.lang.Override
public boolean hasPageSize() {
- return ((bitField0_ & 0x00000002) != 0);
+ return ((bitField0_ & 0x00000004) != 0);
}
/**
@@ -1074,8 +1102,9 @@ public int getPageSize() {
* @return This builder for chaining.
*/
public Builder setPageSize(int value) {
- bitField0_ |= 0x00000002;
+
pageSize_ = value;
+ bitField0_ |= 0x00000004;
onChanged();
return this;
}
@@ -1093,7 +1122,7 @@ public Builder setPageSize(int value) {
* @return This builder for chaining.
*/
public Builder clearPageSize() {
- bitField0_ = (bitField0_ & ~0x00000002);
+ bitField0_ = (bitField0_ & ~0x00000004);
pageSize_ = 0;
onChanged();
return this;
@@ -1104,7 +1133,9 @@ public Builder clearPageSize() {
/**
*
* `page_token` is a pagination token.
+ *
* To query for the first page of `ListKeyVersions`, `page_token` must not be specified.
+ *
* For subsequent pages, use the value that was returned as `next_page_token` in the previous
* page's `ListKeyVersionsResponse`.
*
@@ -1114,13 +1145,15 @@ public Builder clearPageSize() {
* @return Whether the pageToken field is set.
*/
public boolean hasPageToken() {
- return ((bitField0_ & 0x00000004) != 0);
+ return ((bitField0_ & 0x00000008) != 0);
}
/**
*
* `page_token` is a pagination token.
+ *
* To query for the first page of `ListKeyVersions`, `page_token` must not be specified.
+ *
* For subsequent pages, use the value that was returned as `next_page_token` in the previous
* page's `ListKeyVersionsResponse`.
*
@@ -1145,7 +1178,9 @@ public java.lang.String getPageToken() {
/**
*
* `page_token` is a pagination token.
+ *
* To query for the first page of `ListKeyVersions`, `page_token` must not be specified.
+ *
* For subsequent pages, use the value that was returned as `next_page_token` in the previous
* page's `ListKeyVersionsResponse`.
*
@@ -1171,7 +1206,9 @@ public java.lang.String getPageToken() {
/**
*
* `page_token` is a pagination token.
+ *
* To query for the first page of `ListKeyVersions`, `page_token` must not be specified.
+ *
* For subsequent pages, use the value that was returned as `next_page_token` in the previous
* page's `ListKeyVersionsResponse`.
*
@@ -1186,8 +1223,8 @@ public Builder setPageToken(
if (value == null) {
throw new NullPointerException();
}
- bitField0_ |= 0x00000004;
pageToken_ = value;
+ bitField0_ |= 0x00000008;
onChanged();
return this;
}
@@ -1195,7 +1232,9 @@ public Builder setPageToken(
/**
*
* `page_token` is a pagination token.
+ *
* To query for the first page of `ListKeyVersions`, `page_token` must not be specified.
+ *
* For subsequent pages, use the value that was returned as `next_page_token` in the previous
* page's `ListKeyVersionsResponse`.
*
@@ -1205,8 +1244,8 @@ public Builder setPageToken(
* @return This builder for chaining.
*/
public Builder clearPageToken() {
- bitField0_ = (bitField0_ & ~0x00000004);
pageToken_ = getDefaultInstance().getPageToken();
+ bitField0_ = (bitField0_ & ~0x00000008);
onChanged();
return this;
}
@@ -1214,7 +1253,9 @@ public Builder clearPageToken() {
/**
*
* `page_token` is a pagination token.
+ *
* To query for the first page of `ListKeyVersions`, `page_token` must not be specified.
+ *
* For subsequent pages, use the value that was returned as `next_page_token` in the previous
* page's `ListKeyVersionsResponse`.
*
@@ -1230,8 +1271,8 @@ public Builder setPageTokenBytes(
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
- bitField0_ |= 0x00000004;
pageToken_ = value;
+ bitField0_ |= 0x00000008;
onChanged();
return this;
}
diff --git a/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequestOrBuilder.java b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequestOrBuilder.java
index c453685..003e74b 100644
--- a/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequestOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequestOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface ListKeyVersionsRequestOrBuilder extends
@@ -44,8 +45,10 @@ public interface ListKeyVersionsRequestOrBuilder extends
*
* A `key_prefix` is a string of characters at the beginning of the key. Prefixes can be used as
* a way to organize key-values in a similar way to directories.
+ *
* If `key_prefix` is specified, the response results will be limited to those keys that begin with
* the specified prefix.
+ *
* If no `key_prefix` is specified or it is empty (""), all the keys are eligible to be returned in
* the response.
*
@@ -60,8 +63,10 @@ public interface ListKeyVersionsRequestOrBuilder extends
*
* A `key_prefix` is a string of characters at the beginning of the key. Prefixes can be used as
* a way to organize key-values in a similar way to directories.
+ *
* If `key_prefix` is specified, the response results will be limited to those keys that begin with
* the specified prefix.
+ *
* If no `key_prefix` is specified or it is empty (""), all the keys are eligible to be returned in
* the response.
*
@@ -76,8 +81,10 @@ public interface ListKeyVersionsRequestOrBuilder extends
*
* A `key_prefix` is a string of characters at the beginning of the key. Prefixes can be used as
* a way to organize key-values in a similar way to directories.
+ *
* If `key_prefix` is specified, the response results will be limited to those keys that begin with
* the specified prefix.
+ *
* If no `key_prefix` is specified or it is empty (""), all the keys are eligible to be returned in
* the response.
*
@@ -120,7 +127,9 @@ public interface ListKeyVersionsRequestOrBuilder extends
/**
*
* `page_token` is a pagination token.
+ *
* To query for the first page of `ListKeyVersions`, `page_token` must not be specified.
+ *
* For subsequent pages, use the value that was returned as `next_page_token` in the previous
* page's `ListKeyVersionsResponse`.
*
@@ -134,7 +143,9 @@ public interface ListKeyVersionsRequestOrBuilder extends
/**
*
* `page_token` is a pagination token.
+ *
* To query for the first page of `ListKeyVersions`, `page_token` must not be specified.
+ *
* For subsequent pages, use the value that was returned as `next_page_token` in the previous
* page's `ListKeyVersionsResponse`.
*
@@ -148,7 +159,9 @@ public interface ListKeyVersionsRequestOrBuilder extends
/**
*
* `page_token` is a pagination token.
+ *
* To query for the first page of `ListKeyVersions`, `page_token` must not be specified.
+ *
* For subsequent pages, use the value that was returned as `next_page_token` in the previous
* page's `ListKeyVersionsResponse`.
*
diff --git a/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponse.java b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponse.java
index 7079dd5..50491dd 100644
--- a/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponse.java
+++ b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponse.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
@@ -33,12 +34,6 @@ protected java.lang.Object newInstance(
return new ListKeyVersionsResponse();
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
-
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.vss.Vss.internal_static_vss_ListKeyVersionsResponse_descriptor;
@@ -54,6 +49,7 @@ protected java.lang.Object newInstance(
private int bitField0_;
public static final int KEY_VERSIONS_FIELD_NUMBER = 1;
+ @SuppressWarnings("serial")
private java.util.List keyVersions_;
/**
@@ -124,18 +120,22 @@ public org.vss.KeyValueOrBuilder getKeyVersionsOrBuilder(
}
public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
- private volatile java.lang.Object nextPageToken_;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object nextPageToken_ = "";
/**
*
* `next_page_token` is a pagination token, used to retrieve the next page of results.
* Use this value to query for next-page of paginated `ListKeyVersions` operation, by specifying
* this value as the `page_token` in the next request.
+ *
* If `next_page_token` is empty (""), then the "last page" of results has been processed and
* there is no more data to be retrieved.
+ *
* If `next_page_token` is not empty, it does not necessarily mean that there is more data in the
* result set. The only way to know when you have reached the end of the result set is when
* `next_page_token` is empty.
+ *
* Caution: Clients must not assume a specific number of key_versions to be present in a page for
* paginated response.
*
@@ -154,11 +154,14 @@ public boolean hasNextPageToken() {
* `next_page_token` is a pagination token, used to retrieve the next page of results.
* Use this value to query for next-page of paginated `ListKeyVersions` operation, by specifying
* this value as the `page_token` in the next request.
+ *
* If `next_page_token` is empty (""), then the "last page" of results has been processed and
* there is no more data to be retrieved.
+ *
* If `next_page_token` is not empty, it does not necessarily mean that there is more data in the
* result set. The only way to know when you have reached the end of the result set is when
* `next_page_token` is empty.
+ *
* Caution: Clients must not assume a specific number of key_versions to be present in a page for
* paginated response.
*
@@ -186,11 +189,14 @@ public java.lang.String getNextPageToken() {
* `next_page_token` is a pagination token, used to retrieve the next page of results.
* Use this value to query for next-page of paginated `ListKeyVersions` operation, by specifying
* this value as the `page_token` in the next request.
+ *
* If `next_page_token` is empty (""), then the "last page" of results has been processed and
* there is no more data to be retrieved.
+ *
* If `next_page_token` is not empty, it does not necessarily mean that there is more data in the
* result set. The only way to know when you have reached the end of the result set is when
* `next_page_token` is empty.
+ *
* Caution: Clients must not assume a specific number of key_versions to be present in a page for
* paginated response.
*
@@ -215,13 +221,15 @@ public java.lang.String getNextPageToken() {
}
public static final int GLOBAL_VERSION_FIELD_NUMBER = 3;
- private long globalVersion_;
+ private long globalVersion_ = 0L;
/**
*
* `global_version` is a sequence-number/version of the whole store.
+ *
* `global_version` is only returned in response for the first page of the `ListKeyVersionsResponse`
* and is guaranteed to be read before reading any key-versions.
+ *
* In case of refreshing the complete key-version view on the client-side, correct usage for
* the returned `global_version` is as following:
* 1. Read `global_version` from the first page of paginated response and save it as local variable.
@@ -244,8 +252,10 @@ public boolean hasGlobalVersion() {
/**
*
* `global_version` is a sequence-number/version of the whole store.
+ *
* `global_version` is only returned in response for the first page of the `ListKeyVersionsResponse`
* and is guaranteed to be read before reading any key-versions.
+ *
* In case of refreshing the complete key-version view on the client-side, correct usage for
* the returned `global_version` is as following:
* 1. Read `global_version` from the first page of paginated response and save it as local variable.
@@ -510,6 +520,7 @@ private Builder(
@java.lang.Override
public Builder clear() {
super.clear();
+ bitField0_ = 0;
if (keyVersionsBuilder_ == null) {
keyVersions_ = java.util.Collections.emptyList();
} else {
@@ -518,9 +529,7 @@ public Builder clear() {
}
bitField0_ = (bitField0_ & ~0x00000001);
nextPageToken_ = "";
- bitField0_ = (bitField0_ & ~0x00000002);
globalVersion_ = 0L;
- bitField0_ = (bitField0_ & ~0x00000004);
return this;
}
@@ -547,8 +556,15 @@ public org.vss.ListKeyVersionsResponse build() {
@java.lang.Override
public org.vss.ListKeyVersionsResponse buildPartial() {
org.vss.ListKeyVersionsResponse result = new org.vss.ListKeyVersionsResponse(this);
- int from_bitField0_ = bitField0_;
- int to_bitField0_ = 0;
+ buildPartialRepeatedFields(result);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartialRepeatedFields(org.vss.ListKeyVersionsResponse result) {
if (keyVersionsBuilder_ == null) {
if (((bitField0_ & 0x00000001) != 0)) {
keyVersions_ = java.util.Collections.unmodifiableList(keyVersions_);
@@ -558,17 +574,20 @@ public org.vss.ListKeyVersionsResponse buildPartial() {
} else {
result.keyVersions_ = keyVersionsBuilder_.build();
}
+ }
+
+ private void buildPartial0(org.vss.ListKeyVersionsResponse result) {
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.nextPageToken_ = nextPageToken_;
to_bitField0_ |= 0x00000001;
}
- result.nextPageToken_ = nextPageToken_;
if (((from_bitField0_ & 0x00000004) != 0)) {
result.globalVersion_ = globalVersion_;
to_bitField0_ |= 0x00000002;
}
- result.bitField0_ = to_bitField0_;
- onBuilt();
- return result;
+ result.bitField0_ |= to_bitField0_;
}
@java.lang.Override
@@ -648,8 +667,8 @@ public Builder mergeFrom(org.vss.ListKeyVersionsResponse other) {
}
}
if (other.hasNextPageToken()) {
- bitField0_ |= 0x00000002;
nextPageToken_ = other.nextPageToken_;
+ bitField0_ |= 0x00000002;
onChanged();
}
if (other.hasGlobalVersion()) {
@@ -1079,11 +1098,14 @@ public org.vss.KeyValue.Builder addKeyVersionsBuilder(
* `next_page_token` is a pagination token, used to retrieve the next page of results.
* Use this value to query for next-page of paginated `ListKeyVersions` operation, by specifying
* this value as the `page_token` in the next request.
+ *
* If `next_page_token` is empty (""), then the "last page" of results has been processed and
* there is no more data to be retrieved.
+ *
* If `next_page_token` is not empty, it does not necessarily mean that there is more data in the
* result set. The only way to know when you have reached the end of the result set is when
* `next_page_token` is empty.
+ *
* Caution: Clients must not assume a specific number of key_versions to be present in a page for
* paginated response.
*
@@ -1101,11 +1123,14 @@ public boolean hasNextPageToken() {
* `next_page_token` is a pagination token, used to retrieve the next page of results.
* Use this value to query for next-page of paginated `ListKeyVersions` operation, by specifying
* this value as the `page_token` in the next request.
+ *
* If `next_page_token` is empty (""), then the "last page" of results has been processed and
* there is no more data to be retrieved.
+ *
* If `next_page_token` is not empty, it does not necessarily mean that there is more data in the
* result set. The only way to know when you have reached the end of the result set is when
* `next_page_token` is empty.
+ *
* Caution: Clients must not assume a specific number of key_versions to be present in a page for
* paginated response.
*
@@ -1132,11 +1157,14 @@ public java.lang.String getNextPageToken() {
* `next_page_token` is a pagination token, used to retrieve the next page of results.
* Use this value to query for next-page of paginated `ListKeyVersions` operation, by specifying
* this value as the `page_token` in the next request.
+ *
* If `next_page_token` is empty (""), then the "last page" of results has been processed and
* there is no more data to be retrieved.
+ *
* If `next_page_token` is not empty, it does not necessarily mean that there is more data in the
* result set. The only way to know when you have reached the end of the result set is when
* `next_page_token` is empty.
+ *
* Caution: Clients must not assume a specific number of key_versions to be present in a page for
* paginated response.
*
@@ -1164,11 +1192,14 @@ public java.lang.String getNextPageToken() {
* `next_page_token` is a pagination token, used to retrieve the next page of results.
* Use this value to query for next-page of paginated `ListKeyVersions` operation, by specifying
* this value as the `page_token` in the next request.
+ *
* If `next_page_token` is empty (""), then the "last page" of results has been processed and
* there is no more data to be retrieved.
+ *
* If `next_page_token` is not empty, it does not necessarily mean that there is more data in the
* result set. The only way to know when you have reached the end of the result set is when
* `next_page_token` is empty.
+ *
* Caution: Clients must not assume a specific number of key_versions to be present in a page for
* paginated response.
*
@@ -1183,8 +1214,8 @@ public Builder setNextPageToken(
if (value == null) {
throw new NullPointerException();
}
- bitField0_ |= 0x00000002;
nextPageToken_ = value;
+ bitField0_ |= 0x00000002;
onChanged();
return this;
}
@@ -1194,11 +1225,14 @@ public Builder setNextPageToken(
* `next_page_token` is a pagination token, used to retrieve the next page of results.
* Use this value to query for next-page of paginated `ListKeyVersions` operation, by specifying
* this value as the `page_token` in the next request.
+ *
* If `next_page_token` is empty (""), then the "last page" of results has been processed and
* there is no more data to be retrieved.
+ *
* If `next_page_token` is not empty, it does not necessarily mean that there is more data in the
* result set. The only way to know when you have reached the end of the result set is when
* `next_page_token` is empty.
+ *
* Caution: Clients must not assume a specific number of key_versions to be present in a page for
* paginated response.
*
@@ -1208,8 +1242,8 @@ public Builder setNextPageToken(
* @return This builder for chaining.
*/
public Builder clearNextPageToken() {
- bitField0_ = (bitField0_ & ~0x00000002);
nextPageToken_ = getDefaultInstance().getNextPageToken();
+ bitField0_ = (bitField0_ & ~0x00000002);
onChanged();
return this;
}
@@ -1219,11 +1253,14 @@ public Builder clearNextPageToken() {
* `next_page_token` is a pagination token, used to retrieve the next page of results.
* Use this value to query for next-page of paginated `ListKeyVersions` operation, by specifying
* this value as the `page_token` in the next request.
+ *
* If `next_page_token` is empty (""), then the "last page" of results has been processed and
* there is no more data to be retrieved.
+ *
* If `next_page_token` is not empty, it does not necessarily mean that there is more data in the
* result set. The only way to know when you have reached the end of the result set is when
* `next_page_token` is empty.
+ *
* Caution: Clients must not assume a specific number of key_versions to be present in a page for
* paginated response.
*
@@ -1239,8 +1276,8 @@ public Builder setNextPageTokenBytes(
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
- bitField0_ |= 0x00000002;
nextPageToken_ = value;
+ bitField0_ |= 0x00000002;
onChanged();
return this;
}
@@ -1250,8 +1287,10 @@ public Builder setNextPageTokenBytes(
/**
*
* `global_version` is a sequence-number/version of the whole store.
+ *
* `global_version` is only returned in response for the first page of the `ListKeyVersionsResponse`
* and is guaranteed to be read before reading any key-versions.
+ *
* In case of refreshing the complete key-version view on the client-side, correct usage for
* the returned `global_version` is as following:
* 1. Read `global_version` from the first page of paginated response and save it as local variable.
@@ -1274,8 +1313,10 @@ public boolean hasGlobalVersion() {
/**
*
* `global_version` is a sequence-number/version of the whole store.
+ *
* `global_version` is only returned in response for the first page of the `ListKeyVersionsResponse`
* and is guaranteed to be read before reading any key-versions.
+ *
* In case of refreshing the complete key-version view on the client-side, correct usage for
* the returned `global_version` is as following:
* 1. Read `global_version` from the first page of paginated response and save it as local variable.
@@ -1298,8 +1339,10 @@ public long getGlobalVersion() {
/**
*
* `global_version` is a sequence-number/version of the whole store.
+ *
* `global_version` is only returned in response for the first page of the `ListKeyVersionsResponse`
* and is guaranteed to be read before reading any key-versions.
+ *
* In case of refreshing the complete key-version view on the client-side, correct usage for
* the returned `global_version` is as following:
* 1. Read `global_version` from the first page of paginated response and save it as local variable.
@@ -1316,8 +1359,9 @@ public long getGlobalVersion() {
* @return This builder for chaining.
*/
public Builder setGlobalVersion(long value) {
- bitField0_ |= 0x00000004;
+
globalVersion_ = value;
+ bitField0_ |= 0x00000004;
onChanged();
return this;
}
@@ -1325,8 +1369,10 @@ public Builder setGlobalVersion(long value) {
/**
*
* `global_version` is a sequence-number/version of the whole store.
+ *
* `global_version` is only returned in response for the first page of the `ListKeyVersionsResponse`
* and is guaranteed to be read before reading any key-versions.
+ *
* In case of refreshing the complete key-version view on the client-side, correct usage for
* the returned `global_version` is as following:
* 1. Read `global_version` from the first page of paginated response and save it as local variable.
diff --git a/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponseOrBuilder.java b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponseOrBuilder.java
index 04a3589..802a948 100644
--- a/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponseOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponseOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface ListKeyVersionsResponseOrBuilder extends
@@ -65,11 +66,14 @@ org.vss.KeyValueOrBuilder getKeyVersionsOrBuilder(
* `next_page_token` is a pagination token, used to retrieve the next page of results.
* Use this value to query for next-page of paginated `ListKeyVersions` operation, by specifying
* this value as the `page_token` in the next request.
+ *
* If `next_page_token` is empty (""), then the "last page" of results has been processed and
* there is no more data to be retrieved.
+ *
* If `next_page_token` is not empty, it does not necessarily mean that there is more data in the
* result set. The only way to know when you have reached the end of the result set is when
* `next_page_token` is empty.
+ *
* Caution: Clients must not assume a specific number of key_versions to be present in a page for
* paginated response.
*
@@ -85,11 +89,14 @@ org.vss.KeyValueOrBuilder getKeyVersionsOrBuilder(
* `next_page_token` is a pagination token, used to retrieve the next page of results.
* Use this value to query for next-page of paginated `ListKeyVersions` operation, by specifying
* this value as the `page_token` in the next request.
+ *
* If `next_page_token` is empty (""), then the "last page" of results has been processed and
* there is no more data to be retrieved.
+ *
* If `next_page_token` is not empty, it does not necessarily mean that there is more data in the
* result set. The only way to know when you have reached the end of the result set is when
* `next_page_token` is empty.
+ *
* Caution: Clients must not assume a specific number of key_versions to be present in a page for
* paginated response.
*
@@ -105,11 +112,14 @@ org.vss.KeyValueOrBuilder getKeyVersionsOrBuilder(
* `next_page_token` is a pagination token, used to retrieve the next page of results.
* Use this value to query for next-page of paginated `ListKeyVersions` operation, by specifying
* this value as the `page_token` in the next request.
+ *
* If `next_page_token` is empty (""), then the "last page" of results has been processed and
* there is no more data to be retrieved.
+ *
* If `next_page_token` is not empty, it does not necessarily mean that there is more data in the
* result set. The only way to know when you have reached the end of the result set is when
* `next_page_token` is empty.
+ *
* Caution: Clients must not assume a specific number of key_versions to be present in a page for
* paginated response.
*
@@ -124,8 +134,10 @@ org.vss.KeyValueOrBuilder getKeyVersionsOrBuilder(
/**
*
* `global_version` is a sequence-number/version of the whole store.
+ *
* `global_version` is only returned in response for the first page of the `ListKeyVersionsResponse`
* and is guaranteed to be read before reading any key-versions.
+ *
* In case of refreshing the complete key-version view on the client-side, correct usage for
* the returned `global_version` is as following:
* 1. Read `global_version` from the first page of paginated response and save it as local variable.
@@ -145,8 +157,10 @@ org.vss.KeyValueOrBuilder getKeyVersionsOrBuilder(
/**
*
* `global_version` is a sequence-number/version of the whole store.
+ *
* `global_version` is only returned in response for the first page of the `ListKeyVersionsResponse`
* and is guaranteed to be read before reading any key-versions.
+ *
* In case of refreshing the complete key-version view on the client-side, correct usage for
* the returned `global_version` is as following:
* 1. Read `global_version` from the first page of paginated response and save it as local variable.
diff --git a/java/app/src/main/generated/proto/org/vss/PlaintextBlob.java b/java/app/src/main/generated/proto/org/vss/PlaintextBlob.java
index 3be5959..e247a64 100644
--- a/java/app/src/main/generated/proto/org/vss/PlaintextBlob.java
+++ b/java/app/src/main/generated/proto/org/vss/PlaintextBlob.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
@@ -33,12 +34,6 @@ protected java.lang.Object newInstance(
return new PlaintextBlob();
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
-
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.vss.Vss.internal_static_vss_PlaintextBlob_descriptor;
@@ -53,7 +48,7 @@ protected java.lang.Object newInstance(
}
public static final int VALUE_FIELD_NUMBER = 1;
- private com.google.protobuf.ByteString value_;
+ private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
/**
*
@@ -70,7 +65,7 @@ public com.google.protobuf.ByteString getValue() {
}
public static final int VERSION_FIELD_NUMBER = 2;
- private long version_;
+ private long version_ = 0L;
/**
*
@@ -310,10 +305,9 @@ private Builder(
@java.lang.Override
public Builder clear() {
super.clear();
+ bitField0_ = 0;
value_ = com.google.protobuf.ByteString.EMPTY;
-
version_ = 0L;
-
return this;
}
@@ -340,12 +334,23 @@ public org.vss.PlaintextBlob build() {
@java.lang.Override
public org.vss.PlaintextBlob buildPartial() {
org.vss.PlaintextBlob result = new org.vss.PlaintextBlob(this);
- result.value_ = value_;
- result.version_ = version_;
+ if (bitField0_ != 0) {
+ buildPartial0(result);
+ }
onBuilt();
return result;
}
+ private void buildPartial0(org.vss.PlaintextBlob result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.value_ = value_;
+ }
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.version_ = version_;
+ }
+ }
+
@java.lang.Override
public Builder clone() {
return super.clone();
@@ -430,12 +435,12 @@ public Builder mergeFrom(
break;
case 10: {
value_ = input.readBytes();
-
+ bitField0_ |= 0x00000001;
break;
} // case 10
case 16: {
version_ = input.readInt64();
-
+ bitField0_ |= 0x00000002;
break;
} // case 16
default: {
@@ -454,6 +459,8 @@ public Builder mergeFrom(
return this;
}
+ private int bitField0_;
+
private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
/**
@@ -484,8 +491,8 @@ public Builder setValue(com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
-
value_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -500,7 +507,7 @@ public Builder setValue(com.google.protobuf.ByteString value) {
* @return This builder for chaining.
*/
public Builder clearValue() {
-
+ bitField0_ = (bitField0_ & ~0x00000001);
value_ = getDefaultInstance().getValue();
onChanged();
return this;
@@ -535,6 +542,7 @@ public long getVersion() {
public Builder setVersion(long value) {
version_ = value;
+ bitField0_ |= 0x00000002;
onChanged();
return this;
}
@@ -549,7 +557,7 @@ public Builder setVersion(long value) {
* @return This builder for chaining.
*/
public Builder clearVersion() {
-
+ bitField0_ = (bitField0_ & ~0x00000002);
version_ = 0L;
onChanged();
return this;
diff --git a/java/app/src/main/generated/proto/org/vss/PlaintextBlobOrBuilder.java b/java/app/src/main/generated/proto/org/vss/PlaintextBlobOrBuilder.java
index 79275d4..ed6e647 100644
--- a/java/app/src/main/generated/proto/org/vss/PlaintextBlobOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/PlaintextBlobOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface PlaintextBlobOrBuilder extends
diff --git a/java/app/src/main/generated/proto/org/vss/PutObjectRequest.java b/java/app/src/main/generated/proto/org/vss/PutObjectRequest.java
index 9f6c0f7..b349d81 100644
--- a/java/app/src/main/generated/proto/org/vss/PutObjectRequest.java
+++ b/java/app/src/main/generated/proto/org/vss/PutObjectRequest.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
@@ -34,12 +35,6 @@ protected java.lang.Object newInstance(
return new PutObjectRequest();
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
-
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.vss.Vss.internal_static_vss_PutObjectRequest_descriptor;
@@ -55,7 +50,8 @@ protected java.lang.Object newInstance(
private int bitField0_;
public static final int STORE_ID_FIELD_NUMBER = 1;
- private volatile java.lang.Object storeId_;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object storeId_ = "";
/**
*
@@ -115,23 +111,26 @@ public java.lang.String getStoreId() {
}
public static final int GLOBAL_VERSION_FIELD_NUMBER = 2;
- private long globalVersion_;
+ private long globalVersion_ = 0L;
/**
*
* `global_version` is a sequence-number/version of the whole store. This can be used for versioning
* and ensures that multiple updates in case of multiple devices can only be done linearly, even
* if those updates did not directly conflict with each other based on keys/`transaction_items`.
+ *
* If present, the write will only succeed if the current server-side `global_version` against
* the `store_id` is same as in the request.
* Clients are expected to store (client-side) the global version against `store_id`.
* The request must contain their client-side value of `global_version` if global versioning and
* conflict detection is desired.
+ *
* For the first write of the store, global version should be '0'. If the write succeeds, clients
* must increment their global version (client-side) by 1.
* The server increments `global_version` (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. This updated global version
* should be used in subsequent `PutObjectRequest`s for the store.
+ *
* Requests with a conflicting version will fail with `CONFLICT_EXCEPTION` as ErrorCode.
*
*
@@ -149,16 +148,19 @@ public boolean hasGlobalVersion() {
* `global_version` is a sequence-number/version of the whole store. This can be used for versioning
* and ensures that multiple updates in case of multiple devices can only be done linearly, even
* if those updates did not directly conflict with each other based on keys/`transaction_items`.
+ *
* If present, the write will only succeed if the current server-side `global_version` against
* the `store_id` is same as in the request.
* Clients are expected to store (client-side) the global version against `store_id`.
* The request must contain their client-side value of `global_version` if global versioning and
* conflict detection is desired.
+ *
* For the first write of the store, global version should be '0'. If the write succeeds, clients
* must increment their global version (client-side) by 1.
* The server increments `global_version` (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. This updated global version
* should be used in subsequent `PutObjectRequest`s for the store.
+ *
* Requests with a conflicting version will fail with `CONFLICT_EXCEPTION` as ErrorCode.
*
*
@@ -172,40 +174,49 @@ public long getGlobalVersion() {
}
public static final int TRANSACTION_ITEMS_FIELD_NUMBER = 3;
+ @SuppressWarnings("serial")
private java.util.List transactionItems_;
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -221,35 +232,43 @@ public java.util.List getTransactionItemsList() {
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -266,35 +285,43 @@ public java.util.List getTransactionItemsList() {
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -310,35 +337,43 @@ public int getTransactionItemsCount() {
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -354,35 +389,43 @@ public org.vss.KeyValue getTransactionItems(int index) {
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -397,25 +440,32 @@ public org.vss.KeyValueOrBuilder getTransactionItemsOrBuilder(
}
public static final int DELETE_ITEMS_FIELD_NUMBER = 4;
+ @SuppressWarnings("serial")
private java.util.List deleteItems_;
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -429,20 +479,26 @@ public java.util.List getDeleteItemsList() {
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -457,20 +513,26 @@ public java.util.List getDeleteItemsList() {
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -484,20 +546,26 @@ public int getDeleteItemsCount() {
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -511,20 +579,26 @@ public org.vss.KeyValue getDeleteItems(int index) {
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -789,24 +863,23 @@ private Builder(
@java.lang.Override
public Builder clear() {
super.clear();
+ bitField0_ = 0;
storeId_ = "";
-
globalVersion_ = 0L;
- bitField0_ = (bitField0_ & ~0x00000001);
if (transactionItemsBuilder_ == null) {
transactionItems_ = java.util.Collections.emptyList();
} else {
transactionItems_ = null;
transactionItemsBuilder_.clear();
}
- bitField0_ = (bitField0_ & ~0x00000002);
+ bitField0_ = (bitField0_ & ~0x00000004);
if (deleteItemsBuilder_ == null) {
deleteItems_ = java.util.Collections.emptyList();
} else {
deleteItems_ = null;
deleteItemsBuilder_.clear();
}
- bitField0_ = (bitField0_ & ~0x00000004);
+ bitField0_ = (bitField0_ & ~0x00000008);
return this;
}
@@ -833,34 +906,46 @@ public org.vss.PutObjectRequest build() {
@java.lang.Override
public org.vss.PutObjectRequest buildPartial() {
org.vss.PutObjectRequest result = new org.vss.PutObjectRequest(this);
- int from_bitField0_ = bitField0_;
- int to_bitField0_ = 0;
- result.storeId_ = storeId_;
- if (((from_bitField0_ & 0x00000001) != 0)) {
- result.globalVersion_ = globalVersion_;
- to_bitField0_ |= 0x00000001;
+ buildPartialRepeatedFields(result);
+ if (bitField0_ != 0) {
+ buildPartial0(result);
}
+ onBuilt();
+ return result;
+ }
+
+ private void buildPartialRepeatedFields(org.vss.PutObjectRequest result) {
if (transactionItemsBuilder_ == null) {
- if (((bitField0_ & 0x00000002) != 0)) {
+ if (((bitField0_ & 0x00000004) != 0)) {
transactionItems_ = java.util.Collections.unmodifiableList(transactionItems_);
- bitField0_ = (bitField0_ & ~0x00000002);
+ bitField0_ = (bitField0_ & ~0x00000004);
}
result.transactionItems_ = transactionItems_;
} else {
result.transactionItems_ = transactionItemsBuilder_.build();
}
if (deleteItemsBuilder_ == null) {
- if (((bitField0_ & 0x00000004) != 0)) {
+ if (((bitField0_ & 0x00000008) != 0)) {
deleteItems_ = java.util.Collections.unmodifiableList(deleteItems_);
- bitField0_ = (bitField0_ & ~0x00000004);
+ bitField0_ = (bitField0_ & ~0x00000008);
}
result.deleteItems_ = deleteItems_;
} else {
result.deleteItems_ = deleteItemsBuilder_.build();
}
- result.bitField0_ = to_bitField0_;
- onBuilt();
- return result;
+ }
+
+ private void buildPartial0(org.vss.PutObjectRequest result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.storeId_ = storeId_;
+ }
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.globalVersion_ = globalVersion_;
+ to_bitField0_ |= 0x00000001;
+ }
+ result.bitField0_ |= to_bitField0_;
}
@java.lang.Override
@@ -915,6 +1000,7 @@ public Builder mergeFrom(org.vss.PutObjectRequest other) {
if (other == org.vss.PutObjectRequest.getDefaultInstance()) return this;
if (!other.getStoreId().isEmpty()) {
storeId_ = other.storeId_;
+ bitField0_ |= 0x00000001;
onChanged();
}
if (other.hasGlobalVersion()) {
@@ -924,7 +1010,7 @@ public Builder mergeFrom(org.vss.PutObjectRequest other) {
if (!other.transactionItems_.isEmpty()) {
if (transactionItems_.isEmpty()) {
transactionItems_ = other.transactionItems_;
- bitField0_ = (bitField0_ & ~0x00000002);
+ bitField0_ = (bitField0_ & ~0x00000004);
} else {
ensureTransactionItemsIsMutable();
transactionItems_.addAll(other.transactionItems_);
@@ -937,7 +1023,7 @@ public Builder mergeFrom(org.vss.PutObjectRequest other) {
transactionItemsBuilder_.dispose();
transactionItemsBuilder_ = null;
transactionItems_ = other.transactionItems_;
- bitField0_ = (bitField0_ & ~0x00000002);
+ bitField0_ = (bitField0_ & ~0x00000004);
transactionItemsBuilder_ =
com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
getTransactionItemsFieldBuilder() : null;
@@ -950,7 +1036,7 @@ public Builder mergeFrom(org.vss.PutObjectRequest other) {
if (!other.deleteItems_.isEmpty()) {
if (deleteItems_.isEmpty()) {
deleteItems_ = other.deleteItems_;
- bitField0_ = (bitField0_ & ~0x00000004);
+ bitField0_ = (bitField0_ & ~0x00000008);
} else {
ensureDeleteItemsIsMutable();
deleteItems_.addAll(other.deleteItems_);
@@ -963,7 +1049,7 @@ public Builder mergeFrom(org.vss.PutObjectRequest other) {
deleteItemsBuilder_.dispose();
deleteItemsBuilder_ = null;
deleteItems_ = other.deleteItems_;
- bitField0_ = (bitField0_ & ~0x00000004);
+ bitField0_ = (bitField0_ & ~0x00000008);
deleteItemsBuilder_ =
com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
getDeleteItemsFieldBuilder() : null;
@@ -1000,12 +1086,12 @@ public Builder mergeFrom(
break;
case 10: {
storeId_ = input.readStringRequireUtf8();
-
+ bitField0_ |= 0x00000001;
break;
} // case 10
case 16: {
globalVersion_ = input.readInt64();
- bitField0_ |= 0x00000001;
+ bitField0_ |= 0x00000002;
break;
} // case 16
case 26: {
@@ -1129,8 +1215,8 @@ public Builder setStoreId(
if (value == null) {
throw new NullPointerException();
}
-
storeId_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -1150,8 +1236,8 @@ public Builder setStoreId(
* @return This builder for chaining.
*/
public Builder clearStoreId() {
-
storeId_ = getDefaultInstance().getStoreId();
+ bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
return this;
}
@@ -1177,8 +1263,8 @@ public Builder setStoreIdBytes(
throw new NullPointerException();
}
checkByteStringIsUtf8(value);
-
storeId_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -1190,16 +1276,19 @@ public Builder setStoreIdBytes(
* `global_version` is a sequence-number/version of the whole store. This can be used for versioning
* and ensures that multiple updates in case of multiple devices can only be done linearly, even
* if those updates did not directly conflict with each other based on keys/`transaction_items`.
+ *
* If present, the write will only succeed if the current server-side `global_version` against
* the `store_id` is same as in the request.
* Clients are expected to store (client-side) the global version against `store_id`.
* The request must contain their client-side value of `global_version` if global versioning and
* conflict detection is desired.
+ *
* For the first write of the store, global version should be '0'. If the write succeeds, clients
* must increment their global version (client-side) by 1.
* The server increments `global_version` (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. This updated global version
* should be used in subsequent `PutObjectRequest`s for the store.
+ *
* Requests with a conflicting version will fail with `CONFLICT_EXCEPTION` as ErrorCode.
*
*
@@ -1209,7 +1298,7 @@ public Builder setStoreIdBytes(
*/
@java.lang.Override
public boolean hasGlobalVersion() {
- return ((bitField0_ & 0x00000001) != 0);
+ return ((bitField0_ & 0x00000002) != 0);
}
/**
@@ -1217,16 +1306,19 @@ public boolean hasGlobalVersion() {
* `global_version` is a sequence-number/version of the whole store. This can be used for versioning
* and ensures that multiple updates in case of multiple devices can only be done linearly, even
* if those updates did not directly conflict with each other based on keys/`transaction_items`.
+ *
* If present, the write will only succeed if the current server-side `global_version` against
* the `store_id` is same as in the request.
* Clients are expected to store (client-side) the global version against `store_id`.
* The request must contain their client-side value of `global_version` if global versioning and
* conflict detection is desired.
+ *
* For the first write of the store, global version should be '0'. If the write succeeds, clients
* must increment their global version (client-side) by 1.
* The server increments `global_version` (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. This updated global version
* should be used in subsequent `PutObjectRequest`s for the store.
+ *
* Requests with a conflicting version will fail with `CONFLICT_EXCEPTION` as ErrorCode.
*
*
@@ -1244,16 +1336,19 @@ public long getGlobalVersion() {
* `global_version` is a sequence-number/version of the whole store. This can be used for versioning
* and ensures that multiple updates in case of multiple devices can only be done linearly, even
* if those updates did not directly conflict with each other based on keys/`transaction_items`.
+ *
* If present, the write will only succeed if the current server-side `global_version` against
* the `store_id` is same as in the request.
* Clients are expected to store (client-side) the global version against `store_id`.
* The request must contain their client-side value of `global_version` if global versioning and
* conflict detection is desired.
+ *
* For the first write of the store, global version should be '0'. If the write succeeds, clients
* must increment their global version (client-side) by 1.
* The server increments `global_version` (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. This updated global version
* should be used in subsequent `PutObjectRequest`s for the store.
+ *
* Requests with a conflicting version will fail with `CONFLICT_EXCEPTION` as ErrorCode.
*
*
@@ -1263,8 +1358,9 @@ public long getGlobalVersion() {
* @return This builder for chaining.
*/
public Builder setGlobalVersion(long value) {
- bitField0_ |= 0x00000001;
+
globalVersion_ = value;
+ bitField0_ |= 0x00000002;
onChanged();
return this;
}
@@ -1274,16 +1370,19 @@ public Builder setGlobalVersion(long value) {
* `global_version` is a sequence-number/version of the whole store. This can be used for versioning
* and ensures that multiple updates in case of multiple devices can only be done linearly, even
* if those updates did not directly conflict with each other based on keys/`transaction_items`.
+ *
* If present, the write will only succeed if the current server-side `global_version` against
* the `store_id` is same as in the request.
* Clients are expected to store (client-side) the global version against `store_id`.
* The request must contain their client-side value of `global_version` if global versioning and
* conflict detection is desired.
+ *
* For the first write of the store, global version should be '0'. If the write succeeds, clients
* must increment their global version (client-side) by 1.
* The server increments `global_version` (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. This updated global version
* should be used in subsequent `PutObjectRequest`s for the store.
+ *
* Requests with a conflicting version will fail with `CONFLICT_EXCEPTION` as ErrorCode.
*
*
@@ -1292,7 +1391,7 @@ public Builder setGlobalVersion(long value) {
* @return This builder for chaining.
*/
public Builder clearGlobalVersion() {
- bitField0_ = (bitField0_ & ~0x00000001);
+ bitField0_ = (bitField0_ & ~0x00000002);
globalVersion_ = 0L;
onChanged();
return this;
@@ -1302,9 +1401,9 @@ public Builder clearGlobalVersion() {
java.util.Collections.emptyList();
private void ensureTransactionItemsIsMutable() {
- if (!((bitField0_ & 0x00000002) != 0)) {
+ if (!((bitField0_ & 0x00000004) != 0)) {
transactionItems_ = new java.util.ArrayList(transactionItems_);
- bitField0_ |= 0x00000002;
+ bitField0_ |= 0x00000004;
}
}
@@ -1314,35 +1413,43 @@ private void ensureTransactionItemsIsMutable() {
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1361,35 +1468,43 @@ public java.util.List getTransactionItemsList() {
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1408,35 +1523,43 @@ public int getTransactionItemsCount() {
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1455,35 +1578,43 @@ public org.vss.KeyValue getTransactionItems(int index) {
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1509,35 +1640,43 @@ public Builder setTransactionItems(
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1560,35 +1699,43 @@ public Builder setTransactionItems(
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1613,35 +1760,43 @@ public Builder addTransactionItems(org.vss.KeyValue value) {
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1667,35 +1822,43 @@ public Builder addTransactionItems(
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1718,35 +1881,43 @@ public Builder addTransactionItems(
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1769,35 +1940,43 @@ public Builder addTransactionItems(
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1821,35 +2000,43 @@ public Builder addAllTransactionItems(
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1860,7 +2047,7 @@ public Builder addAllTransactionItems(
public Builder clearTransactionItems() {
if (transactionItemsBuilder_ == null) {
transactionItems_ = java.util.Collections.emptyList();
- bitField0_ = (bitField0_ & ~0x00000002);
+ bitField0_ = (bitField0_ & ~0x00000004);
onChanged();
} else {
transactionItemsBuilder_.clear();
@@ -1871,35 +2058,43 @@ public Builder clearTransactionItems() {
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1921,35 +2116,43 @@ public Builder removeTransactionItems(int index) {
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -1965,35 +2168,43 @@ public org.vss.KeyValue.Builder getTransactionItemsBuilder(
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -2013,35 +2224,43 @@ public org.vss.KeyValueOrBuilder getTransactionItemsOrBuilder(
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -2061,35 +2280,43 @@ public org.vss.KeyValueOrBuilder getTransactionItemsOrBuilder(
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -2105,35 +2332,43 @@ public org.vss.KeyValue.Builder addTransactionItemsBuilder() {
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -2150,35 +2385,43 @@ public org.vss.KeyValue.Builder addTransactionItemsBuilder(
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -2198,7 +2441,7 @@ public org.vss.KeyValue.Builder addTransactionItemsBuilder(
transactionItemsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder>(
transactionItems_,
- ((bitField0_ & 0x00000002) != 0),
+ ((bitField0_ & 0x00000004) != 0),
getParentForChildren(),
isClean());
transactionItems_ = null;
@@ -2210,9 +2453,9 @@ public org.vss.KeyValue.Builder addTransactionItemsBuilder(
java.util.Collections.emptyList();
private void ensureDeleteItemsIsMutable() {
- if (!((bitField0_ & 0x00000004) != 0)) {
+ if (!((bitField0_ & 0x00000008) != 0)) {
deleteItems_ = new java.util.ArrayList(deleteItems_);
- bitField0_ |= 0x00000004;
+ bitField0_ |= 0x00000008;
}
}
@@ -2222,20 +2465,26 @@ private void ensureDeleteItemsIsMutable() {
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2252,20 +2501,26 @@ public java.util.List getDeleteItemsList() {
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2282,20 +2537,26 @@ public int getDeleteItemsCount() {
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2312,20 +2573,26 @@ public org.vss.KeyValue getDeleteItems(int index) {
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2349,20 +2616,26 @@ public Builder setDeleteItems(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2383,20 +2656,26 @@ public Builder setDeleteItems(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2419,20 +2698,26 @@ public Builder addDeleteItems(org.vss.KeyValue value) {
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2456,20 +2741,26 @@ public Builder addDeleteItems(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2490,20 +2781,26 @@ public Builder addDeleteItems(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2524,20 +2821,26 @@ public Builder addDeleteItems(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2559,20 +2862,26 @@ public Builder addAllDeleteItems(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2581,7 +2890,7 @@ public Builder addAllDeleteItems(
public Builder clearDeleteItems() {
if (deleteItemsBuilder_ == null) {
deleteItems_ = java.util.Collections.emptyList();
- bitField0_ = (bitField0_ & ~0x00000004);
+ bitField0_ = (bitField0_ & ~0x00000008);
onChanged();
} else {
deleteItemsBuilder_.clear();
@@ -2592,20 +2901,26 @@ public Builder clearDeleteItems() {
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2625,20 +2940,26 @@ public Builder removeDeleteItems(int index) {
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2652,20 +2973,26 @@ public org.vss.KeyValue.Builder getDeleteItemsBuilder(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2683,20 +3010,26 @@ public org.vss.KeyValueOrBuilder getDeleteItemsOrBuilder(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2714,20 +3047,26 @@ public org.vss.KeyValueOrBuilder getDeleteItemsOrBuilder(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2741,20 +3080,26 @@ public org.vss.KeyValue.Builder addDeleteItemsBuilder() {
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2769,20 +3114,26 @@ public org.vss.KeyValue.Builder addDeleteItemsBuilder(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -2800,7 +3151,7 @@ public org.vss.KeyValue.Builder addDeleteItemsBuilder(
deleteItemsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder>(
deleteItems_,
- ((bitField0_ & 0x00000004) != 0),
+ ((bitField0_ & 0x00000008) != 0),
getParentForChildren(),
isClean());
deleteItems_ = null;
diff --git a/java/app/src/main/generated/proto/org/vss/PutObjectRequestOrBuilder.java b/java/app/src/main/generated/proto/org/vss/PutObjectRequestOrBuilder.java
index 8265d4e..348ba68 100644
--- a/java/app/src/main/generated/proto/org/vss/PutObjectRequestOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/PutObjectRequestOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface PutObjectRequestOrBuilder extends
@@ -45,16 +46,19 @@ public interface PutObjectRequestOrBuilder extends
* `global_version` is a sequence-number/version of the whole store. This can be used for versioning
* and ensures that multiple updates in case of multiple devices can only be done linearly, even
* if those updates did not directly conflict with each other based on keys/`transaction_items`.
+ *
* If present, the write will only succeed if the current server-side `global_version` against
* the `store_id` is same as in the request.
* Clients are expected to store (client-side) the global version against `store_id`.
* The request must contain their client-side value of `global_version` if global versioning and
* conflict detection is desired.
+ *
* For the first write of the store, global version should be '0'. If the write succeeds, clients
* must increment their global version (client-side) by 1.
* The server increments `global_version` (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. This updated global version
* should be used in subsequent `PutObjectRequest`s for the store.
+ *
* Requests with a conflicting version will fail with `CONFLICT_EXCEPTION` as ErrorCode.
*
*
@@ -69,16 +73,19 @@ public interface PutObjectRequestOrBuilder extends
* `global_version` is a sequence-number/version of the whole store. This can be used for versioning
* and ensures that multiple updates in case of multiple devices can only be done linearly, even
* if those updates did not directly conflict with each other based on keys/`transaction_items`.
+ *
* If present, the write will only succeed if the current server-side `global_version` against
* the `store_id` is same as in the request.
* Clients are expected to store (client-side) the global version against `store_id`.
* The request must contain their client-side value of `global_version` if global versioning and
* conflict detection is desired.
+ *
* For the first write of the store, global version should be '0'. If the write succeeds, clients
* must increment their global version (client-side) by 1.
* The server increments `global_version` (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. This updated global version
* should be used in subsequent `PutObjectRequest`s for the store.
+ *
* Requests with a conflicting version will fail with `CONFLICT_EXCEPTION` as ErrorCode.
*
*
@@ -91,35 +98,43 @@ public interface PutObjectRequestOrBuilder extends
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -133,35 +148,43 @@ public interface PutObjectRequestOrBuilder extends
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -174,35 +197,43 @@ public interface PutObjectRequestOrBuilder extends
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -215,35 +246,43 @@ public interface PutObjectRequestOrBuilder extends
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -257,35 +296,43 @@ public interface PutObjectRequestOrBuilder extends
/**
*
* Items to be written as a result of this `PutObjectRequest`.
+ *
* In an item, each `key` is supplied with its corresponding `value` and `version`.
* Clients can choose to encrypt the keys client-side in order to obfuscate their usage patterns.
* If the write is successful, the previous `value` corresponding to the `key` will be overwritten.
+ *
* Multiple items in `transaction_items` and `delete_items` of a single `PutObjectRequest` are written in
* a database-transaction in an all-or-nothing fashion.
* All Items in a single `PutObjectRequest` must have distinct keys.
+ *
* Key-level versioning (Conditional Write):
* Clients are expected to store a `version` against every `key`.
* The write will succeed if the current DB version against the `key` is the same as in the request.
* When initiating a `PutObjectRequest`, the request should contain their client-side `version`
* for that key-value.
+ *
* For the first write of any `key`, the `version` should be '0'. If the write succeeds, the client
* must increment their corresponding key versions (client-side) by 1.
* The server increments key versions (server-side) for every successful write, hence this
* client-side increment is required to ensure matching versions. These updated key versions should
* be used in subsequent `PutObjectRequest`s for the keys.
+ *
* Requests with a conflicting/mismatched version will fail with `CONFLICT_EXCEPTION` as ErrorCode
* for conditional writes.
+ *
* Skipping key-level versioning (Non-conditional Write):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional write query, after which the `version` against the `key`
* is reset to '1'. Hence, the next `PutObjectRequest` for the `key` can be either
* a non-conditional write or a conditional write with `version` set to `1`.
+ *
* Considerations for transactions:
* Transaction writes of multiple items have a performance overhead, hence it is recommended to use
* them only if required by the client application to ensure logic/code correctness.
* That is, `transaction_items` are not a substitute for batch-write of multiple unrelated items.
* When a write of multiple unrelated items is desired, it is recommended to use separate
* `PutObjectRequest`s.
+ *
* Consistency guarantee:
* All `PutObjectRequest`s are strongly consistent i.e. they provide read-after-write and
* read-after-update consistency guarantees.
@@ -299,20 +346,26 @@ org.vss.KeyValueOrBuilder getTransactionItemsOrBuilder(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -324,20 +377,26 @@ org.vss.KeyValueOrBuilder getTransactionItemsOrBuilder(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -348,20 +407,26 @@ org.vss.KeyValueOrBuilder getTransactionItemsOrBuilder(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -372,20 +437,26 @@ org.vss.KeyValueOrBuilder getTransactionItemsOrBuilder(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
@@ -397,20 +468,26 @@ org.vss.KeyValueOrBuilder getTransactionItemsOrBuilder(
/**
*
* Items to be deleted as a result of this `PutObjectRequest`.
+ *
* Each item in the `delete_items` field consists of a `key` and its corresponding `version`.
+ *
* Key-Level Versioning (Conditional Delete):
* The `version` is used to perform a version check before deleting the item.
* The delete will only succeed if the current database version against the `key` is the same as
* the `version` specified in the request.
+ *
* Skipping key-level versioning (Non-conditional Delete):
* If you wish to skip key-level version checks, set the `version` against the `key` to '-1'.
* This will perform a non-conditional delete query.
+ *
* Fails with `CONFLICT_EXCEPTION` as the ErrorCode if:
* * The requested item does not exist.
* * The requested item does exist but there is a version-number mismatch (in conditional delete)
* with the one in the database.
+ *
* Multiple items in the `delete_items` field, along with the `transaction_items`, are written in a
* database transaction in an all-or-nothing fashion.
+ *
* All items within a single `PutObjectRequest` must have distinct keys.
*
*
diff --git a/java/app/src/main/generated/proto/org/vss/PutObjectResponse.java b/java/app/src/main/generated/proto/org/vss/PutObjectResponse.java
index 57c2b5f..7ab1b89 100644
--- a/java/app/src/main/generated/proto/org/vss/PutObjectResponse.java
+++ b/java/app/src/main/generated/proto/org/vss/PutObjectResponse.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
@@ -31,12 +32,6 @@ protected java.lang.Object newInstance(
return new PutObjectResponse();
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
-
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.vss.Vss.internal_static_vss_PutObjectResponse_descriptor;
diff --git a/java/app/src/main/generated/proto/org/vss/PutObjectResponseOrBuilder.java b/java/app/src/main/generated/proto/org/vss/PutObjectResponseOrBuilder.java
index 5e7ab21..e537e4e 100644
--- a/java/app/src/main/generated/proto/org/vss/PutObjectResponseOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/PutObjectResponseOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface PutObjectResponseOrBuilder extends
diff --git a/java/app/src/main/generated/proto/org/vss/Storable.java b/java/app/src/main/generated/proto/org/vss/Storable.java
index 70e35b6..304e185 100644
--- a/java/app/src/main/generated/proto/org/vss/Storable.java
+++ b/java/app/src/main/generated/proto/org/vss/Storable.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
/**
@@ -36,12 +37,6 @@ protected java.lang.Object newInstance(
return new Storable();
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
-
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.vss.Vss.internal_static_vss_Storable_descriptor;
@@ -55,8 +50,9 @@ protected java.lang.Object newInstance(
org.vss.Storable.class, org.vss.Storable.Builder.class);
}
+ private int bitField0_;
public static final int DATA_FIELD_NUMBER = 1;
- private com.google.protobuf.ByteString data_;
+ private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
/**
*
@@ -87,7 +83,7 @@ public com.google.protobuf.ByteString getData() {
*/
@java.lang.Override
public boolean hasEncryptionMetadata() {
- return encryptionMetadata_ != null;
+ return ((bitField0_ & 0x00000001) != 0);
}
/**
@@ -113,7 +109,7 @@ public org.vss.EncryptionMetadata getEncryptionMetadata() {
*/
@java.lang.Override
public org.vss.EncryptionMetadataOrBuilder getEncryptionMetadataOrBuilder() {
- return getEncryptionMetadata();
+ return encryptionMetadata_ == null ? org.vss.EncryptionMetadata.getDefaultInstance() : encryptionMetadata_;
}
private byte memoizedIsInitialized = -1;
@@ -134,7 +130,7 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
if (!data_.isEmpty()) {
output.writeBytes(1, data_);
}
- if (encryptionMetadata_ != null) {
+ if (((bitField0_ & 0x00000001) != 0)) {
output.writeMessage(2, getEncryptionMetadata());
}
getUnknownFields().writeTo(output);
@@ -150,7 +146,7 @@ public int getSerializedSize() {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(1, data_);
}
- if (encryptionMetadata_ != null) {
+ if (((bitField0_ & 0x00000001) != 0)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, getEncryptionMetadata());
}
@@ -335,24 +331,30 @@ public static final class Builder extends
// Construct using org.vss.Storable.newBuilder()
private Builder() {
-
+ maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ getEncryptionMetadataFieldBuilder();
+ }
}
@java.lang.Override
public Builder clear() {
super.clear();
+ bitField0_ = 0;
data_ = com.google.protobuf.ByteString.EMPTY;
-
- if (encryptionMetadataBuilder_ == null) {
- encryptionMetadata_ = null;
- } else {
- encryptionMetadata_ = null;
+ encryptionMetadata_ = null;
+ if (encryptionMetadataBuilder_ != null) {
+ encryptionMetadataBuilder_.dispose();
encryptionMetadataBuilder_ = null;
}
return this;
@@ -381,16 +383,28 @@ public org.vss.Storable build() {
@java.lang.Override
public org.vss.Storable buildPartial() {
org.vss.Storable result = new org.vss.Storable(this);
- result.data_ = data_;
- if (encryptionMetadataBuilder_ == null) {
- result.encryptionMetadata_ = encryptionMetadata_;
- } else {
- result.encryptionMetadata_ = encryptionMetadataBuilder_.build();
+ if (bitField0_ != 0) {
+ buildPartial0(result);
}
onBuilt();
return result;
}
+ private void buildPartial0(org.vss.Storable result) {
+ int from_bitField0_ = bitField0_;
+ if (((from_bitField0_ & 0x00000001) != 0)) {
+ result.data_ = data_;
+ }
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000002) != 0)) {
+ result.encryptionMetadata_ = encryptionMetadataBuilder_ == null
+ ? encryptionMetadata_
+ : encryptionMetadataBuilder_.build();
+ to_bitField0_ |= 0x00000001;
+ }
+ result.bitField0_ |= to_bitField0_;
+ }
+
@java.lang.Override
public Builder clone() {
return super.clone();
@@ -475,14 +489,14 @@ public Builder mergeFrom(
break;
case 10: {
data_ = input.readBytes();
-
+ bitField0_ |= 0x00000001;
break;
} // case 10
case 18: {
input.readMessage(
getEncryptionMetadataFieldBuilder().getBuilder(),
extensionRegistry);
-
+ bitField0_ |= 0x00000002;
break;
} // case 18
default: {
@@ -501,6 +515,8 @@ public Builder mergeFrom(
return this;
}
+ private int bitField0_;
+
private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
/**
@@ -533,8 +549,8 @@ public Builder setData(com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
-
data_ = value;
+ bitField0_ |= 0x00000001;
onChanged();
return this;
}
@@ -550,7 +566,7 @@ public Builder setData(com.google.protobuf.ByteString value) {
* @return This builder for chaining.
*/
public Builder clearData() {
-
+ bitField0_ = (bitField0_ & ~0x00000001);
data_ = getDefaultInstance().getData();
onChanged();
return this;
@@ -570,7 +586,7 @@ public Builder clearData() {
* @return Whether the encryptionMetadata field is set.
*/
public boolean hasEncryptionMetadata() {
- return encryptionMetadataBuilder_ != null || encryptionMetadata_ != null;
+ return ((bitField0_ & 0x00000002) != 0);
}
/**
@@ -603,11 +619,11 @@ public Builder setEncryptionMetadata(org.vss.EncryptionMetadata value) {
throw new NullPointerException();
}
encryptionMetadata_ = value;
- onChanged();
} else {
encryptionMetadataBuilder_.setMessage(value);
}
-
+ bitField0_ |= 0x00000002;
+ onChanged();
return this;
}
@@ -622,11 +638,11 @@ public Builder setEncryptionMetadata(
org.vss.EncryptionMetadata.Builder builderForValue) {
if (encryptionMetadataBuilder_ == null) {
encryptionMetadata_ = builderForValue.build();
- onChanged();
} else {
encryptionMetadataBuilder_.setMessage(builderForValue.build());
}
-
+ bitField0_ |= 0x00000002;
+ onChanged();
return this;
}
@@ -639,17 +655,20 @@ public Builder setEncryptionMetadata(
*/
public Builder mergeEncryptionMetadata(org.vss.EncryptionMetadata value) {
if (encryptionMetadataBuilder_ == null) {
- if (encryptionMetadata_ != null) {
- encryptionMetadata_ =
- org.vss.EncryptionMetadata.newBuilder(encryptionMetadata_).mergeFrom(value).buildPartial();
+ if (((bitField0_ & 0x00000002) != 0) &&
+ encryptionMetadata_ != null &&
+ encryptionMetadata_ != org.vss.EncryptionMetadata.getDefaultInstance()) {
+ getEncryptionMetadataBuilder().mergeFrom(value);
} else {
encryptionMetadata_ = value;
}
- onChanged();
} else {
encryptionMetadataBuilder_.mergeFrom(value);
}
-
+ if (encryptionMetadata_ != null) {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ }
return this;
}
@@ -661,14 +680,13 @@ public Builder mergeEncryptionMetadata(org.vss.EncryptionMetadata value) {
* .vss.EncryptionMetadata encryption_metadata = 2;
*/
public Builder clearEncryptionMetadata() {
- if (encryptionMetadataBuilder_ == null) {
- encryptionMetadata_ = null;
- onChanged();
- } else {
- encryptionMetadata_ = null;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ encryptionMetadata_ = null;
+ if (encryptionMetadataBuilder_ != null) {
+ encryptionMetadataBuilder_.dispose();
encryptionMetadataBuilder_ = null;
}
-
+ onChanged();
return this;
}
@@ -680,7 +698,7 @@ public Builder clearEncryptionMetadata() {
* .vss.EncryptionMetadata encryption_metadata = 2;
*/
public org.vss.EncryptionMetadata.Builder getEncryptionMetadataBuilder() {
-
+ bitField0_ |= 0x00000002;
onChanged();
return getEncryptionMetadataFieldBuilder().getBuilder();
}
diff --git a/java/app/src/main/generated/proto/org/vss/StorableOrBuilder.java b/java/app/src/main/generated/proto/org/vss/StorableOrBuilder.java
index ba05db9..8d7b972 100644
--- a/java/app/src/main/generated/proto/org/vss/StorableOrBuilder.java
+++ b/java/app/src/main/generated/proto/org/vss/StorableOrBuilder.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public interface StorableOrBuilder extends
diff --git a/java/app/src/main/generated/proto/org/vss/Vss.java b/java/app/src/main/generated/proto/org/vss/Vss.java
index a768d82..f61117e 100644
--- a/java/app/src/main/generated/proto/org/vss/Vss.java
+++ b/java/app/src/main/generated/proto/org/vss/Vss.java
@@ -1,6 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: vss.proto
+// Protobuf Java Version: 3.25.5
package org.vss;
public final class Vss {
@@ -146,7 +147,7 @@ public static void registerAllExtensions(
internal_static_vss_PutObjectRequest_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_vss_PutObjectRequest_descriptor,
- new java.lang.String[]{"StoreId", "GlobalVersion", "TransactionItems", "DeleteItems", "GlobalVersion",});
+ new java.lang.String[]{"StoreId", "GlobalVersion", "TransactionItems", "DeleteItems",});
internal_static_vss_PutObjectResponse_descriptor =
getDescriptor().getMessageTypes().get(3);
internal_static_vss_PutObjectResponse_fieldAccessorTable = new
@@ -170,13 +171,13 @@ public static void registerAllExtensions(
internal_static_vss_ListKeyVersionsRequest_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_vss_ListKeyVersionsRequest_descriptor,
- new java.lang.String[]{"StoreId", "KeyPrefix", "PageSize", "PageToken", "KeyPrefix", "PageSize", "PageToken",});
+ new java.lang.String[]{"StoreId", "KeyPrefix", "PageSize", "PageToken",});
internal_static_vss_ListKeyVersionsResponse_descriptor =
getDescriptor().getMessageTypes().get(7);
internal_static_vss_ListKeyVersionsResponse_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_vss_ListKeyVersionsResponse_descriptor,
- new java.lang.String[]{"KeyVersions", "NextPageToken", "GlobalVersion", "NextPageToken", "GlobalVersion",});
+ new java.lang.String[]{"KeyVersions", "NextPageToken", "GlobalVersion",});
internal_static_vss_ErrorResponse_descriptor =
getDescriptor().getMessageTypes().get(8);
internal_static_vss_ErrorResponse_fieldAccessorTable = new