diff --git a/java/app/build.gradle b/java/app/build.gradle index 4b91435..217e019 100644 --- a/java/app/build.gradle +++ b/java/app/build.gradle @@ -23,18 +23,16 @@ repositories { sourceSets { main { + java { + srcDirs += './src/main/generated/proto' + srcDirs -= './build/generated' + } proto { srcDir '../../proto' } } } -idea { - module { - generatedSourceDirs.add(file("build/generated/proto/main")) - } -} - group 'org.vss' version '1.0' @@ -81,6 +79,17 @@ protobuf { protoc { artifact = "com.google.protobuf:protoc:$protobufVersion" } + + generatedFilesBaseDir = "${projectDir}/src/" + generateProtoTasks { + all().each { task -> + task.builtins { + java { + outputSubDir = 'generated/proto' + } + } + } + } } jooq { diff --git a/java/app/src/main/generated/proto/org/vss/DeleteObjectRequest.java b/java/app/src/main/generated/proto/org/vss/DeleteObjectRequest.java new file mode 100644 index 0000000..48a68dc --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/DeleteObjectRequest.java @@ -0,0 +1,1019 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *
+ * Request payload to be used for `DeleteObject` API call to server.
+ * 
+ *

+ * Protobuf type {@code vss.DeleteObjectRequest} + */ +public final class DeleteObjectRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.DeleteObjectRequest) + DeleteObjectRequestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use DeleteObjectRequest.newBuilder() to construct. + private DeleteObjectRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private DeleteObjectRequest() { + storeId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_DeleteObjectRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.DeleteObjectRequest.class, org.vss.DeleteObjectRequest.Builder.class); + } + + public static final int STORE_ID_FIELD_NUMBER = 1; + private volatile java.lang.Object storeId_; + + /** + *

+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The storeId. + */ + @java.lang.Override + public java.lang.String getStoreId() { + java.lang.Object ref = storeId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + storeId_ = s; + return s; + } + } + + /** + *
+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The bytes for storeId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getStoreIdBytes() { + java.lang.Object ref = storeId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + storeId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int KEY_VALUE_FIELD_NUMBER = 2; + private org.vss.KeyValue keyValue_; + + /** + *
+	 * 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.
+	 * 
+ * + * .vss.KeyValue key_value = 2; + * + * @return Whether the keyValue field is set. + */ + @java.lang.Override + public boolean hasKeyValue() { + return keyValue_ != null; + } + + /** + *
+	 * 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.
+	 * 
+ * + * .vss.KeyValue key_value = 2; + * + * @return The keyValue. + */ + @java.lang.Override + public org.vss.KeyValue getKeyValue() { + return keyValue_ == null ? org.vss.KeyValue.getDefaultInstance() : keyValue_; + } + + /** + *
+	 * 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.
+	 * 
+ * + * .vss.KeyValue key_value = 2; + */ + @java.lang.Override + public org.vss.KeyValueOrBuilder getKeyValueOrBuilder() { + return getKeyValue(); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(storeId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, storeId_); + } + if (keyValue_ != null) { + output.writeMessage(2, getKeyValue()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(storeId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, storeId_); + } + if (keyValue_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getKeyValue()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.DeleteObjectRequest)) { + return super.equals(obj); + } + org.vss.DeleteObjectRequest other = (org.vss.DeleteObjectRequest) obj; + + if (!getStoreId() + .equals(other.getStoreId())) return false; + if (hasKeyValue() != other.hasKeyValue()) return false; + if (hasKeyValue()) { + if (!getKeyValue() + .equals(other.getKeyValue())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + STORE_ID_FIELD_NUMBER; + hash = (53 * hash) + getStoreId().hashCode(); + if (hasKeyValue()) { + hash = (37 * hash) + KEY_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getKeyValue().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.DeleteObjectRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.DeleteObjectRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.DeleteObjectRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.DeleteObjectRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.DeleteObjectRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.DeleteObjectRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.DeleteObjectRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.DeleteObjectRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.DeleteObjectRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.DeleteObjectRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.DeleteObjectRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.DeleteObjectRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.DeleteObjectRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+	 * Request payload to be used for `DeleteObject` API call to server.
+	 * 
+ *

+ * Protobuf type {@code vss.DeleteObjectRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.DeleteObjectRequest) + org.vss.DeleteObjectRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_DeleteObjectRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_DeleteObjectRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.DeleteObjectRequest.class, org.vss.DeleteObjectRequest.Builder.class); + } + + // Construct using org.vss.DeleteObjectRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + storeId_ = ""; + + if (keyValueBuilder_ == null) { + keyValue_ = null; + } else { + keyValue_ = null; + keyValueBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_DeleteObjectRequest_descriptor; + } + + @java.lang.Override + public org.vss.DeleteObjectRequest getDefaultInstanceForType() { + return org.vss.DeleteObjectRequest.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.DeleteObjectRequest build() { + org.vss.DeleteObjectRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @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(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.DeleteObjectRequest) { + return mergeFrom((org.vss.DeleteObjectRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.DeleteObjectRequest other) { + if (other == org.vss.DeleteObjectRequest.getDefaultInstance()) return this; + if (!other.getStoreId().isEmpty()) { + storeId_ = other.storeId_; + onChanged(); + } + if (other.hasKeyValue()) { + mergeKeyValue(other.getKeyValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + storeId_ = input.readStringRequireUtf8(); + + break; + } // case 10 + case 18: { + input.readMessage( + getKeyValueFieldBuilder().getBuilder(), + extensionRegistry); + + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private java.lang.Object storeId_ = ""; + + /** + *

+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @return The storeId. + */ + public java.lang.String getStoreId() { + java.lang.Object ref = storeId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + storeId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @return The bytes for storeId. + */ + public com.google.protobuf.ByteString + getStoreIdBytes() { + java.lang.Object ref = storeId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + storeId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @param value The storeId to set. + * @return This builder for chaining. + */ + public Builder setStoreId( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + storeId_ = value; + onChanged(); + return this; + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @return This builder for chaining. + */ + public Builder clearStoreId() { + + storeId_ = getDefaultInstance().getStoreId(); + onChanged(); + return this; + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @param value The bytes for storeId to set. + * @return This builder for chaining. + */ + public Builder setStoreIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + storeId_ = value; + onChanged(); + return this; + } + + private org.vss.KeyValue keyValue_; + private com.google.protobuf.SingleFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder> keyValueBuilder_; + + /** + *
+		 * 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.
+		 * 
+ * + * .vss.KeyValue key_value = 2; + * + * @return Whether the keyValue field is set. + */ + public boolean hasKeyValue() { + return keyValueBuilder_ != null || keyValue_ != null; + } + + /** + *
+		 * 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.
+		 * 
+ * + * .vss.KeyValue key_value = 2; + * + * @return The keyValue. + */ + public org.vss.KeyValue getKeyValue() { + if (keyValueBuilder_ == null) { + return keyValue_ == null ? org.vss.KeyValue.getDefaultInstance() : keyValue_; + } else { + return keyValueBuilder_.getMessage(); + } + } + + /** + *
+		 * 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.
+		 * 
+ * + * .vss.KeyValue key_value = 2; + */ + public Builder setKeyValue(org.vss.KeyValue value) { + if (keyValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + keyValue_ = value; + onChanged(); + } else { + keyValueBuilder_.setMessage(value); + } + + 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.
+		 * 
+ * + * .vss.KeyValue key_value = 2; + */ + public Builder setKeyValue( + org.vss.KeyValue.Builder builderForValue) { + if (keyValueBuilder_ == null) { + keyValue_ = builderForValue.build(); + onChanged(); + } else { + keyValueBuilder_.setMessage(builderForValue.build()); + } + + 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.
+		 * 
+ * + * .vss.KeyValue key_value = 2; + */ + public Builder mergeKeyValue(org.vss.KeyValue value) { + if (keyValueBuilder_ == null) { + if (keyValue_ != null) { + keyValue_ = + org.vss.KeyValue.newBuilder(keyValue_).mergeFrom(value).buildPartial(); + } else { + keyValue_ = value; + } + onChanged(); + } else { + keyValueBuilder_.mergeFrom(value); + } + + 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.
+		 * 
+ * + * .vss.KeyValue key_value = 2; + */ + public Builder clearKeyValue() { + if (keyValueBuilder_ == null) { + keyValue_ = null; + onChanged(); + } else { + keyValue_ = null; + keyValueBuilder_ = null; + } + + 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.
+		 * 
+ * + * .vss.KeyValue key_value = 2; + */ + public org.vss.KeyValue.Builder getKeyValueBuilder() { + + onChanged(); + return getKeyValueFieldBuilder().getBuilder(); + } + + /** + *
+		 * 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.
+		 * 
+ * + * .vss.KeyValue key_value = 2; + */ + public org.vss.KeyValueOrBuilder getKeyValueOrBuilder() { + if (keyValueBuilder_ != null) { + return keyValueBuilder_.getMessageOrBuilder(); + } else { + return keyValue_ == null ? + org.vss.KeyValue.getDefaultInstance() : keyValue_; + } + } + + /** + *
+		 * 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.
+		 * 
+ * + * .vss.KeyValue key_value = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder> + getKeyValueFieldBuilder() { + if (keyValueBuilder_ == null) { + keyValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder>( + getKeyValue(), + getParentForChildren(), + isClean()); + keyValue_ = null; + } + return keyValueBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.DeleteObjectRequest) + } + + // @@protoc_insertion_point(class_scope:vss.DeleteObjectRequest) + private static final org.vss.DeleteObjectRequest DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.DeleteObjectRequest(); + } + + public static org.vss.DeleteObjectRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DeleteObjectRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.DeleteObjectRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/DeleteObjectRequestOrBuilder.java b/java/app/src/main/generated/proto/org/vss/DeleteObjectRequestOrBuilder.java new file mode 100644 index 0000000..fb5fef4 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/DeleteObjectRequestOrBuilder.java @@ -0,0 +1,103 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface DeleteObjectRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.DeleteObjectRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The storeId. + */ + java.lang.String getStoreId(); + + /** + *
+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The bytes for storeId. + */ + com.google.protobuf.ByteString + getStoreIdBytes(); + + /** + *
+	 * 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.
+	 * 
+ * + * .vss.KeyValue key_value = 2; + * + * @return Whether the keyValue field is set. + */ + boolean hasKeyValue(); + + /** + *
+	 * 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.
+	 * 
+ * + * .vss.KeyValue key_value = 2; + * + * @return The keyValue. + */ + 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.
+	 * 
+ * + * .vss.KeyValue key_value = 2; + */ + org.vss.KeyValueOrBuilder getKeyValueOrBuilder(); +} diff --git a/java/app/src/main/generated/proto/org/vss/DeleteObjectResponse.java b/java/app/src/main/generated/proto/org/vss/DeleteObjectResponse.java new file mode 100644 index 0000000..dcf3603 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/DeleteObjectResponse.java @@ -0,0 +1,439 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *
+ * Server response for `DeleteObject` API.
+ * 
+ *

+ * Protobuf type {@code vss.DeleteObjectResponse} + */ +public final class DeleteObjectResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.DeleteObjectResponse) + DeleteObjectResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use DeleteObjectResponse.newBuilder() to construct. + private DeleteObjectResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private DeleteObjectResponse() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_DeleteObjectResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.DeleteObjectResponse.class, org.vss.DeleteObjectResponse.Builder.class); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.DeleteObjectResponse)) { + return super.equals(obj); + } + org.vss.DeleteObjectResponse other = (org.vss.DeleteObjectResponse) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.DeleteObjectResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.DeleteObjectResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.DeleteObjectResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.DeleteObjectResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.DeleteObjectResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.DeleteObjectResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.DeleteObjectResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.DeleteObjectResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.DeleteObjectResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.DeleteObjectResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.DeleteObjectResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.DeleteObjectResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.DeleteObjectResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *

+	 * Server response for `DeleteObject` API.
+	 * 
+ *

+ * Protobuf type {@code vss.DeleteObjectResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.DeleteObjectResponse) + org.vss.DeleteObjectResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_DeleteObjectResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_DeleteObjectResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.DeleteObjectResponse.class, org.vss.DeleteObjectResponse.Builder.class); + } + + // Construct using org.vss.DeleteObjectResponse.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_DeleteObjectResponse_descriptor; + } + + @java.lang.Override + public org.vss.DeleteObjectResponse getDefaultInstanceForType() { + return org.vss.DeleteObjectResponse.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.DeleteObjectResponse build() { + org.vss.DeleteObjectResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public org.vss.DeleteObjectResponse buildPartial() { + org.vss.DeleteObjectResponse result = new org.vss.DeleteObjectResponse(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.DeleteObjectResponse) { + return mergeFrom((org.vss.DeleteObjectResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.DeleteObjectResponse other) { + if (other == org.vss.DeleteObjectResponse.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.DeleteObjectResponse) + } + + // @@protoc_insertion_point(class_scope:vss.DeleteObjectResponse) + private static final org.vss.DeleteObjectResponse DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.DeleteObjectResponse(); + } + + public static org.vss.DeleteObjectResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DeleteObjectResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.DeleteObjectResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/DeleteObjectResponseOrBuilder.java b/java/app/src/main/generated/proto/org/vss/DeleteObjectResponseOrBuilder.java new file mode 100644 index 0000000..42442e9 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/DeleteObjectResponseOrBuilder.java @@ -0,0 +1,9 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface DeleteObjectResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.DeleteObjectResponse) + com.google.protobuf.MessageOrBuilder { +} diff --git a/java/app/src/main/generated/proto/org/vss/EncryptionMetadata.java b/java/app/src/main/generated/proto/org/vss/EncryptionMetadata.java new file mode 100644 index 0000000..9d2b698 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/EncryptionMetadata.java @@ -0,0 +1,810 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *

+ * Represents encryption related metadata
+ * 
+ *

+ * Protobuf type {@code vss.EncryptionMetadata} + */ +public final class EncryptionMetadata extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.EncryptionMetadata) + EncryptionMetadataOrBuilder { + private static final long serialVersionUID = 0L; + + // Use EncryptionMetadata.newBuilder() to construct. + private EncryptionMetadata(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private EncryptionMetadata() { + cipherFormat_ = ""; + nonce_ = com.google.protobuf.ByteString.EMPTY; + tag_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_EncryptionMetadata_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.EncryptionMetadata.class, org.vss.EncryptionMetadata.Builder.class); + } + + public static final int CIPHER_FORMAT_FIELD_NUMBER = 1; + private volatile java.lang.Object cipherFormat_; + + /** + *

+	 * The encryption algorithm used for encrypting the `PlaintextBlob`.
+	 * 
+ * + * string cipher_format = 1; + * + * @return The cipherFormat. + */ + @java.lang.Override + public java.lang.String getCipherFormat() { + java.lang.Object ref = cipherFormat_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + cipherFormat_ = s; + return s; + } + } + + /** + *
+	 * The encryption algorithm used for encrypting the `PlaintextBlob`.
+	 * 
+ * + * string cipher_format = 1; + * + * @return The bytes for cipherFormat. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCipherFormatBytes() { + java.lang.Object ref = cipherFormat_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + cipherFormat_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int NONCE_FIELD_NUMBER = 2; + private com.google.protobuf.ByteString nonce_; + + /** + *
+	 * The nonce used for encryption. Nonce is a random or unique value used to ensure that the same
+	 * plaintext results in different ciphertexts every time it is encrypted.
+	 * 
+ * + * bytes nonce = 2; + * + * @return The nonce. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNonce() { + return nonce_; + } + + public static final int TAG_FIELD_NUMBER = 3; + private com.google.protobuf.ByteString tag_; + + /** + *
+	 * The authentication tag used for encryption. It provides integrity and authenticity assurance
+	 * for the encrypted data.
+	 * 
+ * + * bytes tag = 3; + * + * @return The tag. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTag() { + return tag_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cipherFormat_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, cipherFormat_); + } + if (!nonce_.isEmpty()) { + output.writeBytes(2, nonce_); + } + if (!tag_.isEmpty()) { + output.writeBytes(3, tag_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cipherFormat_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, cipherFormat_); + } + if (!nonce_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(2, nonce_); + } + if (!tag_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(3, tag_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.EncryptionMetadata)) { + return super.equals(obj); + } + org.vss.EncryptionMetadata other = (org.vss.EncryptionMetadata) obj; + + if (!getCipherFormat() + .equals(other.getCipherFormat())) return false; + if (!getNonce() + .equals(other.getNonce())) return false; + if (!getTag() + .equals(other.getTag())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CIPHER_FORMAT_FIELD_NUMBER; + hash = (53 * hash) + getCipherFormat().hashCode(); + hash = (37 * hash) + NONCE_FIELD_NUMBER; + hash = (53 * hash) + getNonce().hashCode(); + hash = (37 * hash) + TAG_FIELD_NUMBER; + hash = (53 * hash) + getTag().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.EncryptionMetadata parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.EncryptionMetadata parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.EncryptionMetadata parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.EncryptionMetadata parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.EncryptionMetadata parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.EncryptionMetadata parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.EncryptionMetadata parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.EncryptionMetadata parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.EncryptionMetadata parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.EncryptionMetadata parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.EncryptionMetadata parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.EncryptionMetadata parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.EncryptionMetadata prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+	 * Represents encryption related metadata
+	 * 
+ *

+ * Protobuf type {@code vss.EncryptionMetadata} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.EncryptionMetadata) + org.vss.EncryptionMetadataOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_EncryptionMetadata_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_EncryptionMetadata_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.EncryptionMetadata.class, org.vss.EncryptionMetadata.Builder.class); + } + + // Construct using org.vss.EncryptionMetadata.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + cipherFormat_ = ""; + + nonce_ = com.google.protobuf.ByteString.EMPTY; + + tag_ = com.google.protobuf.ByteString.EMPTY; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_EncryptionMetadata_descriptor; + } + + @java.lang.Override + public org.vss.EncryptionMetadata getDefaultInstanceForType() { + return org.vss.EncryptionMetadata.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.EncryptionMetadata build() { + org.vss.EncryptionMetadata result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @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_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.EncryptionMetadata) { + return mergeFrom((org.vss.EncryptionMetadata) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.EncryptionMetadata other) { + if (other == org.vss.EncryptionMetadata.getDefaultInstance()) return this; + if (!other.getCipherFormat().isEmpty()) { + cipherFormat_ = other.cipherFormat_; + onChanged(); + } + if (other.getNonce() != com.google.protobuf.ByteString.EMPTY) { + setNonce(other.getNonce()); + } + if (other.getTag() != com.google.protobuf.ByteString.EMPTY) { + setTag(other.getTag()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + cipherFormat_ = input.readStringRequireUtf8(); + + break; + } // case 10 + case 18: { + nonce_ = input.readBytes(); + + break; + } // case 18 + case 26: { + tag_ = input.readBytes(); + + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private java.lang.Object cipherFormat_ = ""; + + /** + *

+		 * The encryption algorithm used for encrypting the `PlaintextBlob`.
+		 * 
+ * + * string cipher_format = 1; + * + * @return The cipherFormat. + */ + public java.lang.String getCipherFormat() { + java.lang.Object ref = cipherFormat_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + cipherFormat_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + *
+		 * The encryption algorithm used for encrypting the `PlaintextBlob`.
+		 * 
+ * + * string cipher_format = 1; + * + * @return The bytes for cipherFormat. + */ + public com.google.protobuf.ByteString + getCipherFormatBytes() { + java.lang.Object ref = cipherFormat_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + cipherFormat_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + *
+		 * The encryption algorithm used for encrypting the `PlaintextBlob`.
+		 * 
+ * + * string cipher_format = 1; + * + * @param value The cipherFormat to set. + * @return This builder for chaining. + */ + public Builder setCipherFormat( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + cipherFormat_ = value; + onChanged(); + return this; + } + + /** + *
+		 * The encryption algorithm used for encrypting the `PlaintextBlob`.
+		 * 
+ * + * string cipher_format = 1; + * + * @return This builder for chaining. + */ + public Builder clearCipherFormat() { + + cipherFormat_ = getDefaultInstance().getCipherFormat(); + onChanged(); + return this; + } + + /** + *
+		 * The encryption algorithm used for encrypting the `PlaintextBlob`.
+		 * 
+ * + * string cipher_format = 1; + * + * @param value The bytes for cipherFormat to set. + * @return This builder for chaining. + */ + public Builder setCipherFormatBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + cipherFormat_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.ByteString nonce_ = com.google.protobuf.ByteString.EMPTY; + + /** + *
+		 * The nonce used for encryption. Nonce is a random or unique value used to ensure that the same
+		 * plaintext results in different ciphertexts every time it is encrypted.
+		 * 
+ * + * bytes nonce = 2; + * + * @return The nonce. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNonce() { + return nonce_; + } + + /** + *
+		 * The nonce used for encryption. Nonce is a random or unique value used to ensure that the same
+		 * plaintext results in different ciphertexts every time it is encrypted.
+		 * 
+ * + * bytes nonce = 2; + * + * @param value The nonce to set. + * @return This builder for chaining. + */ + public Builder setNonce(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + + nonce_ = value; + onChanged(); + return this; + } + + /** + *
+		 * The nonce used for encryption. Nonce is a random or unique value used to ensure that the same
+		 * plaintext results in different ciphertexts every time it is encrypted.
+		 * 
+ * + * bytes nonce = 2; + * + * @return This builder for chaining. + */ + public Builder clearNonce() { + + nonce_ = getDefaultInstance().getNonce(); + onChanged(); + return this; + } + + private com.google.protobuf.ByteString tag_ = com.google.protobuf.ByteString.EMPTY; + + /** + *
+		 * The authentication tag used for encryption. It provides integrity and authenticity assurance
+		 * for the encrypted data.
+		 * 
+ * + * bytes tag = 3; + * + * @return The tag. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTag() { + return tag_; + } + + /** + *
+		 * The authentication tag used for encryption. It provides integrity and authenticity assurance
+		 * for the encrypted data.
+		 * 
+ * + * bytes tag = 3; + * + * @param value The tag to set. + * @return This builder for chaining. + */ + public Builder setTag(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + + tag_ = value; + onChanged(); + return this; + } + + /** + *
+		 * The authentication tag used for encryption. It provides integrity and authenticity assurance
+		 * for the encrypted data.
+		 * 
+ * + * bytes tag = 3; + * + * @return This builder for chaining. + */ + public Builder clearTag() { + + tag_ = getDefaultInstance().getTag(); + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.EncryptionMetadata) + } + + // @@protoc_insertion_point(class_scope:vss.EncryptionMetadata) + private static final org.vss.EncryptionMetadata DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.EncryptionMetadata(); + } + + public static org.vss.EncryptionMetadata getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public EncryptionMetadata parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.EncryptionMetadata getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/EncryptionMetadataOrBuilder.java b/java/app/src/main/generated/proto/org/vss/EncryptionMetadataOrBuilder.java new file mode 100644 index 0000000..2d51ad5 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/EncryptionMetadataOrBuilder.java @@ -0,0 +1,56 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface EncryptionMetadataOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.EncryptionMetadata) + com.google.protobuf.MessageOrBuilder { + + /** + *
+	 * The encryption algorithm used for encrypting the `PlaintextBlob`.
+	 * 
+ * + * string cipher_format = 1; + * + * @return The cipherFormat. + */ + java.lang.String getCipherFormat(); + + /** + *
+	 * The encryption algorithm used for encrypting the `PlaintextBlob`.
+	 * 
+ * + * string cipher_format = 1; + * + * @return The bytes for cipherFormat. + */ + com.google.protobuf.ByteString + getCipherFormatBytes(); + + /** + *
+	 * The nonce used for encryption. Nonce is a random or unique value used to ensure that the same
+	 * plaintext results in different ciphertexts every time it is encrypted.
+	 * 
+ * + * bytes nonce = 2; + * + * @return The nonce. + */ + com.google.protobuf.ByteString getNonce(); + + /** + *
+	 * The authentication tag used for encryption. It provides integrity and authenticity assurance
+	 * for the encrypted data.
+	 * 
+ * + * bytes tag = 3; + * + * @return The tag. + */ + com.google.protobuf.ByteString getTag(); +} diff --git a/java/app/src/main/generated/proto/org/vss/ErrorCode.java b/java/app/src/main/generated/proto/org/vss/ErrorCode.java new file mode 100644 index 0000000..2775e69 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/ErrorCode.java @@ -0,0 +1,221 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *
+ * ErrorCodes to be used in `ErrorResponse`
+ * 
+ *

+ * Protobuf enum {@code vss.ErrorCode} + */ +public enum ErrorCode + implements com.google.protobuf.ProtocolMessageEnum { + /** + *

+	 * Default protobuf Enum value. Will not be used as `ErrorCode` by server.
+	 * 
+ * + * UNKNOWN = 0; + */ + UNKNOWN(0), + /** + *
+	 * Used when the request contains mismatched version (either key or global)
+	 * in `PutObjectRequest`. For more info refer `PutObjectRequest`.
+	 * 
+ * + * CONFLICT_EXCEPTION = 1; + */ + CONFLICT_EXCEPTION(1), + /** + *
+	 * Used in the following cases:
+	 *   - The request was missing a required argument.
+	 *   - The specified argument was invalid, incomplete or in the wrong format.
+	 *   - The request body of api cannot be deserialized into corresponding protobuf object.
+	 * 
+ * + * INVALID_REQUEST_EXCEPTION = 2; + */ + INVALID_REQUEST_EXCEPTION(2), + /** + *
+	 * Used when an internal server error occurred, client is probably at no fault and can safely retry
+	 * this error with exponential backoff.
+	 * 
+ * + * INTERNAL_SERVER_EXCEPTION = 3; + */ + INTERNAL_SERVER_EXCEPTION(3), + /** + *
+	 * Used when the specified `key` in a `GetObjectRequest` does not exist.
+	 * 
+ * + * NO_SUCH_KEY_EXCEPTION = 4; + */ + NO_SUCH_KEY_EXCEPTION(4), + /** + *
+	 * Used when authentication fails or in case of an unauthorized request.
+	 * 
+ * + * AUTH_EXCEPTION = 5; + */ + AUTH_EXCEPTION(5), + UNRECOGNIZED(-1), + ; + + /** + *
+	 * Default protobuf Enum value. Will not be used as `ErrorCode` by server.
+	 * 
+ * + * UNKNOWN = 0; + */ + public static final int UNKNOWN_VALUE = 0; + /** + *
+	 * Used when the request contains mismatched version (either key or global)
+	 * in `PutObjectRequest`. For more info refer `PutObjectRequest`.
+	 * 
+ * + * CONFLICT_EXCEPTION = 1; + */ + public static final int CONFLICT_EXCEPTION_VALUE = 1; + /** + *
+	 * Used in the following cases:
+	 *   - The request was missing a required argument.
+	 *   - The specified argument was invalid, incomplete or in the wrong format.
+	 *   - The request body of api cannot be deserialized into corresponding protobuf object.
+	 * 
+ * + * INVALID_REQUEST_EXCEPTION = 2; + */ + public static final int INVALID_REQUEST_EXCEPTION_VALUE = 2; + /** + *
+	 * Used when an internal server error occurred, client is probably at no fault and can safely retry
+	 * this error with exponential backoff.
+	 * 
+ * + * INTERNAL_SERVER_EXCEPTION = 3; + */ + public static final int INTERNAL_SERVER_EXCEPTION_VALUE = 3; + /** + *
+	 * Used when the specified `key` in a `GetObjectRequest` does not exist.
+	 * 
+ * + * NO_SUCH_KEY_EXCEPTION = 4; + */ + public static final int NO_SUCH_KEY_EXCEPTION_VALUE = 4; + /** + *
+	 * Used when authentication fails or in case of an unauthorized request.
+	 * 
+ * + * AUTH_EXCEPTION = 5; + */ + public static final int AUTH_EXCEPTION_VALUE = 5; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ErrorCode valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ErrorCode forNumber(int value) { + switch (value) { + case 0: + return UNKNOWN; + case 1: + return CONFLICT_EXCEPTION; + case 2: + return INVALID_REQUEST_EXCEPTION; + case 3: + return INTERNAL_SERVER_EXCEPTION; + case 4: + return NO_SUCH_KEY_EXCEPTION; + case 5: + return AUTH_EXCEPTION; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap< + ErrorCode> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ErrorCode findValueByNumber(int number) { + return ErrorCode.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return org.vss.Vss.getDescriptor().getEnumTypes().get(0); + } + + private static final ErrorCode[] VALUES = values(); + + public static ErrorCode valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ErrorCode(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:vss.ErrorCode) +} + diff --git a/java/app/src/main/generated/proto/org/vss/ErrorResponse.java b/java/app/src/main/generated/proto/org/vss/ErrorResponse.java new file mode 100644 index 0000000..8fb7f69 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/ErrorResponse.java @@ -0,0 +1,788 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *
+ * When HttpStatusCode is not ok (200), the response `content` contains a serialized `ErrorResponse`
+ * with the relevant `ErrorCode` and `message`
+ * 
+ *

+ * Protobuf type {@code vss.ErrorResponse} + */ +public final class ErrorResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.ErrorResponse) + ErrorResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ErrorResponse.newBuilder() to construct. + private ErrorResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ErrorResponse() { + errorCode_ = 0; + message_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_ErrorResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.ErrorResponse.class, org.vss.ErrorResponse.Builder.class); + } + + public static final int ERROR_CODE_FIELD_NUMBER = 1; + private int errorCode_; + + /** + *

+	 * The error code uniquely identifying an error condition.
+	 * It is meant to be read and understood programmatically by code that detects/handles errors by
+	 * type.
+	 * 
+ * + * .vss.ErrorCode error_code = 1; + * + * @return The enum numeric value on the wire for errorCode. + */ + @java.lang.Override + public int getErrorCodeValue() { + return errorCode_; + } + + /** + *
+	 * The error code uniquely identifying an error condition.
+	 * It is meant to be read and understood programmatically by code that detects/handles errors by
+	 * type.
+	 * 
+ * + * .vss.ErrorCode error_code = 1; + * + * @return The errorCode. + */ + @java.lang.Override + public org.vss.ErrorCode getErrorCode() { + @SuppressWarnings("deprecation") + org.vss.ErrorCode result = org.vss.ErrorCode.valueOf(errorCode_); + return result == null ? org.vss.ErrorCode.UNRECOGNIZED : result; + } + + public static final int MESSAGE_FIELD_NUMBER = 2; + private volatile java.lang.Object message_; + + /** + *
+	 * The error message containing a generic description of the error condition in English.
+	 * It is intended for a human audience only and should not be parsed to extract any information
+	 * programmatically. Client-side code may use it for logging only.
+	 * 
+ * + * string message = 2; + * + * @return The message. + */ + @java.lang.Override + public java.lang.String getMessage() { + java.lang.Object ref = message_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + message_ = s; + return s; + } + } + + /** + *
+	 * The error message containing a generic description of the error condition in English.
+	 * It is intended for a human audience only and should not be parsed to extract any information
+	 * programmatically. Client-side code may use it for logging only.
+	 * 
+ * + * string message = 2; + * + * @return The bytes for message. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMessageBytes() { + java.lang.Object ref = message_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + message_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (errorCode_ != org.vss.ErrorCode.UNKNOWN.getNumber()) { + output.writeEnum(1, errorCode_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, message_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (errorCode_ != org.vss.ErrorCode.UNKNOWN.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, errorCode_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, message_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.ErrorResponse)) { + return super.equals(obj); + } + org.vss.ErrorResponse other = (org.vss.ErrorResponse) obj; + + if (errorCode_ != other.errorCode_) return false; + if (!getMessage() + .equals(other.getMessage())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ERROR_CODE_FIELD_NUMBER; + hash = (53 * hash) + errorCode_; + hash = (37 * hash) + MESSAGE_FIELD_NUMBER; + hash = (53 * hash) + getMessage().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.ErrorResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.ErrorResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.ErrorResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.ErrorResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.ErrorResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.ErrorResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.ErrorResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.ErrorResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.ErrorResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.ErrorResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.ErrorResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.ErrorResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.ErrorResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+	 * When HttpStatusCode is not ok (200), the response `content` contains a serialized `ErrorResponse`
+	 * with the relevant `ErrorCode` and `message`
+	 * 
+ *

+ * Protobuf type {@code vss.ErrorResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.ErrorResponse) + org.vss.ErrorResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_ErrorResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_ErrorResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.ErrorResponse.class, org.vss.ErrorResponse.Builder.class); + } + + // Construct using org.vss.ErrorResponse.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + errorCode_ = 0; + + message_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_ErrorResponse_descriptor; + } + + @java.lang.Override + public org.vss.ErrorResponse getDefaultInstanceForType() { + return org.vss.ErrorResponse.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.ErrorResponse build() { + org.vss.ErrorResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public org.vss.ErrorResponse buildPartial() { + org.vss.ErrorResponse result = new org.vss.ErrorResponse(this); + result.errorCode_ = errorCode_; + result.message_ = message_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.ErrorResponse) { + return mergeFrom((org.vss.ErrorResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.ErrorResponse other) { + if (other == org.vss.ErrorResponse.getDefaultInstance()) return this; + if (other.errorCode_ != 0) { + setErrorCodeValue(other.getErrorCodeValue()); + } + if (!other.getMessage().isEmpty()) { + message_ = other.message_; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + errorCode_ = input.readEnum(); + + break; + } // case 8 + case 18: { + message_ = input.readStringRequireUtf8(); + + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int errorCode_ = 0; + + /** + *

+		 * The error code uniquely identifying an error condition.
+		 * It is meant to be read and understood programmatically by code that detects/handles errors by
+		 * type.
+		 * 
+ * + * .vss.ErrorCode error_code = 1; + * + * @return The enum numeric value on the wire for errorCode. + */ + @java.lang.Override + public int getErrorCodeValue() { + return errorCode_; + } + + /** + *
+		 * The error code uniquely identifying an error condition.
+		 * It is meant to be read and understood programmatically by code that detects/handles errors by
+		 * type.
+		 * 
+ * + * .vss.ErrorCode error_code = 1; + * + * @param value The enum numeric value on the wire for errorCode to set. + * @return This builder for chaining. + */ + public Builder setErrorCodeValue(int value) { + + errorCode_ = value; + onChanged(); + return this; + } + + /** + *
+		 * The error code uniquely identifying an error condition.
+		 * It is meant to be read and understood programmatically by code that detects/handles errors by
+		 * type.
+		 * 
+ * + * .vss.ErrorCode error_code = 1; + * + * @return The errorCode. + */ + @java.lang.Override + public org.vss.ErrorCode getErrorCode() { + @SuppressWarnings("deprecation") + org.vss.ErrorCode result = org.vss.ErrorCode.valueOf(errorCode_); + return result == null ? org.vss.ErrorCode.UNRECOGNIZED : result; + } + + /** + *
+		 * The error code uniquely identifying an error condition.
+		 * It is meant to be read and understood programmatically by code that detects/handles errors by
+		 * type.
+		 * 
+ * + * .vss.ErrorCode error_code = 1; + * + * @param value The errorCode to set. + * @return This builder for chaining. + */ + public Builder setErrorCode(org.vss.ErrorCode value) { + if (value == null) { + throw new NullPointerException(); + } + + errorCode_ = value.getNumber(); + onChanged(); + return this; + } + + /** + *
+		 * The error code uniquely identifying an error condition.
+		 * It is meant to be read and understood programmatically by code that detects/handles errors by
+		 * type.
+		 * 
+ * + * .vss.ErrorCode error_code = 1; + * + * @return This builder for chaining. + */ + public Builder clearErrorCode() { + + errorCode_ = 0; + onChanged(); + return this; + } + + private java.lang.Object message_ = ""; + + /** + *
+		 * The error message containing a generic description of the error condition in English.
+		 * It is intended for a human audience only and should not be parsed to extract any information
+		 * programmatically. Client-side code may use it for logging only.
+		 * 
+ * + * string message = 2; + * + * @return The message. + */ + public java.lang.String getMessage() { + java.lang.Object ref = message_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + message_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + *
+		 * The error message containing a generic description of the error condition in English.
+		 * It is intended for a human audience only and should not be parsed to extract any information
+		 * programmatically. Client-side code may use it for logging only.
+		 * 
+ * + * string message = 2; + * + * @return The bytes for message. + */ + public com.google.protobuf.ByteString + getMessageBytes() { + java.lang.Object ref = message_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + message_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + *
+		 * The error message containing a generic description of the error condition in English.
+		 * It is intended for a human audience only and should not be parsed to extract any information
+		 * programmatically. Client-side code may use it for logging only.
+		 * 
+ * + * string message = 2; + * + * @param value The message to set. + * @return This builder for chaining. + */ + public Builder setMessage( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + message_ = value; + onChanged(); + return this; + } + + /** + *
+		 * The error message containing a generic description of the error condition in English.
+		 * It is intended for a human audience only and should not be parsed to extract any information
+		 * programmatically. Client-side code may use it for logging only.
+		 * 
+ * + * string message = 2; + * + * @return This builder for chaining. + */ + public Builder clearMessage() { + + message_ = getDefaultInstance().getMessage(); + onChanged(); + return this; + } + + /** + *
+		 * The error message containing a generic description of the error condition in English.
+		 * It is intended for a human audience only and should not be parsed to extract any information
+		 * programmatically. Client-side code may use it for logging only.
+		 * 
+ * + * string message = 2; + * + * @param value The bytes for message to set. + * @return This builder for chaining. + */ + public Builder setMessageBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + message_ = value; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.ErrorResponse) + } + + // @@protoc_insertion_point(class_scope:vss.ErrorResponse) + private static final org.vss.ErrorResponse DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.ErrorResponse(); + } + + public static org.vss.ErrorResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ErrorResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.ErrorResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/ErrorResponseOrBuilder.java b/java/app/src/main/generated/proto/org/vss/ErrorResponseOrBuilder.java new file mode 100644 index 0000000..3dd0a08 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/ErrorResponseOrBuilder.java @@ -0,0 +1,62 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface ErrorResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.ErrorResponse) + com.google.protobuf.MessageOrBuilder { + + /** + *
+	 * The error code uniquely identifying an error condition.
+	 * It is meant to be read and understood programmatically by code that detects/handles errors by
+	 * type.
+	 * 
+ * + * .vss.ErrorCode error_code = 1; + * + * @return The enum numeric value on the wire for errorCode. + */ + int getErrorCodeValue(); + + /** + *
+	 * The error code uniquely identifying an error condition.
+	 * It is meant to be read and understood programmatically by code that detects/handles errors by
+	 * type.
+	 * 
+ * + * .vss.ErrorCode error_code = 1; + * + * @return The errorCode. + */ + org.vss.ErrorCode getErrorCode(); + + /** + *
+	 * The error message containing a generic description of the error condition in English.
+	 * It is intended for a human audience only and should not be parsed to extract any information
+	 * programmatically. Client-side code may use it for logging only.
+	 * 
+ * + * string message = 2; + * + * @return The message. + */ + java.lang.String getMessage(); + + /** + *
+	 * The error message containing a generic description of the error condition in English.
+	 * It is intended for a human audience only and should not be parsed to extract any information
+	 * programmatically. Client-side code may use it for logging only.
+	 * 
+ * + * string message = 2; + * + * @return The bytes for message. + */ + com.google.protobuf.ByteString + getMessageBytes(); +} diff --git a/java/app/src/main/generated/proto/org/vss/GetObjectRequest.java b/java/app/src/main/generated/proto/org/vss/GetObjectRequest.java new file mode 100644 index 0000000..eb8e69b --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/GetObjectRequest.java @@ -0,0 +1,888 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *
+ * Request payload to be used for `GetObject` API call to server.
+ * 
+ *

+ * Protobuf type {@code vss.GetObjectRequest} + */ +public final class GetObjectRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.GetObjectRequest) + GetObjectRequestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use GetObjectRequest.newBuilder() to construct. + private GetObjectRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private GetObjectRequest() { + storeId_ = ""; + key_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_GetObjectRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.GetObjectRequest.class, org.vss.GetObjectRequest.Builder.class); + } + + public static final int STORE_ID_FIELD_NUMBER = 1; + private volatile java.lang.Object storeId_; + + /** + *

+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The storeId. + */ + @java.lang.Override + public java.lang.String getStoreId() { + java.lang.Object ref = storeId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + storeId_ = s; + return s; + } + } + + /** + *
+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The bytes for storeId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getStoreIdBytes() { + java.lang.Object ref = storeId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + storeId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int KEY_FIELD_NUMBER = 2; + 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
+	 * 
+ * + * string key = 2; + * + * @return The key. + */ + @java.lang.Override + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } + } + + /** + *
+	 * 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
+	 * 
+ * + * string key = 2; + * + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(storeId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, storeId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, key_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(storeId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, storeId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, key_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.GetObjectRequest)) { + return super.equals(obj); + } + org.vss.GetObjectRequest other = (org.vss.GetObjectRequest) obj; + + if (!getStoreId() + .equals(other.getStoreId())) return false; + if (!getKey() + .equals(other.getKey())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + STORE_ID_FIELD_NUMBER; + hash = (53 * hash) + getStoreId().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.GetObjectRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.GetObjectRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.GetObjectRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.GetObjectRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.GetObjectRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.GetObjectRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.GetObjectRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.GetObjectRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.GetObjectRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.GetObjectRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.GetObjectRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.GetObjectRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.GetObjectRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+	 * Request payload to be used for `GetObject` API call to server.
+	 * 
+ *

+ * Protobuf type {@code vss.GetObjectRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.GetObjectRequest) + org.vss.GetObjectRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_GetObjectRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_GetObjectRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.GetObjectRequest.class, org.vss.GetObjectRequest.Builder.class); + } + + // Construct using org.vss.GetObjectRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + storeId_ = ""; + + key_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_GetObjectRequest_descriptor; + } + + @java.lang.Override + public org.vss.GetObjectRequest getDefaultInstanceForType() { + return org.vss.GetObjectRequest.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.GetObjectRequest build() { + org.vss.GetObjectRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public org.vss.GetObjectRequest buildPartial() { + org.vss.GetObjectRequest result = new org.vss.GetObjectRequest(this); + result.storeId_ = storeId_; + result.key_ = key_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.GetObjectRequest) { + return mergeFrom((org.vss.GetObjectRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.GetObjectRequest other) { + if (other == org.vss.GetObjectRequest.getDefaultInstance()) return this; + if (!other.getStoreId().isEmpty()) { + storeId_ = other.storeId_; + onChanged(); + } + if (!other.getKey().isEmpty()) { + key_ = other.key_; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + storeId_ = input.readStringRequireUtf8(); + + break; + } // case 10 + case 18: { + key_ = input.readStringRequireUtf8(); + + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private java.lang.Object storeId_ = ""; + + /** + *

+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @return The storeId. + */ + public java.lang.String getStoreId() { + java.lang.Object ref = storeId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + storeId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @return The bytes for storeId. + */ + public com.google.protobuf.ByteString + getStoreIdBytes() { + java.lang.Object ref = storeId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + storeId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @param value The storeId to set. + * @return This builder for chaining. + */ + public Builder setStoreId( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + storeId_ = value; + onChanged(); + return this; + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @return This builder for chaining. + */ + public Builder clearStoreId() { + + storeId_ = getDefaultInstance().getStoreId(); + onChanged(); + return this; + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @param value The bytes for storeId to set. + * @return This builder for chaining. + */ + public Builder setStoreIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + storeId_ = value; + onChanged(); + return this; + } + + private 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
+		 * 
+ * + * string key = 2; + * + * @return The key. + */ + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + *
+		 * 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
+		 * 
+ * + * string key = 2; + * + * @return The bytes for key. + */ + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + *
+		 * 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
+		 * 
+ * + * string key = 2; + * + * @param value The key to set. + * @return This builder for chaining. + */ + public Builder setKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + key_ = value; + onChanged(); + return this; + } + + /** + *
+		 * 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
+		 * 
+ * + * string key = 2; + * + * @return This builder for chaining. + */ + public Builder clearKey() { + + key_ = getDefaultInstance().getKey(); + onChanged(); + return this; + } + + /** + *
+		 * 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
+		 * 
+ * + * string key = 2; + * + * @param value The bytes for key to set. + * @return This builder for chaining. + */ + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + key_ = value; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.GetObjectRequest) + } + + // @@protoc_insertion_point(class_scope:vss.GetObjectRequest) + private static final org.vss.GetObjectRequest DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.GetObjectRequest(); + } + + public static org.vss.GetObjectRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetObjectRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.GetObjectRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/GetObjectRequestOrBuilder.java b/java/app/src/main/generated/proto/org/vss/GetObjectRequestOrBuilder.java new file mode 100644 index 0000000..e57542d --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/GetObjectRequestOrBuilder.java @@ -0,0 +1,81 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface GetObjectRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.GetObjectRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The storeId. + */ + java.lang.String getStoreId(); + + /** + *
+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The bytes for storeId. + */ + com.google.protobuf.ByteString + getStoreIdBytes(); + + /** + *
+	 * 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
+	 * 
+ * + * string key = 2; + * + * @return The key. + */ + 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
+	 * 
+ * + * string key = 2; + * + * @return The bytes for key. + */ + com.google.protobuf.ByteString + getKeyBytes(); +} diff --git a/java/app/src/main/generated/proto/org/vss/GetObjectResponse.java b/java/app/src/main/generated/proto/org/vss/GetObjectResponse.java new file mode 100644 index 0000000..e4bf9dd --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/GetObjectResponse.java @@ -0,0 +1,685 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *
+ * Server response for `GetObject` API.
+ * 
+ *

+ * Protobuf type {@code vss.GetObjectResponse} + */ +public final class GetObjectResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.GetObjectResponse) + GetObjectResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use GetObjectResponse.newBuilder() to construct. + private GetObjectResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private GetObjectResponse() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_GetObjectResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.GetObjectResponse.class, org.vss.GetObjectResponse.Builder.class); + } + + public static final int VALUE_FIELD_NUMBER = 2; + private org.vss.KeyValue value_; + + /** + *

+	 * Fetched `value` and `version` along with the corresponding `key` in the request.
+	 * 
+ * + * .vss.KeyValue value = 2; + * + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return value_ != null; + } + + /** + *
+	 * Fetched `value` and `version` along with the corresponding `key` in the request.
+	 * 
+ * + * .vss.KeyValue value = 2; + * + * @return The value. + */ + @java.lang.Override + public org.vss.KeyValue getValue() { + return value_ == null ? org.vss.KeyValue.getDefaultInstance() : value_; + } + + /** + *
+	 * Fetched `value` and `version` along with the corresponding `key` in the request.
+	 * 
+ * + * .vss.KeyValue value = 2; + */ + @java.lang.Override + public org.vss.KeyValueOrBuilder getValueOrBuilder() { + return getValue(); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (value_ != null) { + output.writeMessage(2, getValue()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (value_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getValue()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.GetObjectResponse)) { + return super.equals(obj); + } + org.vss.GetObjectResponse other = (org.vss.GetObjectResponse) obj; + + if (hasValue() != other.hasValue()) return false; + if (hasValue()) { + if (!getValue() + .equals(other.getValue())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasValue()) { + hash = (37 * hash) + VALUE_FIELD_NUMBER; + hash = (53 * hash) + getValue().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.GetObjectResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.GetObjectResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.GetObjectResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.GetObjectResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.GetObjectResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.GetObjectResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.GetObjectResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.GetObjectResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.GetObjectResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.GetObjectResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.GetObjectResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.GetObjectResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.GetObjectResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+	 * Server response for `GetObject` API.
+	 * 
+ *

+ * Protobuf type {@code vss.GetObjectResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.GetObjectResponse) + org.vss.GetObjectResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_GetObjectResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_GetObjectResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.GetObjectResponse.class, org.vss.GetObjectResponse.Builder.class); + } + + // Construct using org.vss.GetObjectResponse.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + if (valueBuilder_ == null) { + value_ = null; + } else { + value_ = null; + valueBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_GetObjectResponse_descriptor; + } + + @java.lang.Override + public org.vss.GetObjectResponse getDefaultInstanceForType() { + return org.vss.GetObjectResponse.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.GetObjectResponse build() { + org.vss.GetObjectResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @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(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.GetObjectResponse) { + return mergeFrom((org.vss.GetObjectResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.GetObjectResponse other) { + if (other == org.vss.GetObjectResponse.getDefaultInstance()) return this; + if (other.hasValue()) { + mergeValue(other.getValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 18: { + input.readMessage( + getValueFieldBuilder().getBuilder(), + extensionRegistry); + + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private org.vss.KeyValue value_; + private com.google.protobuf.SingleFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder> valueBuilder_; + + /** + *

+		 * Fetched `value` and `version` along with the corresponding `key` in the request.
+		 * 
+ * + * .vss.KeyValue value = 2; + * + * @return Whether the value field is set. + */ + public boolean hasValue() { + return valueBuilder_ != null || value_ != null; + } + + /** + *
+		 * Fetched `value` and `version` along with the corresponding `key` in the request.
+		 * 
+ * + * .vss.KeyValue value = 2; + * + * @return The value. + */ + public org.vss.KeyValue getValue() { + if (valueBuilder_ == null) { + return value_ == null ? org.vss.KeyValue.getDefaultInstance() : value_; + } else { + return valueBuilder_.getMessage(); + } + } + + /** + *
+		 * Fetched `value` and `version` along with the corresponding `key` in the request.
+		 * 
+ * + * .vss.KeyValue value = 2; + */ + public Builder setValue(org.vss.KeyValue value) { + if (valueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + value_ = value; + onChanged(); + } else { + valueBuilder_.setMessage(value); + } + + return this; + } + + /** + *
+		 * Fetched `value` and `version` along with the corresponding `key` in the request.
+		 * 
+ * + * .vss.KeyValue value = 2; + */ + public Builder setValue( + org.vss.KeyValue.Builder builderForValue) { + if (valueBuilder_ == null) { + value_ = builderForValue.build(); + onChanged(); + } else { + valueBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + + /** + *
+		 * Fetched `value` and `version` along with the corresponding `key` in the request.
+		 * 
+ * + * .vss.KeyValue value = 2; + */ + public Builder mergeValue(org.vss.KeyValue value) { + if (valueBuilder_ == null) { + if (value_ != null) { + value_ = + org.vss.KeyValue.newBuilder(value_).mergeFrom(value).buildPartial(); + } else { + value_ = value; + } + onChanged(); + } else { + valueBuilder_.mergeFrom(value); + } + + return this; + } + + /** + *
+		 * Fetched `value` and `version` along with the corresponding `key` in the request.
+		 * 
+ * + * .vss.KeyValue value = 2; + */ + public Builder clearValue() { + if (valueBuilder_ == null) { + value_ = null; + onChanged(); + } else { + value_ = null; + valueBuilder_ = null; + } + + return this; + } + + /** + *
+		 * Fetched `value` and `version` along with the corresponding `key` in the request.
+		 * 
+ * + * .vss.KeyValue value = 2; + */ + public org.vss.KeyValue.Builder getValueBuilder() { + + onChanged(); + return getValueFieldBuilder().getBuilder(); + } + + /** + *
+		 * Fetched `value` and `version` along with the corresponding `key` in the request.
+		 * 
+ * + * .vss.KeyValue value = 2; + */ + public org.vss.KeyValueOrBuilder getValueOrBuilder() { + if (valueBuilder_ != null) { + return valueBuilder_.getMessageOrBuilder(); + } else { + return value_ == null ? + org.vss.KeyValue.getDefaultInstance() : value_; + } + } + + /** + *
+		 * Fetched `value` and `version` along with the corresponding `key` in the request.
+		 * 
+ * + * .vss.KeyValue value = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder> + getValueFieldBuilder() { + if (valueBuilder_ == null) { + valueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder>( + getValue(), + getParentForChildren(), + isClean()); + value_ = null; + } + return valueBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.GetObjectResponse) + } + + // @@protoc_insertion_point(class_scope:vss.GetObjectResponse) + private static final org.vss.GetObjectResponse DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.GetObjectResponse(); + } + + public static org.vss.GetObjectResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetObjectResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.GetObjectResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/GetObjectResponseOrBuilder.java b/java/app/src/main/generated/proto/org/vss/GetObjectResponseOrBuilder.java new file mode 100644 index 0000000..19be268 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/GetObjectResponseOrBuilder.java @@ -0,0 +1,40 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface GetObjectResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.GetObjectResponse) + com.google.protobuf.MessageOrBuilder { + + /** + *
+	 * Fetched `value` and `version` along with the corresponding `key` in the request.
+	 * 
+ * + * .vss.KeyValue value = 2; + * + * @return Whether the value field is set. + */ + boolean hasValue(); + + /** + *
+	 * Fetched `value` and `version` along with the corresponding `key` in the request.
+	 * 
+ * + * .vss.KeyValue value = 2; + * + * @return The value. + */ + org.vss.KeyValue getValue(); + + /** + *
+	 * Fetched `value` and `version` along with the corresponding `key` in the request.
+	 * 
+ * + * .vss.KeyValue value = 2; + */ + org.vss.KeyValueOrBuilder getValueOrBuilder(); +} diff --git a/java/app/src/main/generated/proto/org/vss/KeyValue.java b/java/app/src/main/generated/proto/org/vss/KeyValue.java new file mode 100644 index 0000000..1ef1fa8 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/KeyValue.java @@ -0,0 +1,831 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *
+ * Represents a key-value pair to be stored or retrieved.
+ * 
+ *

+ * Protobuf type {@code vss.KeyValue} + */ +public final class KeyValue extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.KeyValue) + KeyValueOrBuilder { + private static final long serialVersionUID = 0L; + + // Use KeyValue.newBuilder() to construct. + private KeyValue(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private KeyValue() { + key_ = ""; + value_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_KeyValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.KeyValue.class, org.vss.KeyValue.Builder.class); + } + + public static final int KEY_FIELD_NUMBER = 1; + private volatile java.lang.Object key_; + + /** + *

+	 * Key against which the value is stored.
+	 * 
+ * + * string key = 1; + * + * @return The key. + */ + @java.lang.Override + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } + } + + /** + *
+	 * Key against which the value is stored.
+	 * 
+ * + * string key = 1; + * + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VERSION_FIELD_NUMBER = 2; + private long version_; + + /** + *
+	 * Version field is used for key-level versioning.
+	 * For first write of key, `version` should be '0'. If the write succeeds, clients must increment
+	 * their corresponding key version (client-side) by 1.
+	 * The server increments key version (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.
+	 * 
+ * + * int64 version = 2; + * + * @return The version. + */ + @java.lang.Override + public long getVersion() { + return version_; + } + + public static final int VALUE_FIELD_NUMBER = 3; + private com.google.protobuf.ByteString value_; + + /** + *
+	 * Object value in bytes which is stored (in put) and fetched (in get).
+	 * Clients must encrypt the secret contents of this blob client-side before sending it over the
+	 * wire to the server in order to preserve privacy and security.
+	 * Clients may use a `Storable` object, serialize it and set it here.
+	 * 
+ * + * bytes value = 3; + * + * @return The value. + */ + @java.lang.Override + public com.google.protobuf.ByteString getValue() { + return value_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); + } + if (version_ != 0L) { + output.writeInt64(2, version_); + } + if (!value_.isEmpty()) { + output.writeBytes(3, value_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); + } + if (version_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, version_); + } + if (!value_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(3, value_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.KeyValue)) { + return super.equals(obj); + } + org.vss.KeyValue other = (org.vss.KeyValue) obj; + + if (!getKey() + .equals(other.getKey())) return false; + if (getVersion() + != other.getVersion()) return false; + if (!getValue() + .equals(other.getValue())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); + hash = (37 * hash) + VERSION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getVersion()); + hash = (37 * hash) + VALUE_FIELD_NUMBER; + hash = (53 * hash) + getValue().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.KeyValue parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.KeyValue parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.KeyValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.KeyValue parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.KeyValue parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.KeyValue parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.KeyValue parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.KeyValue parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.KeyValue parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.KeyValue parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.KeyValue parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.KeyValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.KeyValue prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+	 * Represents a key-value pair to be stored or retrieved.
+	 * 
+ *

+ * Protobuf type {@code vss.KeyValue} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.KeyValue) + org.vss.KeyValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_KeyValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_KeyValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.KeyValue.class, org.vss.KeyValue.Builder.class); + } + + // Construct using org.vss.KeyValue.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + key_ = ""; + + version_ = 0L; + + value_ = com.google.protobuf.ByteString.EMPTY; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_KeyValue_descriptor; + } + + @java.lang.Override + public org.vss.KeyValue getDefaultInstanceForType() { + return org.vss.KeyValue.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.KeyValue build() { + org.vss.KeyValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @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_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.KeyValue) { + return mergeFrom((org.vss.KeyValue) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.KeyValue other) { + if (other == org.vss.KeyValue.getDefaultInstance()) return this; + if (!other.getKey().isEmpty()) { + key_ = other.key_; + onChanged(); + } + if (other.getVersion() != 0L) { + setVersion(other.getVersion()); + } + if (other.getValue() != com.google.protobuf.ByteString.EMPTY) { + setValue(other.getValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + key_ = input.readStringRequireUtf8(); + + break; + } // case 10 + case 16: { + version_ = input.readInt64(); + + break; + } // case 16 + case 26: { + value_ = input.readBytes(); + + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private java.lang.Object key_ = ""; + + /** + *

+		 * Key against which the value is stored.
+		 * 
+ * + * string key = 1; + * + * @return The key. + */ + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + *
+		 * Key against which the value is stored.
+		 * 
+ * + * string key = 1; + * + * @return The bytes for key. + */ + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + *
+		 * Key against which the value is stored.
+		 * 
+ * + * string key = 1; + * + * @param value The key to set. + * @return This builder for chaining. + */ + public Builder setKey( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + key_ = value; + onChanged(); + return this; + } + + /** + *
+		 * Key against which the value is stored.
+		 * 
+ * + * string key = 1; + * + * @return This builder for chaining. + */ + public Builder clearKey() { + + key_ = getDefaultInstance().getKey(); + onChanged(); + return this; + } + + /** + *
+		 * Key against which the value is stored.
+		 * 
+ * + * string key = 1; + * + * @param value The bytes for key to set. + * @return This builder for chaining. + */ + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + key_ = value; + onChanged(); + return this; + } + + private long version_; + + /** + *
+		 * Version field is used for key-level versioning.
+		 * For first write of key, `version` should be '0'. If the write succeeds, clients must increment
+		 * their corresponding key version (client-side) by 1.
+		 * The server increments key version (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.
+		 * 
+ * + * int64 version = 2; + * + * @return The version. + */ + @java.lang.Override + public long getVersion() { + return version_; + } + + /** + *
+		 * Version field is used for key-level versioning.
+		 * For first write of key, `version` should be '0'. If the write succeeds, clients must increment
+		 * their corresponding key version (client-side) by 1.
+		 * The server increments key version (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.
+		 * 
+ * + * int64 version = 2; + * + * @param value The version to set. + * @return This builder for chaining. + */ + public Builder setVersion(long value) { + + version_ = value; + onChanged(); + return this; + } + + /** + *
+		 * Version field is used for key-level versioning.
+		 * For first write of key, `version` should be '0'. If the write succeeds, clients must increment
+		 * their corresponding key version (client-side) by 1.
+		 * The server increments key version (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.
+		 * 
+ * + * int64 version = 2; + * + * @return This builder for chaining. + */ + public Builder clearVersion() { + + version_ = 0L; + onChanged(); + return this; + } + + private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY; + + /** + *
+		 * Object value in bytes which is stored (in put) and fetched (in get).
+		 * Clients must encrypt the secret contents of this blob client-side before sending it over the
+		 * wire to the server in order to preserve privacy and security.
+		 * Clients may use a `Storable` object, serialize it and set it here.
+		 * 
+ * + * bytes value = 3; + * + * @return The value. + */ + @java.lang.Override + public com.google.protobuf.ByteString getValue() { + return value_; + } + + /** + *
+		 * Object value in bytes which is stored (in put) and fetched (in get).
+		 * Clients must encrypt the secret contents of this blob client-side before sending it over the
+		 * wire to the server in order to preserve privacy and security.
+		 * Clients may use a `Storable` object, serialize it and set it here.
+		 * 
+ * + * bytes value = 3; + * + * @param value The value to set. + * @return This builder for chaining. + */ + public Builder setValue(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + + value_ = value; + onChanged(); + return this; + } + + /** + *
+		 * Object value in bytes which is stored (in put) and fetched (in get).
+		 * Clients must encrypt the secret contents of this blob client-side before sending it over the
+		 * wire to the server in order to preserve privacy and security.
+		 * Clients may use a `Storable` object, serialize it and set it here.
+		 * 
+ * + * bytes value = 3; + * + * @return This builder for chaining. + */ + public Builder clearValue() { + + value_ = getDefaultInstance().getValue(); + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.KeyValue) + } + + // @@protoc_insertion_point(class_scope:vss.KeyValue) + private static final org.vss.KeyValue DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.KeyValue(); + } + + public static org.vss.KeyValue getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public KeyValue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.KeyValue getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/KeyValueOrBuilder.java b/java/app/src/main/generated/proto/org/vss/KeyValueOrBuilder.java new file mode 100644 index 0000000..1728e8d --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/KeyValueOrBuilder.java @@ -0,0 +1,62 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface KeyValueOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.KeyValue) + com.google.protobuf.MessageOrBuilder { + + /** + *
+	 * Key against which the value is stored.
+	 * 
+ * + * string key = 1; + * + * @return The key. + */ + java.lang.String getKey(); + + /** + *
+	 * Key against which the value is stored.
+	 * 
+ * + * string key = 1; + * + * @return The bytes for key. + */ + com.google.protobuf.ByteString + getKeyBytes(); + + /** + *
+	 * Version field is used for key-level versioning.
+	 * For first write of key, `version` should be '0'. If the write succeeds, clients must increment
+	 * their corresponding key version (client-side) by 1.
+	 * The server increments key version (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.
+	 * 
+ * + * int64 version = 2; + * + * @return The version. + */ + long getVersion(); + + /** + *
+	 * Object value in bytes which is stored (in put) and fetched (in get).
+	 * Clients must encrypt the secret contents of this blob client-side before sending it over the
+	 * wire to the server in order to preserve privacy and security.
+	 * Clients may use a `Storable` object, serialize it and set it here.
+	 * 
+ * + * bytes value = 3; + * + * @return The value. + */ + com.google.protobuf.ByteString getValue(); +} diff --git a/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequest.java b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequest.java new file mode 100644 index 0000000..af516f8 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequest.java @@ -0,0 +1,1303 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *
+ * Request payload to be used for `ListKeyVersions` API call to server.
+ * 
+ *

+ * Protobuf type {@code vss.ListKeyVersionsRequest} + */ +public final class ListKeyVersionsRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.ListKeyVersionsRequest) + ListKeyVersionsRequestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ListKeyVersionsRequest.newBuilder() to construct. + private ListKeyVersionsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ListKeyVersionsRequest() { + storeId_ = ""; + keyPrefix_ = ""; + pageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_ListKeyVersionsRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.ListKeyVersionsRequest.class, org.vss.ListKeyVersionsRequest.Builder.class); + } + + private int bitField0_; + public static final int STORE_ID_FIELD_NUMBER = 1; + private volatile java.lang.Object storeId_; + + /** + *

+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The storeId. + */ + @java.lang.Override + public java.lang.String getStoreId() { + java.lang.Object ref = storeId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + storeId_ = s; + return s; + } + } + + /** + *
+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The bytes for storeId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getStoreIdBytes() { + java.lang.Object ref = storeId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + storeId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int KEY_PREFIX_FIELD_NUMBER = 2; + 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.
+	 * 
+ * + * optional string key_prefix = 2; + * + * @return Whether the keyPrefix field is set. + */ + @java.lang.Override + public boolean hasKeyPrefix() { + return ((bitField0_ & 0x00000001) != 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.
+	 * 
+ * + * optional string key_prefix = 2; + * + * @return The keyPrefix. + */ + @java.lang.Override + public java.lang.String getKeyPrefix() { + java.lang.Object ref = keyPrefix_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + keyPrefix_ = s; + return s; + } + } + + /** + *
+	 * 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.
+	 * 
+ * + * optional string key_prefix = 2; + * + * @return The bytes for keyPrefix. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyPrefixBytes() { + java.lang.Object ref = keyPrefix_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + keyPrefix_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PAGE_SIZE_FIELD_NUMBER = 3; + private int pageSize_; + + /** + *
+	 * `page_size` is used by clients to specify the maximum number of results that can be returned by
+	 * the server.
+	 * The server may further constrain the maximum number of results returned in a single page.
+	 * If the `page_size` is 0 or not set, the server will decide the number of results to be returned.
+	 * 
+ * + * optional int32 page_size = 3; + * + * @return Whether the pageSize field is set. + */ + @java.lang.Override + public boolean hasPageSize() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + *
+	 * `page_size` is used by clients to specify the maximum number of results that can be returned by
+	 * the server.
+	 * The server may further constrain the maximum number of results returned in a single page.
+	 * If the `page_size` is 0 or not set, the server will decide the number of results to be returned.
+	 * 
+ * + * optional int32 page_size = 3; + * + * @return The pageSize. + */ + @java.lang.Override + public int getPageSize() { + return pageSize_; + } + + public static final int PAGE_TOKEN_FIELD_NUMBER = 4; + 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`.
+	 * 
+ * + * optional string page_token = 4; + * + * @return Whether the pageToken field is set. + */ + @java.lang.Override + public boolean hasPageToken() { + return ((bitField0_ & 0x00000004) != 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`.
+	 * 
+ * + * optional string page_token = 4; + * + * @return The pageToken. + */ + @java.lang.Override + public java.lang.String getPageToken() { + java.lang.Object ref = pageToken_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pageToken_ = s; + return s; + } + } + + /** + *
+	 * `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`.
+	 * 
+ * + * optional string page_token = 4; + * + * @return The bytes for pageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPageTokenBytes() { + java.lang.Object ref = pageToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(storeId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, storeId_); + } + if (((bitField0_ & 0x00000001) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, keyPrefix_); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeInt32(3, pageSize_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, pageToken_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(storeId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, storeId_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, keyPrefix_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, pageSize_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, pageToken_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.ListKeyVersionsRequest)) { + return super.equals(obj); + } + org.vss.ListKeyVersionsRequest other = (org.vss.ListKeyVersionsRequest) obj; + + if (!getStoreId() + .equals(other.getStoreId())) return false; + if (hasKeyPrefix() != other.hasKeyPrefix()) return false; + if (hasKeyPrefix()) { + if (!getKeyPrefix() + .equals(other.getKeyPrefix())) return false; + } + if (hasPageSize() != other.hasPageSize()) return false; + if (hasPageSize()) { + if (getPageSize() + != other.getPageSize()) return false; + } + if (hasPageToken() != other.hasPageToken()) return false; + if (hasPageToken()) { + if (!getPageToken() + .equals(other.getPageToken())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + STORE_ID_FIELD_NUMBER; + hash = (53 * hash) + getStoreId().hashCode(); + if (hasKeyPrefix()) { + hash = (37 * hash) + KEY_PREFIX_FIELD_NUMBER; + hash = (53 * hash) + getKeyPrefix().hashCode(); + } + if (hasPageSize()) { + hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER; + hash = (53 * hash) + getPageSize(); + } + if (hasPageToken()) { + hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getPageToken().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.ListKeyVersionsRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.ListKeyVersionsRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.ListKeyVersionsRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.ListKeyVersionsRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.ListKeyVersionsRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.ListKeyVersionsRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.ListKeyVersionsRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.ListKeyVersionsRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.ListKeyVersionsRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.ListKeyVersionsRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.ListKeyVersionsRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.ListKeyVersionsRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.ListKeyVersionsRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+	 * Request payload to be used for `ListKeyVersions` API call to server.
+	 * 
+ *

+ * Protobuf type {@code vss.ListKeyVersionsRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.ListKeyVersionsRequest) + org.vss.ListKeyVersionsRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_ListKeyVersionsRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_ListKeyVersionsRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.ListKeyVersionsRequest.class, org.vss.ListKeyVersionsRequest.Builder.class); + } + + // Construct using org.vss.ListKeyVersionsRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + storeId_ = ""; + + keyPrefix_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); + pageSize_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + pageToken_ = ""; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_ListKeyVersionsRequest_descriptor; + } + + @java.lang.Override + public org.vss.ListKeyVersionsRequest getDefaultInstanceForType() { + return org.vss.ListKeyVersionsRequest.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.ListKeyVersionsRequest build() { + org.vss.ListKeyVersionsRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public org.vss.ListKeyVersionsRequest buildPartial() { + org.vss.ListKeyVersionsRequest result = new org.vss.ListKeyVersionsRequest(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + result.storeId_ = storeId_; + if (((from_bitField0_ & 0x00000001) != 0)) { + to_bitField0_ |= 0x00000001; + } + result.keyPrefix_ = keyPrefix_; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.pageSize_ = pageSize_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + to_bitField0_ |= 0x00000004; + } + result.pageToken_ = pageToken_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.ListKeyVersionsRequest) { + return mergeFrom((org.vss.ListKeyVersionsRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.ListKeyVersionsRequest other) { + if (other == org.vss.ListKeyVersionsRequest.getDefaultInstance()) return this; + if (!other.getStoreId().isEmpty()) { + storeId_ = other.storeId_; + onChanged(); + } + if (other.hasKeyPrefix()) { + bitField0_ |= 0x00000001; + keyPrefix_ = other.keyPrefix_; + onChanged(); + } + if (other.hasPageSize()) { + setPageSize(other.getPageSize()); + } + if (other.hasPageToken()) { + bitField0_ |= 0x00000004; + pageToken_ = other.pageToken_; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + storeId_ = input.readStringRequireUtf8(); + + break; + } // case 10 + case 18: { + keyPrefix_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 18 + case 24: { + pageSize_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 24 + case 34: { + pageToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object storeId_ = ""; + + /** + *

+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @return The storeId. + */ + public java.lang.String getStoreId() { + java.lang.Object ref = storeId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + storeId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @return The bytes for storeId. + */ + public com.google.protobuf.ByteString + getStoreIdBytes() { + java.lang.Object ref = storeId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + storeId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @param value The storeId to set. + * @return This builder for chaining. + */ + public Builder setStoreId( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + storeId_ = value; + onChanged(); + return this; + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @return This builder for chaining. + */ + public Builder clearStoreId() { + + storeId_ = getDefaultInstance().getStoreId(); + onChanged(); + return this; + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @param value The bytes for storeId to set. + * @return This builder for chaining. + */ + public Builder setStoreIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + storeId_ = value; + onChanged(); + return this; + } + + private 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.
+		 * 
+ * + * optional string key_prefix = 2; + * + * @return Whether the keyPrefix field is set. + */ + public boolean hasKeyPrefix() { + return ((bitField0_ & 0x00000001) != 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.
+		 * 
+ * + * optional string key_prefix = 2; + * + * @return The keyPrefix. + */ + public java.lang.String getKeyPrefix() { + java.lang.Object ref = keyPrefix_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + keyPrefix_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + *
+		 * 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.
+		 * 
+ * + * optional string key_prefix = 2; + * + * @return The bytes for keyPrefix. + */ + public com.google.protobuf.ByteString + getKeyPrefixBytes() { + java.lang.Object ref = keyPrefix_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + keyPrefix_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + *
+		 * 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.
+		 * 
+ * + * optional string key_prefix = 2; + * + * @param value The keyPrefix to set. + * @return This builder for chaining. + */ + public Builder setKeyPrefix( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + keyPrefix_ = value; + onChanged(); + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * optional string key_prefix = 2; + * + * @return This builder for chaining. + */ + public Builder clearKeyPrefix() { + bitField0_ = (bitField0_ & ~0x00000001); + keyPrefix_ = getDefaultInstance().getKeyPrefix(); + onChanged(); + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * optional string key_prefix = 2; + * + * @param value The bytes for keyPrefix to set. + * @return This builder for chaining. + */ + public Builder setKeyPrefixBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + bitField0_ |= 0x00000001; + keyPrefix_ = value; + onChanged(); + return this; + } + + private int pageSize_; + + /** + *
+		 * `page_size` is used by clients to specify the maximum number of results that can be returned by
+		 * the server.
+		 * The server may further constrain the maximum number of results returned in a single page.
+		 * If the `page_size` is 0 or not set, the server will decide the number of results to be returned.
+		 * 
+ * + * optional int32 page_size = 3; + * + * @return Whether the pageSize field is set. + */ + @java.lang.Override + public boolean hasPageSize() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + *
+		 * `page_size` is used by clients to specify the maximum number of results that can be returned by
+		 * the server.
+		 * The server may further constrain the maximum number of results returned in a single page.
+		 * If the `page_size` is 0 or not set, the server will decide the number of results to be returned.
+		 * 
+ * + * optional int32 page_size = 3; + * + * @return The pageSize. + */ + @java.lang.Override + public int getPageSize() { + return pageSize_; + } + + /** + *
+		 * `page_size` is used by clients to specify the maximum number of results that can be returned by
+		 * the server.
+		 * The server may further constrain the maximum number of results returned in a single page.
+		 * If the `page_size` is 0 or not set, the server will decide the number of results to be returned.
+		 * 
+ * + * optional int32 page_size = 3; + * + * @param value The pageSize to set. + * @return This builder for chaining. + */ + public Builder setPageSize(int value) { + bitField0_ |= 0x00000002; + pageSize_ = value; + onChanged(); + return this; + } + + /** + *
+		 * `page_size` is used by clients to specify the maximum number of results that can be returned by
+		 * the server.
+		 * The server may further constrain the maximum number of results returned in a single page.
+		 * If the `page_size` is 0 or not set, the server will decide the number of results to be returned.
+		 * 
+ * + * optional int32 page_size = 3; + * + * @return This builder for chaining. + */ + public Builder clearPageSize() { + bitField0_ = (bitField0_ & ~0x00000002); + pageSize_ = 0; + onChanged(); + return this; + } + + private 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`.
+		 * 
+ * + * optional string page_token = 4; + * + * @return Whether the pageToken field is set. + */ + public boolean hasPageToken() { + return ((bitField0_ & 0x00000004) != 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`.
+		 * 
+ * + * optional string page_token = 4; + * + * @return The pageToken. + */ + public java.lang.String getPageToken() { + java.lang.Object ref = pageToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pageToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + *
+		 * `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`.
+		 * 
+ * + * optional string page_token = 4; + * + * @return The bytes for pageToken. + */ + public com.google.protobuf.ByteString + getPageTokenBytes() { + java.lang.Object ref = pageToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + *
+		 * `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`.
+		 * 
+ * + * optional string page_token = 4; + * + * @param value The pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageToken( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + pageToken_ = value; + onChanged(); + return this; + } + + /** + *
+		 * `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`.
+		 * 
+ * + * optional string page_token = 4; + * + * @return This builder for chaining. + */ + public Builder clearPageToken() { + bitField0_ = (bitField0_ & ~0x00000004); + pageToken_ = getDefaultInstance().getPageToken(); + onChanged(); + return this; + } + + /** + *
+		 * `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`.
+		 * 
+ * + * optional string page_token = 4; + * + * @param value The bytes for pageToken to set. + * @return This builder for chaining. + */ + public Builder setPageTokenBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + bitField0_ |= 0x00000004; + pageToken_ = value; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.ListKeyVersionsRequest) + } + + // @@protoc_insertion_point(class_scope:vss.ListKeyVersionsRequest) + private static final org.vss.ListKeyVersionsRequest DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.ListKeyVersionsRequest(); + } + + public static org.vss.ListKeyVersionsRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ListKeyVersionsRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.ListKeyVersionsRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequestOrBuilder.java b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequestOrBuilder.java new file mode 100644 index 0000000..c453685 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsRequestOrBuilder.java @@ -0,0 +1,162 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface ListKeyVersionsRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.ListKeyVersionsRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The storeId. + */ + java.lang.String getStoreId(); + + /** + *
+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The bytes for storeId. + */ + com.google.protobuf.ByteString + getStoreIdBytes(); + + /** + *
+	 * 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.
+	 * 
+ * + * optional string key_prefix = 2; + * + * @return Whether the keyPrefix field is set. + */ + 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.
+	 * 
+ * + * optional string key_prefix = 2; + * + * @return The keyPrefix. + */ + 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.
+	 * 
+ * + * optional string key_prefix = 2; + * + * @return The bytes for keyPrefix. + */ + com.google.protobuf.ByteString + getKeyPrefixBytes(); + + /** + *
+	 * `page_size` is used by clients to specify the maximum number of results that can be returned by
+	 * the server.
+	 * The server may further constrain the maximum number of results returned in a single page.
+	 * If the `page_size` is 0 or not set, the server will decide the number of results to be returned.
+	 * 
+ * + * optional int32 page_size = 3; + * + * @return Whether the pageSize field is set. + */ + boolean hasPageSize(); + + /** + *
+	 * `page_size` is used by clients to specify the maximum number of results that can be returned by
+	 * the server.
+	 * The server may further constrain the maximum number of results returned in a single page.
+	 * If the `page_size` is 0 or not set, the server will decide the number of results to be returned.
+	 * 
+ * + * optional int32 page_size = 3; + * + * @return The pageSize. + */ + int getPageSize(); + + /** + *
+	 * `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`.
+	 * 
+ * + * optional string page_token = 4; + * + * @return Whether the pageToken field is set. + */ + 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`.
+	 * 
+ * + * optional string page_token = 4; + * + * @return The pageToken. + */ + 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`.
+	 * 
+ * + * optional string page_token = 4; + * + * @return The bytes for pageToken. + */ + com.google.protobuf.ByteString + getPageTokenBytes(); +} diff --git a/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponse.java b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponse.java new file mode 100644 index 0000000..7079dd5 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponse.java @@ -0,0 +1,1415 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *
+ * Server response for `ListKeyVersions` API.
+ * 
+ *

+ * Protobuf type {@code vss.ListKeyVersionsResponse} + */ +public final class ListKeyVersionsResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.ListKeyVersionsResponse) + ListKeyVersionsResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ListKeyVersionsResponse.newBuilder() to construct. + private ListKeyVersionsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ListKeyVersionsResponse() { + keyVersions_ = java.util.Collections.emptyList(); + nextPageToken_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_ListKeyVersionsResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.ListKeyVersionsResponse.class, org.vss.ListKeyVersionsResponse.Builder.class); + } + + private int bitField0_; + public static final int KEY_VERSIONS_FIELD_NUMBER = 1; + private java.util.List keyVersions_; + + /** + *

+	 * Fetched keys and versions.
+	 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+	 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + @java.lang.Override + public java.util.List getKeyVersionsList() { + return keyVersions_; + } + + /** + *
+	 * Fetched keys and versions.
+	 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+	 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + @java.lang.Override + public java.util.List + getKeyVersionsOrBuilderList() { + return keyVersions_; + } + + /** + *
+	 * Fetched keys and versions.
+	 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+	 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + @java.lang.Override + public int getKeyVersionsCount() { + return keyVersions_.size(); + } + + /** + *
+	 * Fetched keys and versions.
+	 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+	 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + @java.lang.Override + public org.vss.KeyValue getKeyVersions(int index) { + return keyVersions_.get(index); + } + + /** + *
+	 * Fetched keys and versions.
+	 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+	 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + @java.lang.Override + public org.vss.KeyValueOrBuilder getKeyVersionsOrBuilder( + int index) { + return keyVersions_.get(index); + } + + public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2; + 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.
+	 * 
+ * + * optional string next_page_token = 2; + * + * @return Whether the nextPageToken field is set. + */ + @java.lang.Override + public boolean hasNextPageToken() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + *
+	 * `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.
+	 * 
+ * + * optional string next_page_token = 2; + * + * @return The nextPageToken. + */ + @java.lang.Override + public java.lang.String getNextPageToken() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nextPageToken_ = s; + return s; + } + } + + /** + *
+	 * `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.
+	 * 
+ * + * optional string next_page_token = 2; + * + * @return The bytes for nextPageToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNextPageTokenBytes() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + nextPageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GLOBAL_VERSION_FIELD_NUMBER = 3; + private long globalVersion_; + + /** + *
+	 * `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.
+	 *   2. Update all the `key_versions` on client-side from all the pages of paginated response.
+	 *   3. Update `global_version` on client_side from the local variable saved in step-1.
+	 * This ensures that on client-side, all current `key_versions` were stored at `global_version` or later.
+	 * This guarantee is helpful for ensuring the versioning correctness if using the `global_version`
+	 * in `PutObject` API and can help avoid the race conditions related to it.
+	 * 
+ * + * optional int64 global_version = 3; + * + * @return Whether the globalVersion field is set. + */ + @java.lang.Override + public boolean hasGlobalVersion() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + *
+	 * `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.
+	 *   2. Update all the `key_versions` on client-side from all the pages of paginated response.
+	 *   3. Update `global_version` on client_side from the local variable saved in step-1.
+	 * This ensures that on client-side, all current `key_versions` were stored at `global_version` or later.
+	 * This guarantee is helpful for ensuring the versioning correctness if using the `global_version`
+	 * in `PutObject` API and can help avoid the race conditions related to it.
+	 * 
+ * + * optional int64 global_version = 3; + * + * @return The globalVersion. + */ + @java.lang.Override + public long getGlobalVersion() { + return globalVersion_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < keyVersions_.size(); i++) { + output.writeMessage(1, keyVersions_.get(i)); + } + if (((bitField0_ & 0x00000001) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeInt64(3, globalVersion_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < keyVersions_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, keyVersions_.get(i)); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, globalVersion_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.ListKeyVersionsResponse)) { + return super.equals(obj); + } + org.vss.ListKeyVersionsResponse other = (org.vss.ListKeyVersionsResponse) obj; + + if (!getKeyVersionsList() + .equals(other.getKeyVersionsList())) return false; + if (hasNextPageToken() != other.hasNextPageToken()) return false; + if (hasNextPageToken()) { + if (!getNextPageToken() + .equals(other.getNextPageToken())) return false; + } + if (hasGlobalVersion() != other.hasGlobalVersion()) return false; + if (hasGlobalVersion()) { + if (getGlobalVersion() + != other.getGlobalVersion()) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getKeyVersionsCount() > 0) { + hash = (37 * hash) + KEY_VERSIONS_FIELD_NUMBER; + hash = (53 * hash) + getKeyVersionsList().hashCode(); + } + if (hasNextPageToken()) { + hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getNextPageToken().hashCode(); + } + if (hasGlobalVersion()) { + hash = (37 * hash) + GLOBAL_VERSION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getGlobalVersion()); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.ListKeyVersionsResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.ListKeyVersionsResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.ListKeyVersionsResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.ListKeyVersionsResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.ListKeyVersionsResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.ListKeyVersionsResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.ListKeyVersionsResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.ListKeyVersionsResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.ListKeyVersionsResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.ListKeyVersionsResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.ListKeyVersionsResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.ListKeyVersionsResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.ListKeyVersionsResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+	 * Server response for `ListKeyVersions` API.
+	 * 
+ *

+ * Protobuf type {@code vss.ListKeyVersionsResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.ListKeyVersionsResponse) + org.vss.ListKeyVersionsResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_ListKeyVersionsResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_ListKeyVersionsResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.ListKeyVersionsResponse.class, org.vss.ListKeyVersionsResponse.Builder.class); + } + + // Construct using org.vss.ListKeyVersionsResponse.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + if (keyVersionsBuilder_ == null) { + keyVersions_ = java.util.Collections.emptyList(); + } else { + keyVersions_ = null; + keyVersionsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + nextPageToken_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); + globalVersion_ = 0L; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_ListKeyVersionsResponse_descriptor; + } + + @java.lang.Override + public org.vss.ListKeyVersionsResponse getDefaultInstanceForType() { + return org.vss.ListKeyVersionsResponse.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.ListKeyVersionsResponse build() { + org.vss.ListKeyVersionsResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @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; + if (keyVersionsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + keyVersions_ = java.util.Collections.unmodifiableList(keyVersions_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.keyVersions_ = keyVersions_; + } else { + result.keyVersions_ = keyVersionsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + to_bitField0_ |= 0x00000001; + } + result.nextPageToken_ = nextPageToken_; + if (((from_bitField0_ & 0x00000004) != 0)) { + result.globalVersion_ = globalVersion_; + to_bitField0_ |= 0x00000002; + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.ListKeyVersionsResponse) { + return mergeFrom((org.vss.ListKeyVersionsResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.ListKeyVersionsResponse other) { + if (other == org.vss.ListKeyVersionsResponse.getDefaultInstance()) return this; + if (keyVersionsBuilder_ == null) { + if (!other.keyVersions_.isEmpty()) { + if (keyVersions_.isEmpty()) { + keyVersions_ = other.keyVersions_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureKeyVersionsIsMutable(); + keyVersions_.addAll(other.keyVersions_); + } + onChanged(); + } + } else { + if (!other.keyVersions_.isEmpty()) { + if (keyVersionsBuilder_.isEmpty()) { + keyVersionsBuilder_.dispose(); + keyVersionsBuilder_ = null; + keyVersions_ = other.keyVersions_; + bitField0_ = (bitField0_ & ~0x00000001); + keyVersionsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getKeyVersionsFieldBuilder() : null; + } else { + keyVersionsBuilder_.addAllMessages(other.keyVersions_); + } + } + } + if (other.hasNextPageToken()) { + bitField0_ |= 0x00000002; + nextPageToken_ = other.nextPageToken_; + onChanged(); + } + if (other.hasGlobalVersion()) { + setGlobalVersion(other.getGlobalVersion()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + org.vss.KeyValue m = + input.readMessage( + org.vss.KeyValue.parser(), + extensionRegistry); + if (keyVersionsBuilder_ == null) { + ensureKeyVersionsIsMutable(); + keyVersions_.add(m); + } else { + keyVersionsBuilder_.addMessage(m); + } + break; + } // case 10 + case 18: { + nextPageToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + globalVersion_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.util.List keyVersions_ = + java.util.Collections.emptyList(); + + private void ensureKeyVersionsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + keyVersions_ = new java.util.ArrayList(keyVersions_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder> keyVersionsBuilder_; + + /** + *

+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public java.util.List getKeyVersionsList() { + if (keyVersionsBuilder_ == null) { + return java.util.Collections.unmodifiableList(keyVersions_); + } else { + return keyVersionsBuilder_.getMessageList(); + } + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public int getKeyVersionsCount() { + if (keyVersionsBuilder_ == null) { + return keyVersions_.size(); + } else { + return keyVersionsBuilder_.getCount(); + } + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public org.vss.KeyValue getKeyVersions(int index) { + if (keyVersionsBuilder_ == null) { + return keyVersions_.get(index); + } else { + return keyVersionsBuilder_.getMessage(index); + } + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public Builder setKeyVersions( + int index, org.vss.KeyValue value) { + if (keyVersionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureKeyVersionsIsMutable(); + keyVersions_.set(index, value); + onChanged(); + } else { + keyVersionsBuilder_.setMessage(index, value); + } + return this; + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public Builder setKeyVersions( + int index, org.vss.KeyValue.Builder builderForValue) { + if (keyVersionsBuilder_ == null) { + ensureKeyVersionsIsMutable(); + keyVersions_.set(index, builderForValue.build()); + onChanged(); + } else { + keyVersionsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public Builder addKeyVersions(org.vss.KeyValue value) { + if (keyVersionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureKeyVersionsIsMutable(); + keyVersions_.add(value); + onChanged(); + } else { + keyVersionsBuilder_.addMessage(value); + } + return this; + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public Builder addKeyVersions( + int index, org.vss.KeyValue value) { + if (keyVersionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureKeyVersionsIsMutable(); + keyVersions_.add(index, value); + onChanged(); + } else { + keyVersionsBuilder_.addMessage(index, value); + } + return this; + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public Builder addKeyVersions( + org.vss.KeyValue.Builder builderForValue) { + if (keyVersionsBuilder_ == null) { + ensureKeyVersionsIsMutable(); + keyVersions_.add(builderForValue.build()); + onChanged(); + } else { + keyVersionsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public Builder addKeyVersions( + int index, org.vss.KeyValue.Builder builderForValue) { + if (keyVersionsBuilder_ == null) { + ensureKeyVersionsIsMutable(); + keyVersions_.add(index, builderForValue.build()); + onChanged(); + } else { + keyVersionsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public Builder addAllKeyVersions( + java.lang.Iterable values) { + if (keyVersionsBuilder_ == null) { + ensureKeyVersionsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, keyVersions_); + onChanged(); + } else { + keyVersionsBuilder_.addAllMessages(values); + } + return this; + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public Builder clearKeyVersions() { + if (keyVersionsBuilder_ == null) { + keyVersions_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + keyVersionsBuilder_.clear(); + } + return this; + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public Builder removeKeyVersions(int index) { + if (keyVersionsBuilder_ == null) { + ensureKeyVersionsIsMutable(); + keyVersions_.remove(index); + onChanged(); + } else { + keyVersionsBuilder_.remove(index); + } + return this; + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public org.vss.KeyValue.Builder getKeyVersionsBuilder( + int index) { + return getKeyVersionsFieldBuilder().getBuilder(index); + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public org.vss.KeyValueOrBuilder getKeyVersionsOrBuilder( + int index) { + if (keyVersionsBuilder_ == null) { + return keyVersions_.get(index); + } else { + return keyVersionsBuilder_.getMessageOrBuilder(index); + } + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public java.util.List + getKeyVersionsOrBuilderList() { + if (keyVersionsBuilder_ != null) { + return keyVersionsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(keyVersions_); + } + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public org.vss.KeyValue.Builder addKeyVersionsBuilder() { + return getKeyVersionsFieldBuilder().addBuilder( + org.vss.KeyValue.getDefaultInstance()); + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public org.vss.KeyValue.Builder addKeyVersionsBuilder( + int index) { + return getKeyVersionsFieldBuilder().addBuilder( + index, org.vss.KeyValue.getDefaultInstance()); + } + + /** + *
+		 * Fetched keys and versions.
+		 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+		 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + public java.util.List + getKeyVersionsBuilderList() { + return getKeyVersionsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder> + getKeyVersionsFieldBuilder() { + if (keyVersionsBuilder_ == null) { + keyVersionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder>( + keyVersions_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + keyVersions_ = null; + } + return keyVersionsBuilder_; + } + + private 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.
+		 * 
+ * + * optional string next_page_token = 2; + * + * @return Whether the nextPageToken field is set. + */ + public boolean hasNextPageToken() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + *
+		 * `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.
+		 * 
+ * + * optional string next_page_token = 2; + * + * @return The nextPageToken. + */ + public java.lang.String getNextPageToken() { + java.lang.Object ref = nextPageToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nextPageToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + *
+		 * `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.
+		 * 
+ * + * optional string next_page_token = 2; + * + * @return The bytes for nextPageToken. + */ + public com.google.protobuf.ByteString + getNextPageTokenBytes() { + java.lang.Object ref = nextPageToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + nextPageToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + *
+		 * `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.
+		 * 
+ * + * optional string next_page_token = 2; + * + * @param value The nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageToken( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + nextPageToken_ = value; + onChanged(); + return this; + } + + /** + *
+		 * `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.
+		 * 
+ * + * optional string next_page_token = 2; + * + * @return This builder for chaining. + */ + public Builder clearNextPageToken() { + bitField0_ = (bitField0_ & ~0x00000002); + nextPageToken_ = getDefaultInstance().getNextPageToken(); + onChanged(); + return this; + } + + /** + *
+		 * `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.
+		 * 
+ * + * optional string next_page_token = 2; + * + * @param value The bytes for nextPageToken to set. + * @return This builder for chaining. + */ + public Builder setNextPageTokenBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + bitField0_ |= 0x00000002; + nextPageToken_ = value; + onChanged(); + return this; + } + + private long globalVersion_; + + /** + *
+		 * `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.
+		 *   2. Update all the `key_versions` on client-side from all the pages of paginated response.
+		 *   3. Update `global_version` on client_side from the local variable saved in step-1.
+		 * This ensures that on client-side, all current `key_versions` were stored at `global_version` or later.
+		 * This guarantee is helpful for ensuring the versioning correctness if using the `global_version`
+		 * in `PutObject` API and can help avoid the race conditions related to it.
+		 * 
+ * + * optional int64 global_version = 3; + * + * @return Whether the globalVersion field is set. + */ + @java.lang.Override + public boolean hasGlobalVersion() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + *
+		 * `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.
+		 *   2. Update all the `key_versions` on client-side from all the pages of paginated response.
+		 *   3. Update `global_version` on client_side from the local variable saved in step-1.
+		 * This ensures that on client-side, all current `key_versions` were stored at `global_version` or later.
+		 * This guarantee is helpful for ensuring the versioning correctness if using the `global_version`
+		 * in `PutObject` API and can help avoid the race conditions related to it.
+		 * 
+ * + * optional int64 global_version = 3; + * + * @return The globalVersion. + */ + @java.lang.Override + public long getGlobalVersion() { + return globalVersion_; + } + + /** + *
+		 * `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.
+		 *   2. Update all the `key_versions` on client-side from all the pages of paginated response.
+		 *   3. Update `global_version` on client_side from the local variable saved in step-1.
+		 * This ensures that on client-side, all current `key_versions` were stored at `global_version` or later.
+		 * This guarantee is helpful for ensuring the versioning correctness if using the `global_version`
+		 * in `PutObject` API and can help avoid the race conditions related to it.
+		 * 
+ * + * optional int64 global_version = 3; + * + * @param value The globalVersion to set. + * @return This builder for chaining. + */ + public Builder setGlobalVersion(long value) { + bitField0_ |= 0x00000004; + globalVersion_ = value; + onChanged(); + return this; + } + + /** + *
+		 * `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.
+		 *   2. Update all the `key_versions` on client-side from all the pages of paginated response.
+		 *   3. Update `global_version` on client_side from the local variable saved in step-1.
+		 * This ensures that on client-side, all current `key_versions` were stored at `global_version` or later.
+		 * This guarantee is helpful for ensuring the versioning correctness if using the `global_version`
+		 * in `PutObject` API and can help avoid the race conditions related to it.
+		 * 
+ * + * optional int64 global_version = 3; + * + * @return This builder for chaining. + */ + public Builder clearGlobalVersion() { + bitField0_ = (bitField0_ & ~0x00000004); + globalVersion_ = 0L; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.ListKeyVersionsResponse) + } + + // @@protoc_insertion_point(class_scope:vss.ListKeyVersionsResponse) + private static final org.vss.ListKeyVersionsResponse DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.ListKeyVersionsResponse(); + } + + public static org.vss.ListKeyVersionsResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ListKeyVersionsResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.ListKeyVersionsResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponseOrBuilder.java b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponseOrBuilder.java new file mode 100644 index 0000000..04a3589 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/ListKeyVersionsResponseOrBuilder.java @@ -0,0 +1,165 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface ListKeyVersionsResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.ListKeyVersionsResponse) + com.google.protobuf.MessageOrBuilder { + + /** + *
+	 * Fetched keys and versions.
+	 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+	 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + java.util.List + getKeyVersionsList(); + + /** + *
+	 * Fetched keys and versions.
+	 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+	 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + org.vss.KeyValue getKeyVersions(int index); + + /** + *
+	 * Fetched keys and versions.
+	 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+	 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + int getKeyVersionsCount(); + + /** + *
+	 * Fetched keys and versions.
+	 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+	 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + java.util.List + getKeyVersionsOrBuilderList(); + + /** + *
+	 * Fetched keys and versions.
+	 * Even though this API reuses the `KeyValue` struct, the `value` sub-field will not be set by the server.
+	 * 
+ * + * repeated .vss.KeyValue key_versions = 1; + */ + org.vss.KeyValueOrBuilder getKeyVersionsOrBuilder( + int index); + + /** + *
+	 * `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.
+	 * 
+ * + * optional string next_page_token = 2; + * + * @return Whether the nextPageToken field is set. + */ + 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.
+	 * 
+ * + * optional string next_page_token = 2; + * + * @return The nextPageToken. + */ + 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.
+	 * 
+ * + * optional string next_page_token = 2; + * + * @return The bytes for nextPageToken. + */ + com.google.protobuf.ByteString + getNextPageTokenBytes(); + + /** + *
+	 * `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.
+	 *   2. Update all the `key_versions` on client-side from all the pages of paginated response.
+	 *   3. Update `global_version` on client_side from the local variable saved in step-1.
+	 * This ensures that on client-side, all current `key_versions` were stored at `global_version` or later.
+	 * This guarantee is helpful for ensuring the versioning correctness if using the `global_version`
+	 * in `PutObject` API and can help avoid the race conditions related to it.
+	 * 
+ * + * optional int64 global_version = 3; + * + * @return Whether the globalVersion field is set. + */ + 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.
+	 *   2. Update all the `key_versions` on client-side from all the pages of paginated response.
+	 *   3. Update `global_version` on client_side from the local variable saved in step-1.
+	 * This ensures that on client-side, all current `key_versions` were stored at `global_version` or later.
+	 * This guarantee is helpful for ensuring the versioning correctness if using the `global_version`
+	 * in `PutObject` API and can help avoid the race conditions related to it.
+	 * 
+ * + * optional int64 global_version = 3; + * + * @return The globalVersion. + */ + long getGlobalVersion(); +} diff --git a/java/app/src/main/generated/proto/org/vss/PlaintextBlob.java b/java/app/src/main/generated/proto/org/vss/PlaintextBlob.java new file mode 100644 index 0000000..3be5959 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/PlaintextBlob.java @@ -0,0 +1,622 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *
+ * Represents a data blob, which is encrypted, serialized and later used in `Storable.data`.
+ * Since the whole `Storable.data` is client-side encrypted, the server cannot understand this.
+ * 
+ *

+ * Protobuf type {@code vss.PlaintextBlob} + */ +public final class PlaintextBlob extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.PlaintextBlob) + PlaintextBlobOrBuilder { + private static final long serialVersionUID = 0L; + + // Use PlaintextBlob.newBuilder() to construct. + private PlaintextBlob(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private PlaintextBlob() { + value_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_PlaintextBlob_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.PlaintextBlob.class, org.vss.PlaintextBlob.Builder.class); + } + + public static final int VALUE_FIELD_NUMBER = 1; + private com.google.protobuf.ByteString value_; + + /** + *

+	 * The unencrypted value.
+	 * 
+ * + * bytes value = 1; + * + * @return The value. + */ + @java.lang.Override + public com.google.protobuf.ByteString getValue() { + return value_; + } + + public static final int VERSION_FIELD_NUMBER = 2; + private long version_; + + /** + *
+	 * The version of the value. Can be used by client to verify version integrity.
+	 * 
+ * + * int64 version = 2; + * + * @return The version. + */ + @java.lang.Override + public long getVersion() { + return version_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!value_.isEmpty()) { + output.writeBytes(1, value_); + } + if (version_ != 0L) { + output.writeInt64(2, version_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!value_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, value_); + } + if (version_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, version_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.PlaintextBlob)) { + return super.equals(obj); + } + org.vss.PlaintextBlob other = (org.vss.PlaintextBlob) obj; + + if (!getValue() + .equals(other.getValue())) return false; + if (getVersion() + != other.getVersion()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + VALUE_FIELD_NUMBER; + hash = (53 * hash) + getValue().hashCode(); + hash = (37 * hash) + VERSION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getVersion()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.PlaintextBlob parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.PlaintextBlob parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.PlaintextBlob parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.PlaintextBlob parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.PlaintextBlob parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.PlaintextBlob parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.PlaintextBlob parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.PlaintextBlob parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.PlaintextBlob parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.PlaintextBlob parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.PlaintextBlob parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.PlaintextBlob parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.PlaintextBlob prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+	 * Represents a data blob, which is encrypted, serialized and later used in `Storable.data`.
+	 * Since the whole `Storable.data` is client-side encrypted, the server cannot understand this.
+	 * 
+ *

+ * Protobuf type {@code vss.PlaintextBlob} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.PlaintextBlob) + org.vss.PlaintextBlobOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_PlaintextBlob_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_PlaintextBlob_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.PlaintextBlob.class, org.vss.PlaintextBlob.Builder.class); + } + + // Construct using org.vss.PlaintextBlob.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + value_ = com.google.protobuf.ByteString.EMPTY; + + version_ = 0L; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_PlaintextBlob_descriptor; + } + + @java.lang.Override + public org.vss.PlaintextBlob getDefaultInstanceForType() { + return org.vss.PlaintextBlob.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.PlaintextBlob build() { + org.vss.PlaintextBlob result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public org.vss.PlaintextBlob buildPartial() { + org.vss.PlaintextBlob result = new org.vss.PlaintextBlob(this); + result.value_ = value_; + result.version_ = version_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.PlaintextBlob) { + return mergeFrom((org.vss.PlaintextBlob) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.PlaintextBlob other) { + if (other == org.vss.PlaintextBlob.getDefaultInstance()) return this; + if (other.getValue() != com.google.protobuf.ByteString.EMPTY) { + setValue(other.getValue()); + } + if (other.getVersion() != 0L) { + setVersion(other.getVersion()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + value_ = input.readBytes(); + + break; + } // case 10 + case 16: { + version_ = input.readInt64(); + + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY; + + /** + *

+		 * The unencrypted value.
+		 * 
+ * + * bytes value = 1; + * + * @return The value. + */ + @java.lang.Override + public com.google.protobuf.ByteString getValue() { + return value_; + } + + /** + *
+		 * The unencrypted value.
+		 * 
+ * + * bytes value = 1; + * + * @param value The value to set. + * @return This builder for chaining. + */ + public Builder setValue(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + + value_ = value; + onChanged(); + return this; + } + + /** + *
+		 * The unencrypted value.
+		 * 
+ * + * bytes value = 1; + * + * @return This builder for chaining. + */ + public Builder clearValue() { + + value_ = getDefaultInstance().getValue(); + onChanged(); + return this; + } + + private long version_; + + /** + *
+		 * The version of the value. Can be used by client to verify version integrity.
+		 * 
+ * + * int64 version = 2; + * + * @return The version. + */ + @java.lang.Override + public long getVersion() { + return version_; + } + + /** + *
+		 * The version of the value. Can be used by client to verify version integrity.
+		 * 
+ * + * int64 version = 2; + * + * @param value The version to set. + * @return This builder for chaining. + */ + public Builder setVersion(long value) { + + version_ = value; + onChanged(); + return this; + } + + /** + *
+		 * The version of the value. Can be used by client to verify version integrity.
+		 * 
+ * + * int64 version = 2; + * + * @return This builder for chaining. + */ + public Builder clearVersion() { + + version_ = 0L; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.PlaintextBlob) + } + + // @@protoc_insertion_point(class_scope:vss.PlaintextBlob) + private static final org.vss.PlaintextBlob DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.PlaintextBlob(); + } + + public static org.vss.PlaintextBlob getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PlaintextBlob parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.PlaintextBlob getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/PlaintextBlobOrBuilder.java b/java/app/src/main/generated/proto/org/vss/PlaintextBlobOrBuilder.java new file mode 100644 index 0000000..79275d4 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/PlaintextBlobOrBuilder.java @@ -0,0 +1,31 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface PlaintextBlobOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.PlaintextBlob) + com.google.protobuf.MessageOrBuilder { + + /** + *
+	 * The unencrypted value.
+	 * 
+ * + * bytes value = 1; + * + * @return The value. + */ + com.google.protobuf.ByteString getValue(); + + /** + *
+	 * The version of the value. Can be used by client to verify version integrity.
+	 * 
+ * + * int64 version = 2; + * + * @return The version. + */ + long getVersion(); +} diff --git a/java/app/src/main/generated/proto/org/vss/PutObjectRequest.java b/java/app/src/main/generated/proto/org/vss/PutObjectRequest.java new file mode 100644 index 0000000..9f6c0f7 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/PutObjectRequest.java @@ -0,0 +1,2875 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *
+ * Request payload to be used for `PutObject` API call to server.
+ * 
+ *

+ * Protobuf type {@code vss.PutObjectRequest} + */ +public final class PutObjectRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.PutObjectRequest) + PutObjectRequestOrBuilder { + private static final long serialVersionUID = 0L; + + // Use PutObjectRequest.newBuilder() to construct. + private PutObjectRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private PutObjectRequest() { + storeId_ = ""; + transactionItems_ = java.util.Collections.emptyList(); + deleteItems_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_PutObjectRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.PutObjectRequest.class, org.vss.PutObjectRequest.Builder.class); + } + + private int bitField0_; + public static final int STORE_ID_FIELD_NUMBER = 1; + private volatile java.lang.Object storeId_; + + /** + *

+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The storeId. + */ + @java.lang.Override + public java.lang.String getStoreId() { + java.lang.Object ref = storeId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + storeId_ = s; + return s; + } + } + + /** + *
+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The bytes for storeId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getStoreIdBytes() { + java.lang.Object ref = storeId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + storeId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GLOBAL_VERSION_FIELD_NUMBER = 2; + private long globalVersion_; + + /** + *
+	 * `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.
+	 * 
+ * + * optional int64 global_version = 2; + * + * @return Whether the globalVersion field is set. + */ + @java.lang.Override + public boolean hasGlobalVersion() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + *
+	 * `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.
+	 * 
+ * + * optional int64 global_version = 2; + * + * @return The globalVersion. + */ + @java.lang.Override + public long getGlobalVersion() { + return globalVersion_; + } + + public static final int TRANSACTION_ITEMS_FIELD_NUMBER = 3; + 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.
+	 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + @java.lang.Override + public java.util.List getTransactionItemsList() { + return 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.
+	 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + @java.lang.Override + public java.util.List + getTransactionItemsOrBuilderList() { + return 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.
+	 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + @java.lang.Override + public int getTransactionItemsCount() { + return transactionItems_.size(); + } + + /** + *
+	 * 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.
+	 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + @java.lang.Override + public org.vss.KeyValue getTransactionItems(int index) { + return transactionItems_.get(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.
+	 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + @java.lang.Override + public org.vss.KeyValueOrBuilder getTransactionItemsOrBuilder( + int index) { + return transactionItems_.get(index); + } + + public static final int DELETE_ITEMS_FIELD_NUMBER = 4; + 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.
+	 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + @java.lang.Override + public java.util.List getDeleteItemsList() { + return 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.
+	 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + @java.lang.Override + public java.util.List + getDeleteItemsOrBuilderList() { + return 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.
+	 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + @java.lang.Override + public int getDeleteItemsCount() { + return deleteItems_.size(); + } + + /** + *
+	 * 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.
+	 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + @java.lang.Override + public org.vss.KeyValue getDeleteItems(int index) { + return deleteItems_.get(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.
+	 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + @java.lang.Override + public org.vss.KeyValueOrBuilder getDeleteItemsOrBuilder( + int index) { + return deleteItems_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(storeId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, storeId_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeInt64(2, globalVersion_); + } + for (int i = 0; i < transactionItems_.size(); i++) { + output.writeMessage(3, transactionItems_.get(i)); + } + for (int i = 0; i < deleteItems_.size(); i++) { + output.writeMessage(4, deleteItems_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(storeId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, storeId_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, globalVersion_); + } + for (int i = 0; i < transactionItems_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, transactionItems_.get(i)); + } + for (int i = 0; i < deleteItems_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, deleteItems_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.PutObjectRequest)) { + return super.equals(obj); + } + org.vss.PutObjectRequest other = (org.vss.PutObjectRequest) obj; + + if (!getStoreId() + .equals(other.getStoreId())) return false; + if (hasGlobalVersion() != other.hasGlobalVersion()) return false; + if (hasGlobalVersion()) { + if (getGlobalVersion() + != other.getGlobalVersion()) return false; + } + if (!getTransactionItemsList() + .equals(other.getTransactionItemsList())) return false; + if (!getDeleteItemsList() + .equals(other.getDeleteItemsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + STORE_ID_FIELD_NUMBER; + hash = (53 * hash) + getStoreId().hashCode(); + if (hasGlobalVersion()) { + hash = (37 * hash) + GLOBAL_VERSION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getGlobalVersion()); + } + if (getTransactionItemsCount() > 0) { + hash = (37 * hash) + TRANSACTION_ITEMS_FIELD_NUMBER; + hash = (53 * hash) + getTransactionItemsList().hashCode(); + } + if (getDeleteItemsCount() > 0) { + hash = (37 * hash) + DELETE_ITEMS_FIELD_NUMBER; + hash = (53 * hash) + getDeleteItemsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.PutObjectRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.PutObjectRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.PutObjectRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.PutObjectRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.PutObjectRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.PutObjectRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.PutObjectRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.PutObjectRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.PutObjectRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.PutObjectRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.PutObjectRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.PutObjectRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.PutObjectRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+	 * Request payload to be used for `PutObject` API call to server.
+	 * 
+ *

+ * Protobuf type {@code vss.PutObjectRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.PutObjectRequest) + org.vss.PutObjectRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_PutObjectRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_PutObjectRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.PutObjectRequest.class, org.vss.PutObjectRequest.Builder.class); + } + + // Construct using org.vss.PutObjectRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + storeId_ = ""; + + globalVersion_ = 0L; + bitField0_ = (bitField0_ & ~0x00000001); + if (transactionItemsBuilder_ == null) { + transactionItems_ = java.util.Collections.emptyList(); + } else { + transactionItems_ = null; + transactionItemsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + if (deleteItemsBuilder_ == null) { + deleteItems_ = java.util.Collections.emptyList(); + } else { + deleteItems_ = null; + deleteItemsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_PutObjectRequest_descriptor; + } + + @java.lang.Override + public org.vss.PutObjectRequest getDefaultInstanceForType() { + return org.vss.PutObjectRequest.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.PutObjectRequest build() { + org.vss.PutObjectRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @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; + } + if (transactionItemsBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0)) { + transactionItems_ = java.util.Collections.unmodifiableList(transactionItems_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.transactionItems_ = transactionItems_; + } else { + result.transactionItems_ = transactionItemsBuilder_.build(); + } + if (deleteItemsBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + deleteItems_ = java.util.Collections.unmodifiableList(deleteItems_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.deleteItems_ = deleteItems_; + } else { + result.deleteItems_ = deleteItemsBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.PutObjectRequest) { + return mergeFrom((org.vss.PutObjectRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.PutObjectRequest other) { + if (other == org.vss.PutObjectRequest.getDefaultInstance()) return this; + if (!other.getStoreId().isEmpty()) { + storeId_ = other.storeId_; + onChanged(); + } + if (other.hasGlobalVersion()) { + setGlobalVersion(other.getGlobalVersion()); + } + if (transactionItemsBuilder_ == null) { + if (!other.transactionItems_.isEmpty()) { + if (transactionItems_.isEmpty()) { + transactionItems_ = other.transactionItems_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureTransactionItemsIsMutable(); + transactionItems_.addAll(other.transactionItems_); + } + onChanged(); + } + } else { + if (!other.transactionItems_.isEmpty()) { + if (transactionItemsBuilder_.isEmpty()) { + transactionItemsBuilder_.dispose(); + transactionItemsBuilder_ = null; + transactionItems_ = other.transactionItems_; + bitField0_ = (bitField0_ & ~0x00000002); + transactionItemsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getTransactionItemsFieldBuilder() : null; + } else { + transactionItemsBuilder_.addAllMessages(other.transactionItems_); + } + } + } + if (deleteItemsBuilder_ == null) { + if (!other.deleteItems_.isEmpty()) { + if (deleteItems_.isEmpty()) { + deleteItems_ = other.deleteItems_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureDeleteItemsIsMutable(); + deleteItems_.addAll(other.deleteItems_); + } + onChanged(); + } + } else { + if (!other.deleteItems_.isEmpty()) { + if (deleteItemsBuilder_.isEmpty()) { + deleteItemsBuilder_.dispose(); + deleteItemsBuilder_ = null; + deleteItems_ = other.deleteItems_; + bitField0_ = (bitField0_ & ~0x00000004); + deleteItemsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getDeleteItemsFieldBuilder() : null; + } else { + deleteItemsBuilder_.addAllMessages(other.deleteItems_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + storeId_ = input.readStringRequireUtf8(); + + break; + } // case 10 + case 16: { + globalVersion_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 16 + case 26: { + org.vss.KeyValue m = + input.readMessage( + org.vss.KeyValue.parser(), + extensionRegistry); + if (transactionItemsBuilder_ == null) { + ensureTransactionItemsIsMutable(); + transactionItems_.add(m); + } else { + transactionItemsBuilder_.addMessage(m); + } + break; + } // case 26 + case 34: { + org.vss.KeyValue m = + input.readMessage( + org.vss.KeyValue.parser(), + extensionRegistry); + if (deleteItemsBuilder_ == null) { + ensureDeleteItemsIsMutable(); + deleteItems_.add(m); + } else { + deleteItemsBuilder_.addMessage(m); + } + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object storeId_ = ""; + + /** + *

+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @return The storeId. + */ + public java.lang.String getStoreId() { + java.lang.Object ref = storeId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + storeId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @return The bytes for storeId. + */ + public com.google.protobuf.ByteString + getStoreIdBytes() { + java.lang.Object ref = storeId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + storeId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @param value The storeId to set. + * @return This builder for chaining. + */ + public Builder setStoreId( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + storeId_ = value; + onChanged(); + return this; + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @return This builder for chaining. + */ + public Builder clearStoreId() { + + storeId_ = getDefaultInstance().getStoreId(); + onChanged(); + return this; + } + + /** + *
+		 * `store_id` is a keyspace identifier.
+		 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+		 * All APIs operate within a single `store_id`.
+		 * It is up to clients to use single or multiple stores for their use-case.
+		 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+		 * Authorization and billing can also be performed at the `store_id` level.
+		 * 
+ * + * string store_id = 1; + * + * @param value The bytes for storeId to set. + * @return This builder for chaining. + */ + public Builder setStoreIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + storeId_ = value; + onChanged(); + return this; + } + + private long globalVersion_; + + /** + *
+		 * `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.
+		 * 
+ * + * optional int64 global_version = 2; + * + * @return Whether the globalVersion field is set. + */ + @java.lang.Override + public boolean hasGlobalVersion() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + *
+		 * `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.
+		 * 
+ * + * optional int64 global_version = 2; + * + * @return The globalVersion. + */ + @java.lang.Override + public long getGlobalVersion() { + return globalVersion_; + } + + /** + *
+		 * `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.
+		 * 
+ * + * optional int64 global_version = 2; + * + * @param value The globalVersion to set. + * @return This builder for chaining. + */ + public Builder setGlobalVersion(long value) { + bitField0_ |= 0x00000001; + globalVersion_ = value; + onChanged(); + return this; + } + + /** + *
+		 * `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.
+		 * 
+ * + * optional int64 global_version = 2; + * + * @return This builder for chaining. + */ + public Builder clearGlobalVersion() { + bitField0_ = (bitField0_ & ~0x00000001); + globalVersion_ = 0L; + onChanged(); + return this; + } + + private java.util.List transactionItems_ = + java.util.Collections.emptyList(); + + private void ensureTransactionItemsIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + transactionItems_ = new java.util.ArrayList(transactionItems_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder> transactionItemsBuilder_; + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public java.util.List getTransactionItemsList() { + if (transactionItemsBuilder_ == null) { + return java.util.Collections.unmodifiableList(transactionItems_); + } else { + return transactionItemsBuilder_.getMessageList(); + } + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public int getTransactionItemsCount() { + if (transactionItemsBuilder_ == null) { + return transactionItems_.size(); + } else { + return transactionItemsBuilder_.getCount(); + } + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public org.vss.KeyValue getTransactionItems(int index) { + if (transactionItemsBuilder_ == null) { + return transactionItems_.get(index); + } else { + return transactionItemsBuilder_.getMessage(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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public Builder setTransactionItems( + int index, org.vss.KeyValue value) { + if (transactionItemsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTransactionItemsIsMutable(); + transactionItems_.set(index, value); + onChanged(); + } else { + transactionItemsBuilder_.setMessage(index, value); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public Builder setTransactionItems( + int index, org.vss.KeyValue.Builder builderForValue) { + if (transactionItemsBuilder_ == null) { + ensureTransactionItemsIsMutable(); + transactionItems_.set(index, builderForValue.build()); + onChanged(); + } else { + transactionItemsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public Builder addTransactionItems(org.vss.KeyValue value) { + if (transactionItemsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTransactionItemsIsMutable(); + transactionItems_.add(value); + onChanged(); + } else { + transactionItemsBuilder_.addMessage(value); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public Builder addTransactionItems( + int index, org.vss.KeyValue value) { + if (transactionItemsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTransactionItemsIsMutable(); + transactionItems_.add(index, value); + onChanged(); + } else { + transactionItemsBuilder_.addMessage(index, value); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public Builder addTransactionItems( + org.vss.KeyValue.Builder builderForValue) { + if (transactionItemsBuilder_ == null) { + ensureTransactionItemsIsMutable(); + transactionItems_.add(builderForValue.build()); + onChanged(); + } else { + transactionItemsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public Builder addTransactionItems( + int index, org.vss.KeyValue.Builder builderForValue) { + if (transactionItemsBuilder_ == null) { + ensureTransactionItemsIsMutable(); + transactionItems_.add(index, builderForValue.build()); + onChanged(); + } else { + transactionItemsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public Builder addAllTransactionItems( + java.lang.Iterable values) { + if (transactionItemsBuilder_ == null) { + ensureTransactionItemsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, transactionItems_); + onChanged(); + } else { + transactionItemsBuilder_.addAllMessages(values); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public Builder clearTransactionItems() { + if (transactionItemsBuilder_ == null) { + transactionItems_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + transactionItemsBuilder_.clear(); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public Builder removeTransactionItems(int index) { + if (transactionItemsBuilder_ == null) { + ensureTransactionItemsIsMutable(); + transactionItems_.remove(index); + onChanged(); + } else { + transactionItemsBuilder_.remove(index); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public org.vss.KeyValue.Builder getTransactionItemsBuilder( + int index) { + return getTransactionItemsFieldBuilder().getBuilder(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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public org.vss.KeyValueOrBuilder getTransactionItemsOrBuilder( + int index) { + if (transactionItemsBuilder_ == null) { + return transactionItems_.get(index); + } else { + return transactionItemsBuilder_.getMessageOrBuilder(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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public java.util.List + getTransactionItemsOrBuilderList() { + if (transactionItemsBuilder_ != null) { + return transactionItemsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public org.vss.KeyValue.Builder addTransactionItemsBuilder() { + return getTransactionItemsFieldBuilder().addBuilder( + org.vss.KeyValue.getDefaultInstance()); + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public org.vss.KeyValue.Builder addTransactionItemsBuilder( + int index) { + return getTransactionItemsFieldBuilder().addBuilder( + index, org.vss.KeyValue.getDefaultInstance()); + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + public java.util.List + getTransactionItemsBuilderList() { + return getTransactionItemsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder> + getTransactionItemsFieldBuilder() { + if (transactionItemsBuilder_ == null) { + transactionItemsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder>( + transactionItems_, + ((bitField0_ & 0x00000002) != 0), + getParentForChildren(), + isClean()); + transactionItems_ = null; + } + return transactionItemsBuilder_; + } + + private java.util.List deleteItems_ = + java.util.Collections.emptyList(); + + private void ensureDeleteItemsIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + deleteItems_ = new java.util.ArrayList(deleteItems_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder> deleteItemsBuilder_; + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public java.util.List getDeleteItemsList() { + if (deleteItemsBuilder_ == null) { + return java.util.Collections.unmodifiableList(deleteItems_); + } else { + return deleteItemsBuilder_.getMessageList(); + } + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public int getDeleteItemsCount() { + if (deleteItemsBuilder_ == null) { + return deleteItems_.size(); + } else { + return deleteItemsBuilder_.getCount(); + } + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public org.vss.KeyValue getDeleteItems(int index) { + if (deleteItemsBuilder_ == null) { + return deleteItems_.get(index); + } else { + return deleteItemsBuilder_.getMessage(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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public Builder setDeleteItems( + int index, org.vss.KeyValue value) { + if (deleteItemsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeleteItemsIsMutable(); + deleteItems_.set(index, value); + onChanged(); + } else { + deleteItemsBuilder_.setMessage(index, value); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public Builder setDeleteItems( + int index, org.vss.KeyValue.Builder builderForValue) { + if (deleteItemsBuilder_ == null) { + ensureDeleteItemsIsMutable(); + deleteItems_.set(index, builderForValue.build()); + onChanged(); + } else { + deleteItemsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public Builder addDeleteItems(org.vss.KeyValue value) { + if (deleteItemsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeleteItemsIsMutable(); + deleteItems_.add(value); + onChanged(); + } else { + deleteItemsBuilder_.addMessage(value); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public Builder addDeleteItems( + int index, org.vss.KeyValue value) { + if (deleteItemsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeleteItemsIsMutable(); + deleteItems_.add(index, value); + onChanged(); + } else { + deleteItemsBuilder_.addMessage(index, value); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public Builder addDeleteItems( + org.vss.KeyValue.Builder builderForValue) { + if (deleteItemsBuilder_ == null) { + ensureDeleteItemsIsMutable(); + deleteItems_.add(builderForValue.build()); + onChanged(); + } else { + deleteItemsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public Builder addDeleteItems( + int index, org.vss.KeyValue.Builder builderForValue) { + if (deleteItemsBuilder_ == null) { + ensureDeleteItemsIsMutable(); + deleteItems_.add(index, builderForValue.build()); + onChanged(); + } else { + deleteItemsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public Builder addAllDeleteItems( + java.lang.Iterable values) { + if (deleteItemsBuilder_ == null) { + ensureDeleteItemsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, deleteItems_); + onChanged(); + } else { + deleteItemsBuilder_.addAllMessages(values); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public Builder clearDeleteItems() { + if (deleteItemsBuilder_ == null) { + deleteItems_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + deleteItemsBuilder_.clear(); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public Builder removeDeleteItems(int index) { + if (deleteItemsBuilder_ == null) { + ensureDeleteItemsIsMutable(); + deleteItems_.remove(index); + onChanged(); + } else { + deleteItemsBuilder_.remove(index); + } + return this; + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public org.vss.KeyValue.Builder getDeleteItemsBuilder( + int index) { + return getDeleteItemsFieldBuilder().getBuilder(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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public org.vss.KeyValueOrBuilder getDeleteItemsOrBuilder( + int index) { + if (deleteItemsBuilder_ == null) { + return deleteItems_.get(index); + } else { + return deleteItemsBuilder_.getMessageOrBuilder(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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public java.util.List + getDeleteItemsOrBuilderList() { + if (deleteItemsBuilder_ != null) { + return deleteItemsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public org.vss.KeyValue.Builder addDeleteItemsBuilder() { + return getDeleteItemsFieldBuilder().addBuilder( + org.vss.KeyValue.getDefaultInstance()); + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public org.vss.KeyValue.Builder addDeleteItemsBuilder( + int index) { + return getDeleteItemsFieldBuilder().addBuilder( + index, org.vss.KeyValue.getDefaultInstance()); + } + + /** + *
+		 * 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.
+		 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + public java.util.List + getDeleteItemsBuilderList() { + return getDeleteItemsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder> + getDeleteItemsFieldBuilder() { + if (deleteItemsBuilder_ == null) { + deleteItemsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + org.vss.KeyValue, org.vss.KeyValue.Builder, org.vss.KeyValueOrBuilder>( + deleteItems_, + ((bitField0_ & 0x00000004) != 0), + getParentForChildren(), + isClean()); + deleteItems_ = null; + } + return deleteItemsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.PutObjectRequest) + } + + // @@protoc_insertion_point(class_scope:vss.PutObjectRequest) + private static final org.vss.PutObjectRequest DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.PutObjectRequest(); + } + + public static org.vss.PutObjectRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PutObjectRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.PutObjectRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/PutObjectRequestOrBuilder.java b/java/app/src/main/generated/proto/org/vss/PutObjectRequestOrBuilder.java new file mode 100644 index 0000000..8265d4e --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/PutObjectRequestOrBuilder.java @@ -0,0 +1,421 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface PutObjectRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.PutObjectRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The storeId. + */ + java.lang.String getStoreId(); + + /** + *
+	 * `store_id` is a keyspace identifier.
+	 * Ref: https://en.wikipedia.org/wiki/Keyspace_(distributed_data_store)
+	 * All APIs operate within a single `store_id`.
+	 * It is up to clients to use single or multiple stores for their use-case.
+	 * This can be used for client-isolation/ rate-limiting / throttling on the server-side.
+	 * Authorization and billing can also be performed at the `store_id` level.
+	 * 
+ * + * string store_id = 1; + * + * @return The bytes for storeId. + */ + com.google.protobuf.ByteString + getStoreIdBytes(); + + /** + *
+	 * `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.
+	 * 
+ * + * optional int64 global_version = 2; + * + * @return Whether the globalVersion field is set. + */ + 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.
+	 * 
+ * + * optional int64 global_version = 2; + * + * @return The globalVersion. + */ + long getGlobalVersion(); + + /** + *
+	 * 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.
+	 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + 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.
+	 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + 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.
+	 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + 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.
+	 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + java.util.List + getTransactionItemsOrBuilderList(); + + /** + *
+	 * 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.
+	 * 
+ * + * repeated .vss.KeyValue transaction_items = 3; + */ + org.vss.KeyValueOrBuilder getTransactionItemsOrBuilder( + 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.
+	 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + 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.
+	 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + 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.
+	 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + 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.
+	 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + java.util.List + getDeleteItemsOrBuilderList(); + + /** + *
+	 * 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.
+	 * 
+ * + * repeated .vss.KeyValue delete_items = 4; + */ + org.vss.KeyValueOrBuilder getDeleteItemsOrBuilder( + int index); +} diff --git a/java/app/src/main/generated/proto/org/vss/PutObjectResponse.java b/java/app/src/main/generated/proto/org/vss/PutObjectResponse.java new file mode 100644 index 0000000..57c2b5f --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/PutObjectResponse.java @@ -0,0 +1,439 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *
+ * Server response for `PutObject` API.
+ * 
+ *

+ * Protobuf type {@code vss.PutObjectResponse} + */ +public final class PutObjectResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.PutObjectResponse) + PutObjectResponseOrBuilder { + private static final long serialVersionUID = 0L; + + // Use PutObjectResponse.newBuilder() to construct. + private PutObjectResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private PutObjectResponse() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_PutObjectResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.PutObjectResponse.class, org.vss.PutObjectResponse.Builder.class); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.PutObjectResponse)) { + return super.equals(obj); + } + org.vss.PutObjectResponse other = (org.vss.PutObjectResponse) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.PutObjectResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.PutObjectResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.PutObjectResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.PutObjectResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.PutObjectResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.PutObjectResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.PutObjectResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.PutObjectResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.PutObjectResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.PutObjectResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.PutObjectResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.PutObjectResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.PutObjectResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *

+	 * Server response for `PutObject` API.
+	 * 
+ *

+ * Protobuf type {@code vss.PutObjectResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.PutObjectResponse) + org.vss.PutObjectResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_PutObjectResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_PutObjectResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.PutObjectResponse.class, org.vss.PutObjectResponse.Builder.class); + } + + // Construct using org.vss.PutObjectResponse.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_PutObjectResponse_descriptor; + } + + @java.lang.Override + public org.vss.PutObjectResponse getDefaultInstanceForType() { + return org.vss.PutObjectResponse.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.PutObjectResponse build() { + org.vss.PutObjectResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public org.vss.PutObjectResponse buildPartial() { + org.vss.PutObjectResponse result = new org.vss.PutObjectResponse(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.PutObjectResponse) { + return mergeFrom((org.vss.PutObjectResponse) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.PutObjectResponse other) { + if (other == org.vss.PutObjectResponse.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.PutObjectResponse) + } + + // @@protoc_insertion_point(class_scope:vss.PutObjectResponse) + private static final org.vss.PutObjectResponse DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.PutObjectResponse(); + } + + public static org.vss.PutObjectResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PutObjectResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.PutObjectResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/PutObjectResponseOrBuilder.java b/java/app/src/main/generated/proto/org/vss/PutObjectResponseOrBuilder.java new file mode 100644 index 0000000..5e7ab21 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/PutObjectResponseOrBuilder.java @@ -0,0 +1,9 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface PutObjectResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.PutObjectResponse) + com.google.protobuf.MessageOrBuilder { +} diff --git a/java/app/src/main/generated/proto/org/vss/Storable.java b/java/app/src/main/generated/proto/org/vss/Storable.java new file mode 100644 index 0000000..70e35b6 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/Storable.java @@ -0,0 +1,789 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +/** + *

+ * Represents a storable object that can be serialized and stored as `value` in `PutObjectRequest`.
+ * Only provided as a helper object for ease of use by clients.
+ * Clients MUST encrypt the `PlaintextBlob` before using it as `data` in `Storable`.
+ * The server does not use or read anything from `Storable`, Clients may use its fields as
+ * required.
+ * 
+ *

+ * Protobuf type {@code vss.Storable} + */ +public final class Storable extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:vss.Storable) + StorableOrBuilder { + private static final long serialVersionUID = 0L; + + // Use Storable.newBuilder() to construct. + private Storable(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Storable() { + data_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + 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; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_Storable_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.Storable.class, org.vss.Storable.Builder.class); + } + + public static final int DATA_FIELD_NUMBER = 1; + private com.google.protobuf.ByteString data_; + + /** + *

+	 * Represents an encrypted and serialized `PlaintextBlob`. MUST encrypt the whole `PlaintextBlob`
+	 * using client-side encryption before setting here.
+	 * 
+ * + * bytes data = 1; + * + * @return The data. + */ + @java.lang.Override + public com.google.protobuf.ByteString getData() { + return data_; + } + + public static final int ENCRYPTION_METADATA_FIELD_NUMBER = 2; + private org.vss.EncryptionMetadata encryptionMetadata_; + + /** + *
+	 * Represents encryption related metadata
+	 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + * + * @return Whether the encryptionMetadata field is set. + */ + @java.lang.Override + public boolean hasEncryptionMetadata() { + return encryptionMetadata_ != null; + } + + /** + *
+	 * Represents encryption related metadata
+	 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + * + * @return The encryptionMetadata. + */ + @java.lang.Override + public org.vss.EncryptionMetadata getEncryptionMetadata() { + return encryptionMetadata_ == null ? org.vss.EncryptionMetadata.getDefaultInstance() : encryptionMetadata_; + } + + /** + *
+	 * Represents encryption related metadata
+	 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + */ + @java.lang.Override + public org.vss.EncryptionMetadataOrBuilder getEncryptionMetadataOrBuilder() { + return getEncryptionMetadata(); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!data_.isEmpty()) { + output.writeBytes(1, data_); + } + if (encryptionMetadata_ != null) { + output.writeMessage(2, getEncryptionMetadata()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!data_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, data_); + } + if (encryptionMetadata_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getEncryptionMetadata()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.vss.Storable)) { + return super.equals(obj); + } + org.vss.Storable other = (org.vss.Storable) obj; + + if (!getData() + .equals(other.getData())) return false; + if (hasEncryptionMetadata() != other.hasEncryptionMetadata()) return false; + if (hasEncryptionMetadata()) { + if (!getEncryptionMetadata() + .equals(other.getEncryptionMetadata())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + DATA_FIELD_NUMBER; + hash = (53 * hash) + getData().hashCode(); + if (hasEncryptionMetadata()) { + hash = (37 * hash) + ENCRYPTION_METADATA_FIELD_NUMBER; + hash = (53 * hash) + getEncryptionMetadata().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.vss.Storable parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.Storable parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.Storable parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.Storable parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.Storable parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static org.vss.Storable parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static org.vss.Storable parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.Storable parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.Storable parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static org.vss.Storable parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static org.vss.Storable parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + + public static org.vss.Storable parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(org.vss.Storable prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+	 * Represents a storable object that can be serialized and stored as `value` in `PutObjectRequest`.
+	 * Only provided as a helper object for ease of use by clients.
+	 * Clients MUST encrypt the `PlaintextBlob` before using it as `data` in `Storable`.
+	 * The server does not use or read anything from `Storable`, Clients may use its fields as
+	 * required.
+	 * 
+ *

+ * Protobuf type {@code vss.Storable} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:vss.Storable) + org.vss.StorableOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.vss.Vss.internal_static_vss_Storable_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.vss.Vss.internal_static_vss_Storable_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.vss.Storable.class, org.vss.Storable.Builder.class); + } + + // Construct using org.vss.Storable.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + data_ = com.google.protobuf.ByteString.EMPTY; + + if (encryptionMetadataBuilder_ == null) { + encryptionMetadata_ = null; + } else { + encryptionMetadata_ = null; + encryptionMetadataBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.vss.Vss.internal_static_vss_Storable_descriptor; + } + + @java.lang.Override + public org.vss.Storable getDefaultInstanceForType() { + return org.vss.Storable.getDefaultInstance(); + } + + @java.lang.Override + public org.vss.Storable build() { + org.vss.Storable result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @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(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.vss.Storable) { + return mergeFrom((org.vss.Storable) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.vss.Storable other) { + if (other == org.vss.Storable.getDefaultInstance()) return this; + if (other.getData() != com.google.protobuf.ByteString.EMPTY) { + setData(other.getData()); + } + if (other.hasEncryptionMetadata()) { + mergeEncryptionMetadata(other.getEncryptionMetadata()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + data_ = input.readBytes(); + + break; + } // case 10 + case 18: { + input.readMessage( + getEncryptionMetadataFieldBuilder().getBuilder(), + extensionRegistry); + + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; + + /** + *

+		 * Represents an encrypted and serialized `PlaintextBlob`. MUST encrypt the whole `PlaintextBlob`
+		 * using client-side encryption before setting here.
+		 * 
+ * + * bytes data = 1; + * + * @return The data. + */ + @java.lang.Override + public com.google.protobuf.ByteString getData() { + return data_; + } + + /** + *
+		 * Represents an encrypted and serialized `PlaintextBlob`. MUST encrypt the whole `PlaintextBlob`
+		 * using client-side encryption before setting here.
+		 * 
+ * + * bytes data = 1; + * + * @param value The data to set. + * @return This builder for chaining. + */ + public Builder setData(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + + data_ = value; + onChanged(); + return this; + } + + /** + *
+		 * Represents an encrypted and serialized `PlaintextBlob`. MUST encrypt the whole `PlaintextBlob`
+		 * using client-side encryption before setting here.
+		 * 
+ * + * bytes data = 1; + * + * @return This builder for chaining. + */ + public Builder clearData() { + + data_ = getDefaultInstance().getData(); + onChanged(); + return this; + } + + private org.vss.EncryptionMetadata encryptionMetadata_; + private com.google.protobuf.SingleFieldBuilderV3< + org.vss.EncryptionMetadata, org.vss.EncryptionMetadata.Builder, org.vss.EncryptionMetadataOrBuilder> encryptionMetadataBuilder_; + + /** + *
+		 * Represents encryption related metadata
+		 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + * + * @return Whether the encryptionMetadata field is set. + */ + public boolean hasEncryptionMetadata() { + return encryptionMetadataBuilder_ != null || encryptionMetadata_ != null; + } + + /** + *
+		 * Represents encryption related metadata
+		 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + * + * @return The encryptionMetadata. + */ + public org.vss.EncryptionMetadata getEncryptionMetadata() { + if (encryptionMetadataBuilder_ == null) { + return encryptionMetadata_ == null ? org.vss.EncryptionMetadata.getDefaultInstance() : encryptionMetadata_; + } else { + return encryptionMetadataBuilder_.getMessage(); + } + } + + /** + *
+		 * Represents encryption related metadata
+		 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + */ + public Builder setEncryptionMetadata(org.vss.EncryptionMetadata value) { + if (encryptionMetadataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + encryptionMetadata_ = value; + onChanged(); + } else { + encryptionMetadataBuilder_.setMessage(value); + } + + return this; + } + + /** + *
+		 * Represents encryption related metadata
+		 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + */ + public Builder setEncryptionMetadata( + org.vss.EncryptionMetadata.Builder builderForValue) { + if (encryptionMetadataBuilder_ == null) { + encryptionMetadata_ = builderForValue.build(); + onChanged(); + } else { + encryptionMetadataBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + + /** + *
+		 * Represents encryption related metadata
+		 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + */ + public Builder mergeEncryptionMetadata(org.vss.EncryptionMetadata value) { + if (encryptionMetadataBuilder_ == null) { + if (encryptionMetadata_ != null) { + encryptionMetadata_ = + org.vss.EncryptionMetadata.newBuilder(encryptionMetadata_).mergeFrom(value).buildPartial(); + } else { + encryptionMetadata_ = value; + } + onChanged(); + } else { + encryptionMetadataBuilder_.mergeFrom(value); + } + + return this; + } + + /** + *
+		 * Represents encryption related metadata
+		 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + */ + public Builder clearEncryptionMetadata() { + if (encryptionMetadataBuilder_ == null) { + encryptionMetadata_ = null; + onChanged(); + } else { + encryptionMetadata_ = null; + encryptionMetadataBuilder_ = null; + } + + return this; + } + + /** + *
+		 * Represents encryption related metadata
+		 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + */ + public org.vss.EncryptionMetadata.Builder getEncryptionMetadataBuilder() { + + onChanged(); + return getEncryptionMetadataFieldBuilder().getBuilder(); + } + + /** + *
+		 * Represents encryption related metadata
+		 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + */ + public org.vss.EncryptionMetadataOrBuilder getEncryptionMetadataOrBuilder() { + if (encryptionMetadataBuilder_ != null) { + return encryptionMetadataBuilder_.getMessageOrBuilder(); + } else { + return encryptionMetadata_ == null ? + org.vss.EncryptionMetadata.getDefaultInstance() : encryptionMetadata_; + } + } + + /** + *
+		 * Represents encryption related metadata
+		 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + org.vss.EncryptionMetadata, org.vss.EncryptionMetadata.Builder, org.vss.EncryptionMetadataOrBuilder> + getEncryptionMetadataFieldBuilder() { + if (encryptionMetadataBuilder_ == null) { + encryptionMetadataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + org.vss.EncryptionMetadata, org.vss.EncryptionMetadata.Builder, org.vss.EncryptionMetadataOrBuilder>( + getEncryptionMetadata(), + getParentForChildren(), + isClean()); + encryptionMetadata_ = null; + } + return encryptionMetadataBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:vss.Storable) + } + + // @@protoc_insertion_point(class_scope:vss.Storable) + private static final org.vss.Storable DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new org.vss.Storable(); + } + + public static org.vss.Storable getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Storable parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.vss.Storable getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/java/app/src/main/generated/proto/org/vss/StorableOrBuilder.java b/java/app/src/main/generated/proto/org/vss/StorableOrBuilder.java new file mode 100644 index 0000000..ba05db9 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/StorableOrBuilder.java @@ -0,0 +1,52 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public interface StorableOrBuilder extends + // @@protoc_insertion_point(interface_extends:vss.Storable) + com.google.protobuf.MessageOrBuilder { + + /** + *
+	 * Represents an encrypted and serialized `PlaintextBlob`. MUST encrypt the whole `PlaintextBlob`
+	 * using client-side encryption before setting here.
+	 * 
+ * + * bytes data = 1; + * + * @return The data. + */ + com.google.protobuf.ByteString getData(); + + /** + *
+	 * Represents encryption related metadata
+	 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + * + * @return Whether the encryptionMetadata field is set. + */ + boolean hasEncryptionMetadata(); + + /** + *
+	 * Represents encryption related metadata
+	 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + * + * @return The encryptionMetadata. + */ + org.vss.EncryptionMetadata getEncryptionMetadata(); + + /** + *
+	 * Represents encryption related metadata
+	 * 
+ * + * .vss.EncryptionMetadata encryption_metadata = 2; + */ + org.vss.EncryptionMetadataOrBuilder getEncryptionMetadataOrBuilder(); +} diff --git a/java/app/src/main/generated/proto/org/vss/Vss.java b/java/app/src/main/generated/proto/org/vss/Vss.java new file mode 100644 index 0000000..a768d82 --- /dev/null +++ b/java/app/src/main/generated/proto/org/vss/Vss.java @@ -0,0 +1,213 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vss.proto + +package org.vss; + +public final class Vss { + private Vss() { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_GetObjectRequest_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_GetObjectRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_GetObjectResponse_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_GetObjectResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_PutObjectRequest_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_PutObjectRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_PutObjectResponse_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_PutObjectResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_DeleteObjectRequest_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_DeleteObjectRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_DeleteObjectResponse_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_DeleteObjectResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_ListKeyVersionsRequest_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_ListKeyVersionsRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_ListKeyVersionsResponse_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_ListKeyVersionsResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_ErrorResponse_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_ErrorResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_KeyValue_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_KeyValue_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_Storable_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_Storable_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_EncryptionMetadata_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_EncryptionMetadata_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_vss_PlaintextBlob_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_vss_PlaintextBlob_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + + static { + java.lang.String[] descriptorData = { + "\n\tvss.proto\022\003vss\"1\n\020GetObjectRequest\022\020\n\010" + + "store_id\030\001 \001(\t\022\013\n\003key\030\002 \001(\t\"1\n\021GetObject" + + "Response\022\034\n\005value\030\002 \001(\0132\r.vss.KeyValue\"\243" + + "\001\n\020PutObjectRequest\022\020\n\010store_id\030\001 \001(\t\022\033\n" + + "\016global_version\030\002 \001(\003H\000\210\001\001\022(\n\021transactio" + + "n_items\030\003 \003(\0132\r.vss.KeyValue\022#\n\014delete_i" + + "tems\030\004 \003(\0132\r.vss.KeyValueB\021\n\017_global_ver" + + "sion\"\023\n\021PutObjectResponse\"I\n\023DeleteObjec" + + "tRequest\022\020\n\010store_id\030\001 \001(\t\022 \n\tkey_value\030" + + "\002 \001(\0132\r.vss.KeyValue\"\026\n\024DeleteObjectResp" + + "onse\"\240\001\n\026ListKeyVersionsRequest\022\020\n\010store" + + "_id\030\001 \001(\t\022\027\n\nkey_prefix\030\002 \001(\tH\000\210\001\001\022\026\n\tpa" + + "ge_size\030\003 \001(\005H\001\210\001\001\022\027\n\npage_token\030\004 \001(\tH\002" + + "\210\001\001B\r\n\013_key_prefixB\014\n\n_page_sizeB\r\n\013_pag" + + "e_token\"\240\001\n\027ListKeyVersionsResponse\022#\n\014k" + + "ey_versions\030\001 \003(\0132\r.vss.KeyValue\022\034\n\017next" + + "_page_token\030\002 \001(\tH\000\210\001\001\022\033\n\016global_version" + + "\030\003 \001(\003H\001\210\001\001B\022\n\020_next_page_tokenB\021\n\017_glob" + + "al_version\"D\n\rErrorResponse\022\"\n\nerror_cod" + + "e\030\001 \001(\0162\016.vss.ErrorCode\022\017\n\007message\030\002 \001(\t" + + "\"7\n\010KeyValue\022\013\n\003key\030\001 \001(\t\022\017\n\007version\030\002 \001" + + "(\003\022\r\n\005value\030\003 \001(\014\"N\n\010Storable\022\014\n\004data\030\001 " + + "\001(\014\0224\n\023encryption_metadata\030\002 \001(\0132\027.vss.E" + + "ncryptionMetadata\"G\n\022EncryptionMetadata\022" + + "\025\n\rcipher_format\030\001 \001(\t\022\r\n\005nonce\030\002 \001(\014\022\013\n" + + "\003tag\030\003 \001(\014\"/\n\rPlaintextBlob\022\r\n\005value\030\001 \001" + + "(\014\022\017\n\007version\030\002 \001(\003*\235\001\n\tErrorCode\022\013\n\007UNK" + + "NOWN\020\000\022\026\n\022CONFLICT_EXCEPTION\020\001\022\035\n\031INVALI" + + "D_REQUEST_EXCEPTION\020\002\022\035\n\031INTERNAL_SERVER" + + "_EXCEPTION\020\003\022\031\n\025NO_SUCH_KEY_EXCEPTION\020\004\022" + + "\022\n\016AUTH_EXCEPTION\020\005B\013\n\007org.vssP\001b\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[]{ + }); + internal_static_vss_GetObjectRequest_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_vss_GetObjectRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_vss_GetObjectRequest_descriptor, + new java.lang.String[]{"StoreId", "Key",}); + internal_static_vss_GetObjectResponse_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_vss_GetObjectResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_vss_GetObjectResponse_descriptor, + new java.lang.String[]{"Value",}); + internal_static_vss_PutObjectRequest_descriptor = + getDescriptor().getMessageTypes().get(2); + 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",}); + internal_static_vss_PutObjectResponse_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_vss_PutObjectResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_vss_PutObjectResponse_descriptor, + new java.lang.String[]{}); + internal_static_vss_DeleteObjectRequest_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_vss_DeleteObjectRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_vss_DeleteObjectRequest_descriptor, + new java.lang.String[]{"StoreId", "KeyValue",}); + internal_static_vss_DeleteObjectResponse_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_vss_DeleteObjectResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_vss_DeleteObjectResponse_descriptor, + new java.lang.String[]{}); + internal_static_vss_ListKeyVersionsRequest_descriptor = + getDescriptor().getMessageTypes().get(6); + 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",}); + 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",}); + internal_static_vss_ErrorResponse_descriptor = + getDescriptor().getMessageTypes().get(8); + internal_static_vss_ErrorResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_vss_ErrorResponse_descriptor, + new java.lang.String[]{"ErrorCode", "Message",}); + internal_static_vss_KeyValue_descriptor = + getDescriptor().getMessageTypes().get(9); + internal_static_vss_KeyValue_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_vss_KeyValue_descriptor, + new java.lang.String[]{"Key", "Version", "Value",}); + internal_static_vss_Storable_descriptor = + getDescriptor().getMessageTypes().get(10); + internal_static_vss_Storable_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_vss_Storable_descriptor, + new java.lang.String[]{"Data", "EncryptionMetadata",}); + internal_static_vss_EncryptionMetadata_descriptor = + getDescriptor().getMessageTypes().get(11); + internal_static_vss_EncryptionMetadata_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_vss_EncryptionMetadata_descriptor, + new java.lang.String[]{"CipherFormat", "Nonce", "Tag",}); + internal_static_vss_PlaintextBlob_descriptor = + getDescriptor().getMessageTypes().get(12); + internal_static_vss_PlaintextBlob_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_vss_PlaintextBlob_descriptor, + new java.lang.String[]{"Value", "Version",}); + } + + // @@protoc_insertion_point(outer_class_scope) +}