From cf3e3585963509e81439119342f9ff99ed26ed37 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 9 Oct 2023 19:46:14 +0000 Subject: [PATCH] chore: add Autoclass.terminal_storage_class and ListObjectRequest.match_glob (#2233) - [ ] Regenerate this pull request now. The terminal_storage_class field allows users to set the coldest storage class for Autoclass enabled buckets. An object in an Autoclass bucket will eventually cool down to the terminal storage class if there is no access to the object. PiperOrigin-RevId: 569316060 Source-Link: https://togithub.com/googleapis/googleapis/commit/6152583cc73cc80ad4db8fb628b8cdc5ef771557 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/4d0fb9143b3869e1d00104ba6983a0a66bfe6627 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNGQwZmI5MTQzYjM4NjllMWQwMDEwNGJhNjk4M2EwYTY2YmZlNjYyNyJ9 BEGIN_NESTED_COMMIT chore: add match_glob field to ListObjectsRequest This new field allows filtering out objects or prefixes from the listing. This can help improve performance by avoiding returning unwanted items. See https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob. PiperOrigin-RevId: 568887673 Source-Link: https://togithub.com/googleapis/googleapis/commit/cf24f76c17c84e976818811b607d79dac17e4ac6 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/8cbb1c0e2fadbd6ef6f61bc7b3899d5103ea1461 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiOGNiYjFjMGUyZmFkYmQ2ZWY2ZjYxYmM3YjM4OTlkNTEwM2VhMTQ2MSJ9 END_NESTED_COMMIT --- .../com/google/storage/v2/StorageClient.java | 3 + .../clirr-ignored-differences.xml | 12 + .../java/com/google/storage/v2/Bucket.java | 637 +++++++++++++- .../google/storage/v2/ListObjectsRequest.java | 203 +++++ .../v2/ListObjectsRequestOrBuilder.java | 31 + .../com/google/storage/v2/StorageProto.java | 787 +++++++++--------- .../proto/google/storage/v2/storage.proto | 15 + 7 files changed, 1298 insertions(+), 390 deletions(-) diff --git a/gapic-google-cloud-storage-v2/src/main/java/com/google/storage/v2/StorageClient.java b/gapic-google-cloud-storage-v2/src/main/java/com/google/storage/v2/StorageClient.java index 9d87789e8b..3246e7a8c7 100644 --- a/gapic-google-cloud-storage-v2/src/main/java/com/google/storage/v2/StorageClient.java +++ b/gapic-google-cloud-storage-v2/src/main/java/com/google/storage/v2/StorageClient.java @@ -2815,6 +2815,7 @@ public final ListObjectsPagedResponse listObjects(String parent) { * .setReadMask(FieldMask.newBuilder().build()) * .setLexicographicStart("lexicographicStart-2093413008") * .setLexicographicEnd("lexicographicEnd1646968169") + * .setMatchGlob("matchGlob613636317") * .build(); * for (Object element : storageClient.listObjects(request).iterateAll()) { * // doThingsWith(element); @@ -2854,6 +2855,7 @@ public final ListObjectsPagedResponse listObjects(ListObjectsRequest request) { * .setReadMask(FieldMask.newBuilder().build()) * .setLexicographicStart("lexicographicStart-2093413008") * .setLexicographicEnd("lexicographicEnd1646968169") + * .setMatchGlob("matchGlob613636317") * .build(); * ApiFuture future = storageClient.listObjectsPagedCallable().futureCall(request); * // Do something. @@ -2893,6 +2895,7 @@ public final ListObjectsPagedResponse listObjects(ListObjectsRequest request) { * .setReadMask(FieldMask.newBuilder().build()) * .setLexicographicStart("lexicographicStart-2093413008") * .setLexicographicEnd("lexicographicEnd1646968169") + * .setMatchGlob("matchGlob613636317") * .build(); * while (true) { * ListObjectsResponse response = storageClient.listObjectsCallable().call(request); diff --git a/proto-google-cloud-storage-v2/clirr-ignored-differences.xml b/proto-google-cloud-storage-v2/clirr-ignored-differences.xml index 84023400ba..4aff16dc9e 100644 --- a/proto-google-cloud-storage-v2/clirr-ignored-differences.xml +++ b/proto-google-cloud-storage-v2/clirr-ignored-differences.xml @@ -14,6 +14,18 @@ * *ObjectChecksums*(*) + + 7012 + com/google/storage/v2/Bucket* + * *TerminalStorageClass*(*) + + + + 7012 + com/google/storage/v2/ListObjectsRequestOrBuilder + * *MatchGlob*(*) + + 8001 diff --git a/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/Bucket.java b/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/Bucket.java index ab05c01fb6..9145ba620a 100644 --- a/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/Bucket.java +++ b/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/Bucket.java @@ -15416,6 +15416,90 @@ public interface AutoclassOrBuilder * */ com.google.protobuf.TimestampOrBuilder getToggleTimeOrBuilder(); + + /** + * + * + *
+     * An object in an Autoclass bucket will eventually cool down to the
+     * terminal storage class if there is no access to the object.
+     * The only valid values are NEARLINE and ARCHIVE.
+     * 
+ * + * optional string terminal_storage_class = 3; + * + * @return Whether the terminalStorageClass field is set. + */ + boolean hasTerminalStorageClass(); + /** + * + * + *
+     * An object in an Autoclass bucket will eventually cool down to the
+     * terminal storage class if there is no access to the object.
+     * The only valid values are NEARLINE and ARCHIVE.
+     * 
+ * + * optional string terminal_storage_class = 3; + * + * @return The terminalStorageClass. + */ + java.lang.String getTerminalStorageClass(); + /** + * + * + *
+     * An object in an Autoclass bucket will eventually cool down to the
+     * terminal storage class if there is no access to the object.
+     * The only valid values are NEARLINE and ARCHIVE.
+     * 
+ * + * optional string terminal_storage_class = 3; + * + * @return The bytes for terminalStorageClass. + */ + com.google.protobuf.ByteString getTerminalStorageClassBytes(); + + /** + * + * + *
+     * Latest instant at which the autoclass terminal storage class was updated.
+     * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the terminalStorageClassUpdateTime field is set. + */ + boolean hasTerminalStorageClassUpdateTime(); + /** + * + * + *
+     * Latest instant at which the autoclass terminal storage class was updated.
+     * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The terminalStorageClassUpdateTime. + */ + com.google.protobuf.Timestamp getTerminalStorageClassUpdateTime(); + /** + * + * + *
+     * Latest instant at which the autoclass terminal storage class was updated.
+     * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.protobuf.TimestampOrBuilder getTerminalStorageClassUpdateTimeOrBuilder(); } /** * @@ -15436,7 +15520,9 @@ private Autoclass(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private Autoclass() {} + private Autoclass() { + terminalStorageClass_ = ""; + } @java.lang.Override @SuppressWarnings({"unused"}) @@ -15459,6 +15545,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.storage.v2.Bucket.Autoclass.Builder.class); } + private int bitField0_; public static final int ENABLED_FIELD_NUMBER = 1; private boolean enabled_ = false; /** @@ -15538,6 +15625,134 @@ public com.google.protobuf.TimestampOrBuilder getToggleTimeOrBuilder() { return toggleTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : toggleTime_; } + public static final int TERMINAL_STORAGE_CLASS_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object terminalStorageClass_ = ""; + /** + * + * + *
+     * An object in an Autoclass bucket will eventually cool down to the
+     * terminal storage class if there is no access to the object.
+     * The only valid values are NEARLINE and ARCHIVE.
+     * 
+ * + * optional string terminal_storage_class = 3; + * + * @return Whether the terminalStorageClass field is set. + */ + @java.lang.Override + public boolean hasTerminalStorageClass() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * + * + *
+     * An object in an Autoclass bucket will eventually cool down to the
+     * terminal storage class if there is no access to the object.
+     * The only valid values are NEARLINE and ARCHIVE.
+     * 
+ * + * optional string terminal_storage_class = 3; + * + * @return The terminalStorageClass. + */ + @java.lang.Override + public java.lang.String getTerminalStorageClass() { + java.lang.Object ref = terminalStorageClass_; + 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(); + terminalStorageClass_ = s; + return s; + } + } + /** + * + * + *
+     * An object in an Autoclass bucket will eventually cool down to the
+     * terminal storage class if there is no access to the object.
+     * The only valid values are NEARLINE and ARCHIVE.
+     * 
+ * + * optional string terminal_storage_class = 3; + * + * @return The bytes for terminalStorageClass. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTerminalStorageClassBytes() { + java.lang.Object ref = terminalStorageClass_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + terminalStorageClass_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TERMINAL_STORAGE_CLASS_UPDATE_TIME_FIELD_NUMBER = 4; + private com.google.protobuf.Timestamp terminalStorageClassUpdateTime_; + /** + * + * + *
+     * Latest instant at which the autoclass terminal storage class was updated.
+     * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the terminalStorageClassUpdateTime field is set. + */ + @java.lang.Override + public boolean hasTerminalStorageClassUpdateTime() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * + * + *
+     * Latest instant at which the autoclass terminal storage class was updated.
+     * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The terminalStorageClassUpdateTime. + */ + @java.lang.Override + public com.google.protobuf.Timestamp getTerminalStorageClassUpdateTime() { + return terminalStorageClassUpdateTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : terminalStorageClassUpdateTime_; + } + /** + * + * + *
+     * Latest instant at which the autoclass terminal storage class was updated.
+     * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.protobuf.TimestampOrBuilder getTerminalStorageClassUpdateTimeOrBuilder() { + return terminalStorageClassUpdateTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : terminalStorageClassUpdateTime_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -15558,6 +15773,12 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (toggleTime_ != null) { output.writeMessage(2, getToggleTime()); } + if (((bitField0_ & 0x00000001) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, terminalStorageClass_); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(4, getTerminalStorageClassUpdateTime()); + } getUnknownFields().writeTo(output); } @@ -15573,6 +15794,14 @@ public int getSerializedSize() { if (toggleTime_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getToggleTime()); } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, terminalStorageClass_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 4, getTerminalStorageClassUpdateTime()); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -15593,6 +15822,16 @@ public boolean equals(final java.lang.Object obj) { if (hasToggleTime()) { if (!getToggleTime().equals(other.getToggleTime())) return false; } + if (hasTerminalStorageClass() != other.hasTerminalStorageClass()) return false; + if (hasTerminalStorageClass()) { + if (!getTerminalStorageClass().equals(other.getTerminalStorageClass())) return false; + } + if (hasTerminalStorageClassUpdateTime() != other.hasTerminalStorageClassUpdateTime()) + return false; + if (hasTerminalStorageClassUpdateTime()) { + if (!getTerminalStorageClassUpdateTime().equals(other.getTerminalStorageClassUpdateTime())) + return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -15610,6 +15849,14 @@ public int hashCode() { hash = (37 * hash) + TOGGLE_TIME_FIELD_NUMBER; hash = (53 * hash) + getToggleTime().hashCode(); } + if (hasTerminalStorageClass()) { + hash = (37 * hash) + TERMINAL_STORAGE_CLASS_FIELD_NUMBER; + hash = (53 * hash) + getTerminalStorageClass().hashCode(); + } + if (hasTerminalStorageClassUpdateTime()) { + hash = (37 * hash) + TERMINAL_STORAGE_CLASS_UPDATE_TIME_FIELD_NUMBER; + hash = (53 * hash) + getTerminalStorageClassUpdateTime().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -15741,10 +15988,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.storage.v2.Bucket.Autoclass.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getToggleTimeFieldBuilder(); + getTerminalStorageClassUpdateTimeFieldBuilder(); + } } @java.lang.Override @@ -15757,6 +16014,12 @@ public Builder clear() { toggleTimeBuilder_.dispose(); toggleTimeBuilder_ = null; } + terminalStorageClass_ = ""; + terminalStorageClassUpdateTime_ = null; + if (terminalStorageClassUpdateTimeBuilder_ != null) { + terminalStorageClassUpdateTimeBuilder_.dispose(); + terminalStorageClassUpdateTimeBuilder_ = null; + } return this; } @@ -15800,6 +16063,19 @@ private void buildPartial0(com.google.storage.v2.Bucket.Autoclass result) { result.toggleTime_ = toggleTimeBuilder_ == null ? toggleTime_ : toggleTimeBuilder_.build(); } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000004) != 0)) { + result.terminalStorageClass_ = terminalStorageClass_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.terminalStorageClassUpdateTime_ = + terminalStorageClassUpdateTimeBuilder_ == null + ? terminalStorageClassUpdateTime_ + : terminalStorageClassUpdateTimeBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -15855,6 +16131,14 @@ public Builder mergeFrom(com.google.storage.v2.Bucket.Autoclass other) { if (other.hasToggleTime()) { mergeToggleTime(other.getToggleTime()); } + if (other.hasTerminalStorageClass()) { + terminalStorageClass_ = other.terminalStorageClass_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasTerminalStorageClassUpdateTime()) { + mergeTerminalStorageClassUpdateTime(other.getTerminalStorageClassUpdateTime()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -15893,6 +16177,20 @@ public Builder mergeFrom( bitField0_ |= 0x00000002; break; } // case 18 + case 26: + { + terminalStorageClass_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + input.readMessage( + getTerminalStorageClassUpdateTimeFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -16193,6 +16491,341 @@ public com.google.protobuf.TimestampOrBuilder getToggleTimeOrBuilder() { return toggleTimeBuilder_; } + private java.lang.Object terminalStorageClass_ = ""; + /** + * + * + *
+       * An object in an Autoclass bucket will eventually cool down to the
+       * terminal storage class if there is no access to the object.
+       * The only valid values are NEARLINE and ARCHIVE.
+       * 
+ * + * optional string terminal_storage_class = 3; + * + * @return Whether the terminalStorageClass field is set. + */ + public boolean hasTerminalStorageClass() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + * + * + *
+       * An object in an Autoclass bucket will eventually cool down to the
+       * terminal storage class if there is no access to the object.
+       * The only valid values are NEARLINE and ARCHIVE.
+       * 
+ * + * optional string terminal_storage_class = 3; + * + * @return The terminalStorageClass. + */ + public java.lang.String getTerminalStorageClass() { + java.lang.Object ref = terminalStorageClass_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + terminalStorageClass_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * + * + *
+       * An object in an Autoclass bucket will eventually cool down to the
+       * terminal storage class if there is no access to the object.
+       * The only valid values are NEARLINE and ARCHIVE.
+       * 
+ * + * optional string terminal_storage_class = 3; + * + * @return The bytes for terminalStorageClass. + */ + public com.google.protobuf.ByteString getTerminalStorageClassBytes() { + java.lang.Object ref = terminalStorageClass_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + terminalStorageClass_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * + * + *
+       * An object in an Autoclass bucket will eventually cool down to the
+       * terminal storage class if there is no access to the object.
+       * The only valid values are NEARLINE and ARCHIVE.
+       * 
+ * + * optional string terminal_storage_class = 3; + * + * @param value The terminalStorageClass to set. + * @return This builder for chaining. + */ + public Builder setTerminalStorageClass(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + terminalStorageClass_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * + * + *
+       * An object in an Autoclass bucket will eventually cool down to the
+       * terminal storage class if there is no access to the object.
+       * The only valid values are NEARLINE and ARCHIVE.
+       * 
+ * + * optional string terminal_storage_class = 3; + * + * @return This builder for chaining. + */ + public Builder clearTerminalStorageClass() { + terminalStorageClass_ = getDefaultInstance().getTerminalStorageClass(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * + * + *
+       * An object in an Autoclass bucket will eventually cool down to the
+       * terminal storage class if there is no access to the object.
+       * The only valid values are NEARLINE and ARCHIVE.
+       * 
+ * + * optional string terminal_storage_class = 3; + * + * @param value The bytes for terminalStorageClass to set. + * @return This builder for chaining. + */ + public Builder setTerminalStorageClassBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + terminalStorageClass_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private com.google.protobuf.Timestamp terminalStorageClassUpdateTime_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + terminalStorageClassUpdateTimeBuilder_; + /** + * + * + *
+       * Latest instant at which the autoclass terminal storage class was updated.
+       * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the terminalStorageClassUpdateTime field is set. + */ + public boolean hasTerminalStorageClassUpdateTime() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + * + * + *
+       * Latest instant at which the autoclass terminal storage class was updated.
+       * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The terminalStorageClassUpdateTime. + */ + public com.google.protobuf.Timestamp getTerminalStorageClassUpdateTime() { + if (terminalStorageClassUpdateTimeBuilder_ == null) { + return terminalStorageClassUpdateTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : terminalStorageClassUpdateTime_; + } else { + return terminalStorageClassUpdateTimeBuilder_.getMessage(); + } + } + /** + * + * + *
+       * Latest instant at which the autoclass terminal storage class was updated.
+       * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setTerminalStorageClassUpdateTime(com.google.protobuf.Timestamp value) { + if (terminalStorageClassUpdateTimeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + terminalStorageClassUpdateTime_ = value; + } else { + terminalStorageClassUpdateTimeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * + * + *
+       * Latest instant at which the autoclass terminal storage class was updated.
+       * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setTerminalStorageClassUpdateTime( + com.google.protobuf.Timestamp.Builder builderForValue) { + if (terminalStorageClassUpdateTimeBuilder_ == null) { + terminalStorageClassUpdateTime_ = builderForValue.build(); + } else { + terminalStorageClassUpdateTimeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * + * + *
+       * Latest instant at which the autoclass terminal storage class was updated.
+       * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder mergeTerminalStorageClassUpdateTime(com.google.protobuf.Timestamp value) { + if (terminalStorageClassUpdateTimeBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) + && terminalStorageClassUpdateTime_ != null + && terminalStorageClassUpdateTime_ + != com.google.protobuf.Timestamp.getDefaultInstance()) { + getTerminalStorageClassUpdateTimeBuilder().mergeFrom(value); + } else { + terminalStorageClassUpdateTime_ = value; + } + } else { + terminalStorageClassUpdateTimeBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * + * + *
+       * Latest instant at which the autoclass terminal storage class was updated.
+       * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearTerminalStorageClassUpdateTime() { + bitField0_ = (bitField0_ & ~0x00000008); + terminalStorageClassUpdateTime_ = null; + if (terminalStorageClassUpdateTimeBuilder_ != null) { + terminalStorageClassUpdateTimeBuilder_.dispose(); + terminalStorageClassUpdateTimeBuilder_ = null; + } + onChanged(); + return this; + } + /** + * + * + *
+       * Latest instant at which the autoclass terminal storage class was updated.
+       * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.protobuf.Timestamp.Builder getTerminalStorageClassUpdateTimeBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getTerminalStorageClassUpdateTimeFieldBuilder().getBuilder(); + } + /** + * + * + *
+       * Latest instant at which the autoclass terminal storage class was updated.
+       * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.protobuf.TimestampOrBuilder getTerminalStorageClassUpdateTimeOrBuilder() { + if (terminalStorageClassUpdateTimeBuilder_ != null) { + return terminalStorageClassUpdateTimeBuilder_.getMessageOrBuilder(); + } else { + return terminalStorageClassUpdateTime_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : terminalStorageClassUpdateTime_; + } + } + /** + * + * + *
+       * Latest instant at which the autoclass terminal storage class was updated.
+       * 
+ * + * + * optional .google.protobuf.Timestamp terminal_storage_class_update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + getTerminalStorageClassUpdateTimeFieldBuilder() { + if (terminalStorageClassUpdateTimeBuilder_ == null) { + terminalStorageClassUpdateTimeBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder>( + getTerminalStorageClassUpdateTime(), getParentForChildren(), isClean()); + terminalStorageClassUpdateTime_ = null; + } + return terminalStorageClassUpdateTimeBuilder_; + } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { diff --git a/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/ListObjectsRequest.java b/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/ListObjectsRequest.java index 300a8dc1fd..7042324f37 100644 --- a/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/ListObjectsRequest.java +++ b/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/ListObjectsRequest.java @@ -44,6 +44,7 @@ private ListObjectsRequest() { prefix_ = ""; lexicographicStart_ = ""; lexicographicEnd_ = ""; + matchGlob_ = ""; } @java.lang.Override @@ -519,6 +520,63 @@ public com.google.protobuf.ByteString getLexicographicEndBytes() { } } + public static final int MATCH_GLOB_FIELD_NUMBER = 14; + + @SuppressWarnings("serial") + private volatile java.lang.Object matchGlob_ = ""; + /** + * + * + *
+   * Optional. Filter results to objects and prefixes that match this glob
+   * pattern. See [List Objects Using
+   * Glob](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob)
+   * for the full syntax.
+   * 
+ * + * string match_glob = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The matchGlob. + */ + @java.lang.Override + public java.lang.String getMatchGlob() { + java.lang.Object ref = matchGlob_; + 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(); + matchGlob_ = s; + return s; + } + } + /** + * + * + *
+   * Optional. Filter results to objects and prefixes that match this glob
+   * pattern. See [List Objects Using
+   * Glob](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob)
+   * for the full syntax.
+   * 
+ * + * string match_glob = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for matchGlob. + */ + @java.lang.Override + public com.google.protobuf.ByteString getMatchGlobBytes() { + java.lang.Object ref = matchGlob_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + matchGlob_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -563,6 +621,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(lexicographicEnd_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 11, lexicographicEnd_); } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(matchGlob_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 14, matchGlob_); + } getUnknownFields().writeTo(output); } @@ -602,6 +663,9 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(lexicographicEnd_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, lexicographicEnd_); } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(matchGlob_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, matchGlob_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -630,6 +694,7 @@ public boolean equals(final java.lang.Object obj) { } if (!getLexicographicStart().equals(other.getLexicographicStart())) return false; if (!getLexicographicEnd().equals(other.getLexicographicEnd())) return false; + if (!getMatchGlob().equals(other.getMatchGlob())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -663,6 +728,8 @@ public int hashCode() { hash = (53 * hash) + getLexicographicStart().hashCode(); hash = (37 * hash) + LEXICOGRAPHIC_END_FIELD_NUMBER; hash = (53 * hash) + getLexicographicEnd().hashCode(); + hash = (37 * hash) + MATCH_GLOB_FIELD_NUMBER; + hash = (53 * hash) + getMatchGlob().hashCode(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -825,6 +892,7 @@ public Builder clear() { } lexicographicStart_ = ""; lexicographicEnd_ = ""; + matchGlob_ = ""; return this; } @@ -893,6 +961,9 @@ private void buildPartial0(com.google.storage.v2.ListObjectsRequest result) { if (((from_bitField0_ & 0x00000200) != 0)) { result.lexicographicEnd_ = lexicographicEnd_; } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.matchGlob_ = matchGlob_; + } result.bitField0_ |= to_bitField0_; } @@ -983,6 +1054,11 @@ public Builder mergeFrom(com.google.storage.v2.ListObjectsRequest other) { bitField0_ |= 0x00000200; onChanged(); } + if (!other.getMatchGlob().isEmpty()) { + matchGlob_ = other.matchGlob_; + bitField0_ |= 0x00000400; + onChanged(); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -1069,6 +1145,12 @@ public Builder mergeFrom( bitField0_ |= 0x00000200; break; } // case 90 + case 114: + { + matchGlob_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000400; + break; + } // case 114 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -2183,6 +2265,127 @@ public Builder setLexicographicEndBytes(com.google.protobuf.ByteString value) { return this; } + private java.lang.Object matchGlob_ = ""; + /** + * + * + *
+     * Optional. Filter results to objects and prefixes that match this glob
+     * pattern. See [List Objects Using
+     * Glob](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob)
+     * for the full syntax.
+     * 
+ * + * string match_glob = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The matchGlob. + */ + public java.lang.String getMatchGlob() { + java.lang.Object ref = matchGlob_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + matchGlob_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * + * + *
+     * Optional. Filter results to objects and prefixes that match this glob
+     * pattern. See [List Objects Using
+     * Glob](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob)
+     * for the full syntax.
+     * 
+ * + * string match_glob = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for matchGlob. + */ + public com.google.protobuf.ByteString getMatchGlobBytes() { + java.lang.Object ref = matchGlob_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + matchGlob_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * + * + *
+     * Optional. Filter results to objects and prefixes that match this glob
+     * pattern. See [List Objects Using
+     * Glob](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob)
+     * for the full syntax.
+     * 
+ * + * string match_glob = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The matchGlob to set. + * @return This builder for chaining. + */ + public Builder setMatchGlob(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + matchGlob_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * + * + *
+     * Optional. Filter results to objects and prefixes that match this glob
+     * pattern. See [List Objects Using
+     * Glob](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob)
+     * for the full syntax.
+     * 
+ * + * string match_glob = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearMatchGlob() { + matchGlob_ = getDefaultInstance().getMatchGlob(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + return this; + } + /** + * + * + *
+     * Optional. Filter results to objects and prefixes that match this glob
+     * pattern. See [List Objects Using
+     * Glob](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob)
+     * for the full syntax.
+     * 
+ * + * string match_glob = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for matchGlob to set. + * @return This builder for chaining. + */ + public Builder setMatchGlobBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + matchGlob_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); diff --git a/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/ListObjectsRequestOrBuilder.java b/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/ListObjectsRequestOrBuilder.java index 888aab23bd..2a9a21196e 100644 --- a/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/ListObjectsRequestOrBuilder.java +++ b/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/ListObjectsRequestOrBuilder.java @@ -291,4 +291,35 @@ public interface ListObjectsRequestOrBuilder * @return The bytes for lexicographicEnd. */ com.google.protobuf.ByteString getLexicographicEndBytes(); + + /** + * + * + *
+   * Optional. Filter results to objects and prefixes that match this glob
+   * pattern. See [List Objects Using
+   * Glob](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob)
+   * for the full syntax.
+   * 
+ * + * string match_glob = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The matchGlob. + */ + java.lang.String getMatchGlob(); + /** + * + * + *
+   * Optional. Filter results to objects and prefixes that match this glob
+   * pattern. See [List Objects Using
+   * Glob](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob)
+   * for the full syntax.
+   * 
+ * + * string match_glob = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for matchGlob. + */ + com.google.protobuf.ByteString getMatchGlobBytes(); } diff --git a/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/StorageProto.java b/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/StorageProto.java index 561de97d9b..9d44d5559c 100644 --- a/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/StorageProto.java +++ b/proto-google-cloud-storage-v2/src/main/java/com/google/storage/v2/StorageProto.java @@ -483,7 +483,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "tRequestParamsB\017\n\rfirst_messageB\006\n\004data\"" + "n\n\023WriteObjectResponse\022\030\n\016persisted_size" + "\030\001 \001(\003H\000\022-\n\010resource\030\002 \001(\0132\031.google.stor" - + "age.v2.ObjectH\000B\016\n\014write_status\"\322\002\n\022List" + + "age.v2.ObjectH\000B\016\n\014write_status\"\354\002\n\022List" + "ObjectsRequest\0226\n\006parent\030\001 \001(\tB&\342A\001\002\372A\037\n" + "\035storage.googleapis.com/Bucket\022\021\n\tpage_s" + "ize\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\022\021\n\tdelimit" @@ -491,393 +491,398 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + " \001(\010\022\016\n\006prefix\030\006 \001(\t\022\020\n\010versions\030\007 \001(\010\0222" + "\n\tread_mask\030\010 \001(\0132\032.google.protobuf.Fiel" + "dMaskH\000\210\001\001\022!\n\023lexicographic_start\030\n \001(\tB" - + "\004\342A\001\001\022\037\n\021lexicographic_end\030\013 \001(\tB\004\342A\001\001B\014" - + "\n\n_read_mask\"\206\001\n\027QueryWriteStatusRequest" - + "\022\027\n\tupload_id\030\001 \001(\tB\004\342A\001\002\022R\n\034common_obje" - + "ct_request_params\030\002 \001(\0132,.google.storage" - + ".v2.CommonObjectRequestParams\"s\n\030QueryWr" - + "iteStatusResponse\022\030\n\016persisted_size\030\001 \001(" - + "\003H\000\022-\n\010resource\030\002 \001(\0132\031.google.storage.v" - + "2.ObjectH\000B\016\n\014write_status\"\250\n\n\024RewriteOb" - + "jectRequest\022\037\n\020destination_name\030\030 \001(\tB\005\342" - + "A\002\002\005\022C\n\022destination_bucket\030\031 \001(\tB\'\342A\002\002\005\372" - + "A\037\n\035storage.googleapis.com/Bucket\022C\n\023des" - + "tination_kms_key\030\033 \001(\tB&\372A#\n!cloudkms.go" - + "ogleapis.com/CryptoKey\022.\n\013destination\030\001 " - + "\001(\0132\031.google.storage.v2.Object\022=\n\rsource" - + "_bucket\030\002 \001(\tB&\342A\001\002\372A\037\n\035storage.googleap" - + "is.com/Bucket\022\033\n\rsource_object\030\003 \001(\tB\004\342A" - + "\001\002\022\031\n\021source_generation\030\004 \001(\003\022\025\n\rrewrite" - + "_token\030\005 \001(\t\022\"\n\032destination_predefined_a" - + "cl\030\034 \001(\t\022 \n\023if_generation_match\030\007 \001(\003H\000\210" - + "\001\001\022$\n\027if_generation_not_match\030\010 \001(\003H\001\210\001\001" - + "\022$\n\027if_metageneration_match\030\t \001(\003H\002\210\001\001\022(" - + "\n\033if_metageneration_not_match\030\n \001(\003H\003\210\001\001" - + "\022\'\n\032if_source_generation_match\030\013 \001(\003H\004\210\001" - + "\001\022+\n\036if_source_generation_not_match\030\014 \001(" - + "\003H\005\210\001\001\022+\n\036if_source_metageneration_match" - + "\030\r \001(\003H\006\210\001\001\022/\n\"if_source_metageneration_" - + "not_match\030\016 \001(\003H\007\210\001\001\022$\n\034max_bytes_rewrit" - + "ten_per_call\030\017 \001(\003\022(\n copy_source_encryp" - + "tion_algorithm\030\020 \001(\t\022(\n copy_source_encr" - + "yption_key_bytes\030\025 \001(\014\022/\n\'copy_source_en" - + "cryption_key_sha256_bytes\030\026 \001(\014\022R\n\034commo" - + "n_object_request_params\030\023 \001(\0132,.google.s" - + "torage.v2.CommonObjectRequestParams\022<\n\020o" - + "bject_checksums\030\035 \001(\0132\".google.storage.v" - + "2.ObjectChecksumsB\026\n\024_if_generation_matc" - + "hB\032\n\030_if_generation_not_matchB\032\n\030_if_met" - + "ageneration_matchB\036\n\034_if_metageneration_" - + "not_matchB\035\n\033_if_source_generation_match" - + "B!\n\037_if_source_generation_not_matchB!\n\037_" - + "if_source_metageneration_matchB%\n#_if_so" - + "urce_metageneration_not_match\"\227\001\n\017Rewrit" - + "eResponse\022\035\n\025total_bytes_rewritten\030\001 \001(\003" - + "\022\023\n\013object_size\030\002 \001(\003\022\014\n\004done\030\003 \001(\010\022\025\n\rr" - + "ewrite_token\030\004 \001(\t\022+\n\010resource\030\005 \001(\0132\031.g" - + "oogle.storage.v2.Object\"\363\001\n\032StartResumab" - + "leWriteRequest\022C\n\021write_object_spec\030\001 \001(" - + "\0132\".google.storage.v2.WriteObjectSpecB\004\342" - + "A\001\002\022R\n\034common_object_request_params\030\003 \001(" - + "\0132,.google.storage.v2.CommonObjectReques" - + "tParams\022<\n\020object_checksums\030\005 \001(\0132\".goog" - + "le.storage.v2.ObjectChecksums\"0\n\033StartRe" - + "sumableWriteResponse\022\021\n\tupload_id\030\001 \001(\t\"" - + "\361\003\n\023UpdateObjectRequest\022/\n\006object\030\001 \001(\0132" - + "\031.google.storage.v2.ObjectB\004\342A\001\002\022 \n\023if_g" - + "eneration_match\030\002 \001(\003H\000\210\001\001\022$\n\027if_generat" - + "ion_not_match\030\003 \001(\003H\001\210\001\001\022$\n\027if_metagener" - + "ation_match\030\004 \001(\003H\002\210\001\001\022(\n\033if_metagenerat" - + "ion_not_match\030\005 \001(\003H\003\210\001\001\022\026\n\016predefined_a" - + "cl\030\n \001(\t\0225\n\013update_mask\030\007 \001(\0132\032.google.p" - + "rotobuf.FieldMaskB\004\342A\001\002\022R\n\034common_object" - + "_request_params\030\010 \001(\0132,.google.storage.v" - + "2.CommonObjectRequestParamsB\026\n\024_if_gener" - + "ation_matchB\032\n\030_if_generation_not_matchB" - + "\032\n\030_if_metageneration_matchB\036\n\034_if_metag" - + "eneration_not_match\"a\n\030GetServiceAccount" - + "Request\022E\n\007project\030\001 \001(\tB4\342A\001\002\372A-\n+cloud" - + "resourcemanager.googleapis.com/Project\"\202" - + "\001\n\024CreateHmacKeyRequest\022E\n\007project\030\001 \001(\t" - + "B4\342A\001\002\372A-\n+cloudresourcemanager.googleap" - + "is.com/Project\022#\n\025service_account_email\030" - + "\002 \001(\tB\004\342A\001\002\"g\n\025CreateHmacKeyResponse\0224\n\010" - + "metadata\030\001 \001(\0132\".google.storage.v2.HmacK" - + "eyMetadata\022\030\n\020secret_key_bytes\030\003 \001(\014\"v\n\024" - + "DeleteHmacKeyRequest\022\027\n\taccess_id\030\001 \001(\tB" - + "\004\342A\001\002\022E\n\007project\030\002 \001(\tB4\342A\001\002\372A-\n+cloudre" - + "sourcemanager.googleapis.com/Project\"s\n\021" - + "GetHmacKeyRequest\022\027\n\taccess_id\030\001 \001(\tB\004\342A" - + "\001\002\022E\n\007project\030\002 \001(\tB4\342A\001\002\372A-\n+cloudresou" - + "rcemanager.googleapis.com/Project\"\275\001\n\023Li" - + "stHmacKeysRequest\022E\n\007project\030\001 \001(\tB4\342A\001\002" - + "\372A-\n+cloudresourcemanager.googleapis.com" - + "/Project\022\021\n\tpage_size\030\002 \001(\005\022\022\n\npage_toke" - + "n\030\003 \001(\t\022\035\n\025service_account_email\030\004 \001(\t\022\031" - + "\n\021show_deleted_keys\030\005 \001(\010\"f\n\024ListHmacKey" - + "sResponse\0225\n\thmac_keys\030\001 \003(\0132\".google.st" - + "orage.v2.HmacKeyMetadata\022\027\n\017next_page_to" - + "ken\030\002 \001(\t\"\203\001\n\024UpdateHmacKeyRequest\022:\n\010hm" - + "ac_key\030\001 \001(\0132\".google.storage.v2.HmacKey" - + "MetadataB\004\342A\001\002\022/\n\013update_mask\030\003 \001(\0132\032.go" - + "ogle.protobuf.FieldMask\"|\n\031CommonObjectR" - + "equestParams\022\034\n\024encryption_algorithm\030\001 \001" - + "(\t\022\034\n\024encryption_key_bytes\030\004 \001(\014\022#\n\033encr" - + "yption_key_sha256_bytes\030\005 \001(\014\"\312\005\n\020Servic" - + "eConstants\"\265\005\n\006Values\022\026\n\022VALUES_UNSPECIF" - + "IED\020\000\022\033\n\024MAX_READ_CHUNK_BYTES\020\200\200\200\001\022\034\n\025MA" - + "X_WRITE_CHUNK_BYTES\020\200\200\200\001\022\031\n\022MAX_OBJECT_S" - + "IZE_MB\020\200\200\300\002\022)\n$MAX_CUSTOM_METADATA_FIELD" - + "_NAME_BYTES\020\200\010\022*\n%MAX_CUSTOM_METADATA_FI" - + "ELD_VALUE_BYTES\020\200 \022)\n$MAX_CUSTOM_METADAT" - + "A_TOTAL_SIZE_BYTES\020\200@\022*\n$MAX_BUCKET_META" - + "DATA_TOTAL_SIZE_BYTES\020\200\240\001\022\'\n#MAX_NOTIFIC" - + "ATION_CONFIGS_PER_BUCKET\020d\022\"\n\036MAX_LIFECY" - + "CLE_RULES_PER_BUCKET\020d\022&\n\"MAX_NOTIFICATI" - + "ON_CUSTOM_ATTRIBUTES\020\005\0221\n,MAX_NOTIFICATI" - + "ON_CUSTOM_ATTRIBUTE_KEY_LENGTH\020\200\002\0223\n.MAX" - + "_NOTIFICATION_CUSTOM_ATTRIBUTE_VALUE_LEN" - + "GTH\020\200\010\022\034\n\030MAX_LABELS_ENTRIES_COUNT\020@\022\037\n\033" - + "MAX_LABELS_KEY_VALUE_LENGTH\020?\022\037\n\032MAX_LAB" - + "ELS_KEY_VALUE_BYTES\020\200\001\022.\n)MAX_OBJECT_IDS" - + "_PER_DELETE_OBJECTS_REQUEST\020\350\007\022\036\n\032SPLIT_" - + "TOKEN_MAX_VALID_DAYS\020\016\032\002\020\001\"\334\027\n\006Bucket\022\022\n" - + "\004name\030\001 \001(\tB\004\342A\001\005\022\027\n\tbucket_id\030\002 \001(\tB\004\342A" - + "\001\003\022\014\n\004etag\030\035 \001(\t\022E\n\007project\030\003 \001(\tB4\342A\001\005\372" - + "A-\n+cloudresourcemanager.googleapis.com/" - + "Project\022\034\n\016metageneration\030\004 \001(\003B\004\342A\001\003\022\026\n" - + "\010location\030\005 \001(\tB\004\342A\001\005\022\033\n\rlocation_type\030\006" - + " \001(\tB\004\342A\001\003\022\025\n\rstorage_class\030\007 \001(\t\022\013\n\003rpo" - + "\030\033 \001(\t\0223\n\003acl\030\010 \003(\0132&.google.storage.v2." - + "BucketAccessControl\022B\n\022default_object_ac" - + "l\030\t \003(\0132&.google.storage.v2.ObjectAccess" - + "Control\0226\n\tlifecycle\030\n \001(\0132#.google.stor" - + "age.v2.Bucket.Lifecycle\0225\n\013create_time\030\013" - + " \001(\0132\032.google.protobuf.TimestampB\004\342A\001\003\022," - + "\n\004cors\030\014 \003(\0132\036.google.storage.v2.Bucket." - + "Cors\0225\n\013update_time\030\r \001(\0132\032.google.proto" - + "buf.TimestampB\004\342A\001\003\022 \n\030default_event_bas" - + "ed_hold\030\016 \001(\010\0225\n\006labels\030\017 \003(\0132%.google.s" - + "torage.v2.Bucket.LabelsEntry\0222\n\007website\030" - + "\020 \001(\0132!.google.storage.v2.Bucket.Website" - + "\0228\n\nversioning\030\021 \001(\0132$.google.storage.v2" - + ".Bucket.Versioning\0222\n\007logging\030\022 \001(\0132!.go" - + "ogle.storage.v2.Bucket.Logging\022-\n\005owner\030" - + "\023 \001(\0132\030.google.storage.v2.OwnerB\004\342A\001\003\0228\n" - + "\nencryption\030\024 \001(\0132$.google.storage.v2.Bu" - + "cket.Encryption\0222\n\007billing\030\025 \001(\0132!.googl" - + "e.storage.v2.Bucket.Billing\022C\n\020retention" - + "_policy\030\026 \001(\0132).google.storage.v2.Bucket" - + ".RetentionPolicy\0227\n\niam_config\030\027 \001(\0132#.g" - + "oogle.storage.v2.Bucket.IamConfig\022\025\n\rsat" - + "isfies_pzs\030\031 \001(\010\022P\n\027custom_placement_con" - + "fig\030\032 \001(\0132/.google.storage.v2.Bucket.Cus" - + "tomPlacementConfig\0226\n\tautoclass\030\034 \001(\0132#." - + "google.storage.v2.Bucket.Autoclass\032!\n\007Bi" - + "lling\022\026\n\016requester_pays\030\001 \001(\010\032X\n\004Cors\022\016\n" - + "\006origin\030\001 \003(\t\022\016\n\006method\030\002 \003(\t\022\027\n\017respons" - + "e_header\030\003 \003(\t\022\027\n\017max_age_seconds\030\004 \001(\005\032" - + "M\n\nEncryption\022?\n\017default_kms_key\030\001 \001(\tB&" - + "\372A#\n!cloudkms.googleapis.com/CryptoKey\032\354" - + "\001\n\tIamConfig\022a\n\033uniform_bucket_level_acc" - + "ess\030\001 \001(\0132<.google.storage.v2.Bucket.Iam" - + "Config.UniformBucketLevelAccess\022 \n\030publi" - + "c_access_prevention\030\003 \001(\t\032Z\n\030UniformBuck" - + "etLevelAccess\022\017\n\007enabled\030\001 \001(\010\022-\n\tlock_t" - + "ime\030\002 \001(\0132\032.google.protobuf.Timestamp\032\363\005" - + "\n\tLifecycle\0226\n\004rule\030\001 \003(\0132(.google.stora" - + "ge.v2.Bucket.Lifecycle.Rule\032\255\005\n\004Rule\022?\n\006" - + "action\030\001 \001(\0132/.google.storage.v2.Bucket." - + "Lifecycle.Rule.Action\022E\n\tcondition\030\002 \001(\013" - + "22.google.storage.v2.Bucket.Lifecycle.Ru" - + "le.Condition\032-\n\006Action\022\014\n\004type\030\001 \001(\t\022\025\n\r" - + "storage_class\030\002 \001(\t\032\355\003\n\tCondition\022\025\n\010age" - + "_days\030\001 \001(\005H\000\210\001\001\022)\n\016created_before\030\002 \001(\013" - + "2\021.google.type.Date\022\024\n\007is_live\030\003 \001(\010H\001\210\001" - + "\001\022\037\n\022num_newer_versions\030\004 \001(\005H\002\210\001\001\022\035\n\025ma" - + "tches_storage_class\030\005 \003(\t\022#\n\026days_since_" - + "custom_time\030\007 \001(\005H\003\210\001\001\022-\n\022custom_time_be" - + "fore\030\010 \001(\0132\021.google.type.Date\022\'\n\032days_si" - + "nce_noncurrent_time\030\t \001(\005H\004\210\001\001\0221\n\026noncur" - + "rent_time_before\030\n \001(\0132\021.google.type.Dat" - + "e\022\026\n\016matches_prefix\030\013 \003(\t\022\026\n\016matches_suf" - + "fix\030\014 \003(\tB\013\n\t_age_daysB\n\n\010_is_liveB\025\n\023_n" - + "um_newer_versionsB\031\n\027_days_since_custom_" - + "timeB\035\n\033_days_since_noncurrent_time\0328\n\007L" - + "ogging\022\022\n\nlog_bucket\030\001 \001(\t\022\031\n\021log_object" - + "_prefix\030\002 \001(\t\032\217\001\n\017RetentionPolicy\0222\n\016eff" - + "ective_time\030\001 \001(\0132\032.google.protobuf.Time" - + "stamp\022\021\n\tis_locked\030\002 \001(\010\0225\n\022retention_du" - + "ration\030\004 \001(\0132\031.google.protobuf.Duration\032" - + "\035\n\nVersioning\022\017\n\007enabled\030\001 \001(\010\032;\n\007Websit" - + "e\022\030\n\020main_page_suffix\030\001 \001(\t\022\026\n\016not_found" - + "_page\030\002 \001(\t\032/\n\025CustomPlacementConfig\022\026\n\016" - + "data_locations\030\001 \003(\t\032S\n\tAutoclass\022\017\n\007ena" - + "bled\030\001 \001(\010\0225\n\013toggle_time\030\002 \001(\0132\032.google" - + ".protobuf.TimestampB\004\342A\001\003\032-\n\013LabelsEntry" - + "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001:G\352AD\n\035s" - + "torage.googleapis.com/Bucket\022#projects/{" - + "project}/buckets/{bucket}\"\317\001\n\023BucketAcce" - + "ssControl\022\014\n\004role\030\001 \001(\t\022\n\n\002id\030\002 \001(\t\022\016\n\006e" - + "ntity\030\003 \001(\t\022\030\n\nentity_alt\030\t \001(\tB\004\342A\001\003\022\021\n" - + "\tentity_id\030\004 \001(\t\022\014\n\004etag\030\010 \001(\t\022\r\n\005email\030" - + "\005 \001(\t\022\016\n\006domain\030\006 \001(\t\0224\n\014project_team\030\007 " - + "\001(\0132\036.google.storage.v2.ProjectTeam\"F\n\017C" - + "hecksummedData\022\023\n\007content\030\001 \001(\014B\002\010\001\022\023\n\006c" - + "rc32c\030\002 \001(\007H\000\210\001\001B\t\n\007_crc32c\"C\n\017ObjectChe" - + "cksums\022\023\n\006crc32c\030\001 \001(\007H\000\210\001\001\022\020\n\010md5_hash\030" - + "\002 \001(\014B\t\n\007_crc32c\"\263\002\n\017HmacKeyMetadata\022\020\n\002" - + "id\030\001 \001(\tB\004\342A\001\005\022\027\n\taccess_id\030\002 \001(\tB\004\342A\001\005\022" - + "E\n\007project\030\003 \001(\tB4\342A\001\005\372A-\n+cloudresource" - + "manager.googleapis.com/Project\022#\n\025servic" - + "e_account_email\030\004 \001(\tB\004\342A\001\003\022\r\n\005state\030\005 \001" - + "(\t\0225\n\013create_time\030\006 \001(\0132\032.google.protobu" - + "f.TimestampB\004\342A\001\003\0225\n\013update_time\030\007 \001(\0132\032" - + ".google.protobuf.TimestampB\004\342A\001\003\022\014\n\004etag" - + "\030\010 \001(\t\"\252\003\n\022NotificationConfig\022\022\n\004name\030\001 " - + "\001(\tB\004\342A\001\002\022\023\n\005topic\030\002 \001(\tB\004\342A\001\002\022\014\n\004etag\030\007" - + " \001(\t\022\023\n\013event_types\030\003 \003(\t\022V\n\021custom_attr" - + "ibutes\030\004 \003(\0132;.google.storage.v2.Notific" - + "ationConfig.CustomAttributesEntry\022\032\n\022obj" - + "ect_name_prefix\030\005 \001(\t\022\034\n\016payload_format\030" - + "\006 \001(\tB\004\342A\001\002\0327\n\025CustomAttributesEntry\022\013\n\003" - + "key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001:}\352Az\n)stora" - + "ge.googleapis.com/NotificationConfig\022Mpr" - + "ojects/{project}/buckets/{bucket}/notifi" - + "cationConfigs/{notification_config}\"L\n\022C" - + "ustomerEncryption\022\034\n\024encryption_algorith" - + "m\030\001 \001(\t\022\030\n\020key_sha256_bytes\030\003 \001(\014\"\216\t\n\006Ob" - + "ject\022\022\n\004name\030\001 \001(\tB\004\342A\001\005\0226\n\006bucket\030\002 \001(\t" - + "B&\342A\001\005\372A\037\n\035storage.googleapis.com/Bucket" - + "\022\014\n\004etag\030\033 \001(\t\022\030\n\ngeneration\030\003 \001(\003B\004\342A\001\005" - + "\022\034\n\016metageneration\030\004 \001(\003B\004\342A\001\003\022\025\n\rstorag" - + "e_class\030\005 \001(\t\022\022\n\004size\030\006 \001(\003B\004\342A\001\003\022\030\n\020con" - + "tent_encoding\030\007 \001(\t\022\033\n\023content_dispositi" - + "on\030\010 \001(\t\022\025\n\rcache_control\030\t \001(\t\0223\n\003acl\030\n" - + " \003(\0132&.google.storage.v2.ObjectAccessCon" - + "trol\022\030\n\020content_language\030\013 \001(\t\0225\n\013delete" - + "_time\030\014 \001(\0132\032.google.protobuf.TimestampB" - + "\004\342A\001\003\022\024\n\014content_type\030\r \001(\t\0225\n\013create_ti" - + "me\030\016 \001(\0132\032.google.protobuf.TimestampB\004\342A" - + "\001\003\022\035\n\017component_count\030\017 \001(\005B\004\342A\001\003\022;\n\tche" - + "cksums\030\020 \001(\0132\".google.storage.v2.ObjectC" - + "hecksumsB\004\342A\001\003\0225\n\013update_time\030\021 \001(\0132\032.go" - + "ogle.protobuf.TimestampB\004\342A\001\003\0227\n\007kms_key" - + "\030\022 \001(\tB&\372A#\n!cloudkms.googleapis.com/Cry" - + "ptoKey\022C\n\031update_storage_class_time\030\023 \001(" - + "\0132\032.google.protobuf.TimestampB\004\342A\001\003\022\026\n\016t" - + "emporary_hold\030\024 \001(\010\0229\n\025retention_expire_" - + "time\030\025 \001(\0132\032.google.protobuf.Timestamp\0229" - + "\n\010metadata\030\026 \003(\0132\'.google.storage.v2.Obj" - + "ect.MetadataEntry\022\035\n\020event_based_hold\030\027 " - + "\001(\010H\000\210\001\001\022-\n\005owner\030\030 \001(\0132\030.google.storage" - + ".v2.OwnerB\004\342A\001\003\022B\n\023customer_encryption\030\031", - " \001(\0132%.google.storage.v2.CustomerEncrypt" - + "ion\022/\n\013custom_time\030\032 \001(\0132\032.google.protob" - + "uf.Timestamp\032/\n\rMetadataEntry\022\013\n\003key\030\001 \001" - + "(\t\022\r\n\005value\030\002 \001(\t:\0028\001B\023\n\021_event_based_ho" - + "ld\"\317\001\n\023ObjectAccessControl\022\014\n\004role\030\001 \001(\t" - + "\022\n\n\002id\030\002 \001(\t\022\016\n\006entity\030\003 \001(\t\022\030\n\nentity_a" - + "lt\030\t \001(\tB\004\342A\001\003\022\021\n\tentity_id\030\004 \001(\t\022\014\n\004eta" - + "g\030\010 \001(\t\022\r\n\005email\030\005 \001(\t\022\016\n\006domain\030\006 \001(\t\0224" - + "\n\014project_team\030\007 \001(\0132\036.google.storage.v2" - + ".ProjectTeam\"l\n\023ListObjectsResponse\022*\n\007o" - + "bjects\030\001 \003(\0132\031.google.storage.v2.Object\022" - + "\020\n\010prefixes\030\002 \003(\t\022\027\n\017next_page_token\030\003 \001" - + "(\t\"3\n\013ProjectTeam\022\026\n\016project_number\030\001 \001(" - + "\t\022\014\n\004team\030\002 \001(\t\"\'\n\016ServiceAccount\022\025\n\rema" - + "il_address\030\001 \001(\t\"*\n\005Owner\022\016\n\006entity\030\001 \001(" - + "\t\022\021\n\tentity_id\030\002 \001(\t\"C\n\014ContentRange\022\r\n\005" - + "start\030\001 \001(\003\022\013\n\003end\030\002 \001(\003\022\027\n\017complete_len" - + "gth\030\003 \001(\0032\230&\n\007Storage\022r\n\014DeleteBucket\022&." - + "google.storage.v2.DeleteBucketRequest\032\026." - + "google.protobuf.Empty\"\"\332A\004name\212\323\344\223\002\025\022\023\n\004" - + "name\022\013{bucket=**}\022o\n\tGetBucket\022#.google." - + "storage.v2.GetBucketRequest\032\031.google.sto" - + "rage.v2.Bucket\"\"\332A\004name\212\323\344\223\002\025\022\023\n\004name\022\013{" - + "bucket=**}\022\253\001\n\014CreateBucket\022&.google.sto" - + "rage.v2.CreateBucketRequest\032\031.google.sto" - + "rage.v2.Bucket\"X\332A\027parent,bucket,bucket_" - + "id\212\323\344\223\0028\022\026\n\006parent\022\014{project=**}\022\036\n\016buck" - + "et.project\022\014{project=**}\022\205\001\n\013ListBuckets" - + "\022%.google.storage.v2.ListBucketsRequest\032" - + "&.google.storage.v2.ListBucketsResponse\"" - + "\'\332A\006parent\212\323\344\223\002\030\022\026\n\006parent\022\014{project=**}" - + "\022\223\001\n\031LockBucketRetentionPolicy\0223.google." - + "storage.v2.LockBucketRetentionPolicyRequ" - + "est\032\031.google.storage.v2.Bucket\"&\332A\006bucke" - + "t\212\323\344\223\002\027\022\025\n\006bucket\022\013{bucket=**}\022\253\001\n\014GetIa" - + "mPolicy\022\".google.iam.v1.GetIamPolicyRequ" - + "est\032\025.google.iam.v1.Policy\"`\332A\010resource\212" - + "\323\344\223\002O\022\027\n\010resource\022\013{bucket=**}\0224\n\010resour" - + "ce\022({bucket=projects/*/buckets/*}/object" - + "s/**\022\262\001\n\014SetIamPolicy\022\".google.iam.v1.Se" - + "tIamPolicyRequest\032\025.google.iam.v1.Policy" - + "\"g\332A\017resource,policy\212\323\344\223\002O\022\027\n\010resource\022\013" - + "{bucket=**}\0224\n\010resource\022({bucket=project" - + "s/*/buckets/*}/objects/**\022\327\001\n\022TestIamPer" - + "missions\022(.google.iam.v1.TestIamPermissi" - + "onsRequest\032).google.iam.v1.TestIamPermis" - + "sionsResponse\"l\332A\024resource,permissions\212\323" - + "\344\223\002O\022\027\n\010resource\022\013{bucket=**}\0224\n\010resourc" - + "e\022({bucket=projects/*/buckets/*}/objects" - + "/**\022\212\001\n\014UpdateBucket\022&.google.storage.v2" - + ".UpdateBucketRequest\032\031.google.storage.v2" - + ".Bucket\"7\332A\022bucket,update_mask\212\323\344\223\002\034\022\032\n\013" - + "bucket.name\022\013{bucket=**}\022\237\001\n\030DeleteNotif" - + "icationConfig\0222.google.storage.v2.Delete" - + "NotificationConfigRequest\032\026.google.proto" - + "buf.Empty\"7\332A\004name\212\323\344\223\002*\022(\n\004name\022 {bucke" - + "t=projects/*/buckets/*}/**\022\250\001\n\025GetNotifi" - + "cationConfig\022/.google.storage.v2.GetNoti" - + "ficationConfigRequest\032%.google.storage.v" - + "2.NotificationConfig\"7\332A\004name\212\323\344\223\002*\022(\n\004n" - + "ame\022 {bucket=projects/*/buckets/*}/**\022\261\001" - + "\n\030CreateNotificationConfig\0222.google.stor" - + "age.v2.CreateNotificationConfigRequest\032%" - + ".google.storage.v2.NotificationConfig\":\332" - + "A\032parent,notification_config\212\323\344\223\002\027\022\025\n\006pa" - + "rent\022\013{bucket=**}\022\250\001\n\027ListNotificationCo" - + "nfigs\0221.google.storage.v2.ListNotificati" - + "onConfigsRequest\0322.google.storage.v2.Lis" - + "tNotificationConfigsResponse\"&\332A\006parent\212" - + "\323\344\223\002\027\022\025\n\006parent\022\013{bucket=**}\022~\n\rComposeO" - + "bject\022\'.google.storage.v2.ComposeObjectR" - + "equest\032\031.google.storage.v2.Object\")\212\323\344\223\002" - + "#\022!\n\022destination.bucket\022\013{bucket=**}\022\230\001\n" - + "\014DeleteObject\022&.google.storage.v2.Delete" - + "ObjectRequest\032\026.google.protobuf.Empty\"H\332" + + "\004\342A\001\001\022\037\n\021lexicographic_end\030\013 \001(\tB\004\342A\001\001\022\030" + + "\n\nmatch_glob\030\016 \001(\tB\004\342A\001\001B\014\n\n_read_mask\"\206" + + "\001\n\027QueryWriteStatusRequest\022\027\n\tupload_id\030" + + "\001 \001(\tB\004\342A\001\002\022R\n\034common_object_request_par" + + "ams\030\002 \001(\0132,.google.storage.v2.CommonObje" + + "ctRequestParams\"s\n\030QueryWriteStatusRespo" + + "nse\022\030\n\016persisted_size\030\001 \001(\003H\000\022-\n\010resourc" + + "e\030\002 \001(\0132\031.google.storage.v2.ObjectH\000B\016\n\014" + + "write_status\"\250\n\n\024RewriteObjectRequest\022\037\n" + + "\020destination_name\030\030 \001(\tB\005\342A\002\002\005\022C\n\022destin" + + "ation_bucket\030\031 \001(\tB\'\342A\002\002\005\372A\037\n\035storage.go" + + "ogleapis.com/Bucket\022C\n\023destination_kms_k" + + "ey\030\033 \001(\tB&\372A#\n!cloudkms.googleapis.com/C" + + "ryptoKey\022.\n\013destination\030\001 \001(\0132\031.google.s" + + "torage.v2.Object\022=\n\rsource_bucket\030\002 \001(\tB" + + "&\342A\001\002\372A\037\n\035storage.googleapis.com/Bucket\022" + + "\033\n\rsource_object\030\003 \001(\tB\004\342A\001\002\022\031\n\021source_g" + + "eneration\030\004 \001(\003\022\025\n\rrewrite_token\030\005 \001(\t\022\"" + + "\n\032destination_predefined_acl\030\034 \001(\t\022 \n\023if" + + "_generation_match\030\007 \001(\003H\000\210\001\001\022$\n\027if_gener" + + "ation_not_match\030\010 \001(\003H\001\210\001\001\022$\n\027if_metagen" + + "eration_match\030\t \001(\003H\002\210\001\001\022(\n\033if_metagener" + + "ation_not_match\030\n \001(\003H\003\210\001\001\022\'\n\032if_source_" + + "generation_match\030\013 \001(\003H\004\210\001\001\022+\n\036if_source" + + "_generation_not_match\030\014 \001(\003H\005\210\001\001\022+\n\036if_s" + + "ource_metageneration_match\030\r \001(\003H\006\210\001\001\022/\n" + + "\"if_source_metageneration_not_match\030\016 \001(" + + "\003H\007\210\001\001\022$\n\034max_bytes_rewritten_per_call\030\017" + + " \001(\003\022(\n copy_source_encryption_algorithm" + + "\030\020 \001(\t\022(\n copy_source_encryption_key_byt" + + "es\030\025 \001(\014\022/\n\'copy_source_encryption_key_s" + + "ha256_bytes\030\026 \001(\014\022R\n\034common_object_reque" + + "st_params\030\023 \001(\0132,.google.storage.v2.Comm" + + "onObjectRequestParams\022<\n\020object_checksum" + + "s\030\035 \001(\0132\".google.storage.v2.ObjectChecks" + + "umsB\026\n\024_if_generation_matchB\032\n\030_if_gener" + + "ation_not_matchB\032\n\030_if_metageneration_ma" + + "tchB\036\n\034_if_metageneration_not_matchB\035\n\033_" + + "if_source_generation_matchB!\n\037_if_source" + + "_generation_not_matchB!\n\037_if_source_meta" + + "generation_matchB%\n#_if_source_metagener" + + "ation_not_match\"\227\001\n\017RewriteResponse\022\035\n\025t" + + "otal_bytes_rewritten\030\001 \001(\003\022\023\n\013object_siz" + + "e\030\002 \001(\003\022\014\n\004done\030\003 \001(\010\022\025\n\rrewrite_token\030\004" + + " \001(\t\022+\n\010resource\030\005 \001(\0132\031.google.storage." + + "v2.Object\"\363\001\n\032StartResumableWriteRequest" + + "\022C\n\021write_object_spec\030\001 \001(\0132\".google.sto" + + "rage.v2.WriteObjectSpecB\004\342A\001\002\022R\n\034common_" + + "object_request_params\030\003 \001(\0132,.google.sto" + + "rage.v2.CommonObjectRequestParams\022<\n\020obj" + + "ect_checksums\030\005 \001(\0132\".google.storage.v2." + + "ObjectChecksums\"0\n\033StartResumableWriteRe" + + "sponse\022\021\n\tupload_id\030\001 \001(\t\"\361\003\n\023UpdateObje" + + "ctRequest\022/\n\006object\030\001 \001(\0132\031.google.stora" + + "ge.v2.ObjectB\004\342A\001\002\022 \n\023if_generation_matc" + + "h\030\002 \001(\003H\000\210\001\001\022$\n\027if_generation_not_match\030" + + "\003 \001(\003H\001\210\001\001\022$\n\027if_metageneration_match\030\004 " + + "\001(\003H\002\210\001\001\022(\n\033if_metageneration_not_match\030" + + "\005 \001(\003H\003\210\001\001\022\026\n\016predefined_acl\030\n \001(\t\0225\n\013up" + + "date_mask\030\007 \001(\0132\032.google.protobuf.FieldM" + + "askB\004\342A\001\002\022R\n\034common_object_request_param" + + "s\030\010 \001(\0132,.google.storage.v2.CommonObject" + + "RequestParamsB\026\n\024_if_generation_matchB\032\n" + + "\030_if_generation_not_matchB\032\n\030_if_metagen" + + "eration_matchB\036\n\034_if_metageneration_not_" + + "match\"a\n\030GetServiceAccountRequest\022E\n\007pro" + + "ject\030\001 \001(\tB4\342A\001\002\372A-\n+cloudresourcemanage" + + "r.googleapis.com/Project\"\202\001\n\024CreateHmacK" + + "eyRequest\022E\n\007project\030\001 \001(\tB4\342A\001\002\372A-\n+clo" + + "udresourcemanager.googleapis.com/Project" + + "\022#\n\025service_account_email\030\002 \001(\tB\004\342A\001\002\"g\n" + + "\025CreateHmacKeyResponse\0224\n\010metadata\030\001 \001(\013" + + "2\".google.storage.v2.HmacKeyMetadata\022\030\n\020" + + "secret_key_bytes\030\003 \001(\014\"v\n\024DeleteHmacKeyR" + + "equest\022\027\n\taccess_id\030\001 \001(\tB\004\342A\001\002\022E\n\007proje" + + "ct\030\002 \001(\tB4\342A\001\002\372A-\n+cloudresourcemanager." + + "googleapis.com/Project\"s\n\021GetHmacKeyRequ" + + "est\022\027\n\taccess_id\030\001 \001(\tB\004\342A\001\002\022E\n\007project\030" + + "\002 \001(\tB4\342A\001\002\372A-\n+cloudresourcemanager.goo" + + "gleapis.com/Project\"\275\001\n\023ListHmacKeysRequ" + + "est\022E\n\007project\030\001 \001(\tB4\342A\001\002\372A-\n+cloudreso" + + "urcemanager.googleapis.com/Project\022\021\n\tpa" + + "ge_size\030\002 \001(\005\022\022\n\npage_token\030\003 \001(\t\022\035\n\025ser" + + "vice_account_email\030\004 \001(\t\022\031\n\021show_deleted" + + "_keys\030\005 \001(\010\"f\n\024ListHmacKeysResponse\0225\n\th" + + "mac_keys\030\001 \003(\0132\".google.storage.v2.HmacK" + + "eyMetadata\022\027\n\017next_page_token\030\002 \001(\t\"\203\001\n\024" + + "UpdateHmacKeyRequest\022:\n\010hmac_key\030\001 \001(\0132\"" + + ".google.storage.v2.HmacKeyMetadataB\004\342A\001\002" + + "\022/\n\013update_mask\030\003 \001(\0132\032.google.protobuf." + + "FieldMask\"|\n\031CommonObjectRequestParams\022\034" + + "\n\024encryption_algorithm\030\001 \001(\t\022\034\n\024encrypti" + + "on_key_bytes\030\004 \001(\014\022#\n\033encryption_key_sha" + + "256_bytes\030\005 \001(\014\"\312\005\n\020ServiceConstants\"\265\005\n" + + "\006Values\022\026\n\022VALUES_UNSPECIFIED\020\000\022\033\n\024MAX_R" + + "EAD_CHUNK_BYTES\020\200\200\200\001\022\034\n\025MAX_WRITE_CHUNK_" + + "BYTES\020\200\200\200\001\022\031\n\022MAX_OBJECT_SIZE_MB\020\200\200\300\002\022)\n" + + "$MAX_CUSTOM_METADATA_FIELD_NAME_BYTES\020\200\010" + + "\022*\n%MAX_CUSTOM_METADATA_FIELD_VALUE_BYTE" + + "S\020\200 \022)\n$MAX_CUSTOM_METADATA_TOTAL_SIZE_B" + + "YTES\020\200@\022*\n$MAX_BUCKET_METADATA_TOTAL_SIZ" + + "E_BYTES\020\200\240\001\022\'\n#MAX_NOTIFICATION_CONFIGS_" + + "PER_BUCKET\020d\022\"\n\036MAX_LIFECYCLE_RULES_PER_" + + "BUCKET\020d\022&\n\"MAX_NOTIFICATION_CUSTOM_ATTR" + + "IBUTES\020\005\0221\n,MAX_NOTIFICATION_CUSTOM_ATTR" + + "IBUTE_KEY_LENGTH\020\200\002\0223\n.MAX_NOTIFICATION_" + + "CUSTOM_ATTRIBUTE_VALUE_LENGTH\020\200\010\022\034\n\030MAX_" + + "LABELS_ENTRIES_COUNT\020@\022\037\n\033MAX_LABELS_KEY" + + "_VALUE_LENGTH\020?\022\037\n\032MAX_LABELS_KEY_VALUE_" + + "BYTES\020\200\001\022.\n)MAX_OBJECT_IDS_PER_DELETE_OB" + + "JECTS_REQUEST\020\350\007\022\036\n\032SPLIT_TOKEN_MAX_VALI" + + "D_DAYS\020\016\032\002\020\001\"\227\031\n\006Bucket\022\022\n\004name\030\001 \001(\tB\004\342" + + "A\001\005\022\027\n\tbucket_id\030\002 \001(\tB\004\342A\001\003\022\014\n\004etag\030\035 \001" + + "(\t\022E\n\007project\030\003 \001(\tB4\342A\001\005\372A-\n+cloudresou" + + "rcemanager.googleapis.com/Project\022\034\n\016met" + + "ageneration\030\004 \001(\003B\004\342A\001\003\022\026\n\010location\030\005 \001(" + + "\tB\004\342A\001\005\022\033\n\rlocation_type\030\006 \001(\tB\004\342A\001\003\022\025\n\r" + + "storage_class\030\007 \001(\t\022\013\n\003rpo\030\033 \001(\t\0223\n\003acl\030" + + "\010 \003(\0132&.google.storage.v2.BucketAccessCo" + + "ntrol\022B\n\022default_object_acl\030\t \003(\0132&.goog" + + "le.storage.v2.ObjectAccessControl\0226\n\tlif" + + "ecycle\030\n \001(\0132#.google.storage.v2.Bucket." + + "Lifecycle\0225\n\013create_time\030\013 \001(\0132\032.google." + + "protobuf.TimestampB\004\342A\001\003\022,\n\004cors\030\014 \003(\0132\036" + + ".google.storage.v2.Bucket.Cors\0225\n\013update" + + "_time\030\r \001(\0132\032.google.protobuf.TimestampB" + + "\004\342A\001\003\022 \n\030default_event_based_hold\030\016 \001(\010\022" + + "5\n\006labels\030\017 \003(\0132%.google.storage.v2.Buck" + + "et.LabelsEntry\0222\n\007website\030\020 \001(\0132!.google" + + ".storage.v2.Bucket.Website\0228\n\nversioning" + + "\030\021 \001(\0132$.google.storage.v2.Bucket.Versio" + + "ning\0222\n\007logging\030\022 \001(\0132!.google.storage.v" + + "2.Bucket.Logging\022-\n\005owner\030\023 \001(\0132\030.google" + + ".storage.v2.OwnerB\004\342A\001\003\0228\n\nencryption\030\024 " + + "\001(\0132$.google.storage.v2.Bucket.Encryptio" + + "n\0222\n\007billing\030\025 \001(\0132!.google.storage.v2.B" + + "ucket.Billing\022C\n\020retention_policy\030\026 \001(\0132" + + ").google.storage.v2.Bucket.RetentionPoli" + + "cy\0227\n\niam_config\030\027 \001(\0132#.google.storage." + + "v2.Bucket.IamConfig\022\025\n\rsatisfies_pzs\030\031 \001" + + "(\010\022P\n\027custom_placement_config\030\032 \001(\0132/.go" + + "ogle.storage.v2.Bucket.CustomPlacementCo" + + "nfig\0226\n\tautoclass\030\034 \001(\0132#.google.storage" + + ".v2.Bucket.Autoclass\032!\n\007Billing\022\026\n\016reque" + + "ster_pays\030\001 \001(\010\032X\n\004Cors\022\016\n\006origin\030\001 \003(\t\022" + + "\016\n\006method\030\002 \003(\t\022\027\n\017response_header\030\003 \003(\t" + + "\022\027\n\017max_age_seconds\030\004 \001(\005\032M\n\nEncryption\022" + + "?\n\017default_kms_key\030\001 \001(\tB&\372A#\n!cloudkms." + + "googleapis.com/CryptoKey\032\354\001\n\tIamConfig\022a" + + "\n\033uniform_bucket_level_access\030\001 \001(\0132<.go" + + "ogle.storage.v2.Bucket.IamConfig.Uniform" + + "BucketLevelAccess\022 \n\030public_access_preve" + + "ntion\030\003 \001(\t\032Z\n\030UniformBucketLevelAccess\022" + + "\017\n\007enabled\030\001 \001(\010\022-\n\tlock_time\030\002 \001(\0132\032.go" + + "ogle.protobuf.Timestamp\032\363\005\n\tLifecycle\0226\n" + + "\004rule\030\001 \003(\0132(.google.storage.v2.Bucket.L" + + "ifecycle.Rule\032\255\005\n\004Rule\022?\n\006action\030\001 \001(\0132/" + + ".google.storage.v2.Bucket.Lifecycle.Rule" + + ".Action\022E\n\tcondition\030\002 \001(\01322.google.stor" + + "age.v2.Bucket.Lifecycle.Rule.Condition\032-" + + "\n\006Action\022\014\n\004type\030\001 \001(\t\022\025\n\rstorage_class\030" + + "\002 \001(\t\032\355\003\n\tCondition\022\025\n\010age_days\030\001 \001(\005H\000\210" + + "\001\001\022)\n\016created_before\030\002 \001(\0132\021.google.type" + + ".Date\022\024\n\007is_live\030\003 \001(\010H\001\210\001\001\022\037\n\022num_newer" + + "_versions\030\004 \001(\005H\002\210\001\001\022\035\n\025matches_storage_" + + "class\030\005 \003(\t\022#\n\026days_since_custom_time\030\007 " + + "\001(\005H\003\210\001\001\022-\n\022custom_time_before\030\010 \001(\0132\021.g" + + "oogle.type.Date\022\'\n\032days_since_noncurrent" + + "_time\030\t \001(\005H\004\210\001\001\0221\n\026noncurrent_time_befo" + + "re\030\n \001(\0132\021.google.type.Date\022\026\n\016matches_p" + + "refix\030\013 \003(\t\022\026\n\016matches_suffix\030\014 \003(\tB\013\n\t_" + + "age_daysB\n\n\010_is_liveB\025\n\023_num_newer_versi" + + "onsB\031\n\027_days_since_custom_timeB\035\n\033_days_" + + "since_noncurrent_time\0328\n\007Logging\022\022\n\nlog_" + + "bucket\030\001 \001(\t\022\031\n\021log_object_prefix\030\002 \001(\t\032" + + "\217\001\n\017RetentionPolicy\0222\n\016effective_time\030\001 " + + "\001(\0132\032.google.protobuf.Timestamp\022\021\n\tis_lo" + + "cked\030\002 \001(\010\0225\n\022retention_duration\030\004 \001(\0132\031" + + ".google.protobuf.Duration\032\035\n\nVersioning\022" + + "\017\n\007enabled\030\001 \001(\010\032;\n\007Website\022\030\n\020main_page" + + "_suffix\030\001 \001(\t\022\026\n\016not_found_page\030\002 \001(\t\032/\n" + + "\025CustomPlacementConfig\022\026\n\016data_locations" + + "\030\001 \003(\t\032\215\002\n\tAutoclass\022\017\n\007enabled\030\001 \001(\010\0225\n" + + "\013toggle_time\030\002 \001(\0132\032.google.protobuf.Tim" + + "estampB\004\342A\001\003\022#\n\026terminal_storage_class\030\003" + + " \001(\tH\000\210\001\001\022Q\n\"terminal_storage_class_upda" + + "te_time\030\004 \001(\0132\032.google.protobuf.Timestam" + + "pB\004\342A\001\003H\001\210\001\001B\031\n\027_terminal_storage_classB" + + "%\n#_terminal_storage_class_update_time\032-" + + "\n\013LabelsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(" + + "\t:\0028\001:G\352AD\n\035storage.googleapis.com/Bucke" + + "t\022#projects/{project}/buckets/{bucket}\"\317" + + "\001\n\023BucketAccessControl\022\014\n\004role\030\001 \001(\t\022\n\n\002" + + "id\030\002 \001(\t\022\016\n\006entity\030\003 \001(\t\022\030\n\nentity_alt\030\t" + + " \001(\tB\004\342A\001\003\022\021\n\tentity_id\030\004 \001(\t\022\014\n\004etag\030\010 " + + "\001(\t\022\r\n\005email\030\005 \001(\t\022\016\n\006domain\030\006 \001(\t\0224\n\014pr" + + "oject_team\030\007 \001(\0132\036.google.storage.v2.Pro" + + "jectTeam\"F\n\017ChecksummedData\022\023\n\007content\030\001" + + " \001(\014B\002\010\001\022\023\n\006crc32c\030\002 \001(\007H\000\210\001\001B\t\n\007_crc32c" + + "\"C\n\017ObjectChecksums\022\023\n\006crc32c\030\001 \001(\007H\000\210\001\001" + + "\022\020\n\010md5_hash\030\002 \001(\014B\t\n\007_crc32c\"\263\002\n\017HmacKe" + + "yMetadata\022\020\n\002id\030\001 \001(\tB\004\342A\001\005\022\027\n\taccess_id" + + "\030\002 \001(\tB\004\342A\001\005\022E\n\007project\030\003 \001(\tB4\342A\001\005\372A-\n+" + + "cloudresourcemanager.googleapis.com/Proj" + + "ect\022#\n\025service_account_email\030\004 \001(\tB\004\342A\001\003" + + "\022\r\n\005state\030\005 \001(\t\0225\n\013create_time\030\006 \001(\0132\032.g" + + "oogle.protobuf.TimestampB\004\342A\001\003\0225\n\013update" + + "_time\030\007 \001(\0132\032.google.protobuf.TimestampB" + + "\004\342A\001\003\022\014\n\004etag\030\010 \001(\t\"\252\003\n\022NotificationConf" + + "ig\022\022\n\004name\030\001 \001(\tB\004\342A\001\002\022\023\n\005topic\030\002 \001(\tB\004\342" + + "A\001\002\022\014\n\004etag\030\007 \001(\t\022\023\n\013event_types\030\003 \003(\t\022V" + + "\n\021custom_attributes\030\004 \003(\0132;.google.stora" + + "ge.v2.NotificationConfig.CustomAttribute" + + "sEntry\022\032\n\022object_name_prefix\030\005 \001(\t\022\034\n\016pa" + + "yload_format\030\006 \001(\tB\004\342A\001\002\0327\n\025CustomAttrib" + + "utesEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028" + + "\001:}\352Az\n)storage.googleapis.com/Notificat" + + "ionConfig\022Mprojects/{project}/buckets/{b" + + "ucket}/notificationConfigs/{notification" + + "_config}\"L\n\022CustomerEncryption\022\034\n\024encryp" + + "tion_algorithm\030\001 \001(\t\022\030\n\020key_sha256_bytes" + + "\030\003 \001(\014\"\216\t\n\006Object\022\022\n\004name\030\001 \001(\tB\004\342A\001\005\0226\n" + + "\006bucket\030\002 \001(\tB&\342A\001\005\372A\037\n\035storage.googleap" + + "is.com/Bucket\022\014\n\004etag\030\033 \001(\t\022\030\n\ngeneratio" + + "n\030\003 \001(\003B\004\342A\001\005\022\034\n\016metageneration\030\004 \001(\003B\004\342" + + "A\001\003\022\025\n\rstorage_class\030\005 \001(\t\022\022\n\004size\030\006 \001(\003" + + "B\004\342A\001\003\022\030\n\020content_encoding\030\007 \001(\t\022\033\n\023cont" + + "ent_disposition\030\010 \001(\t\022\025\n\rcache_control\030\t" + + " \001(\t\0223\n\003acl\030\n \003(\0132&.google.storage.v2.Ob" + + "jectAccessControl\022\030\n\020content_language\030\013 " + + "\001(\t\0225\n\013delete_time\030\014 \001(\0132\032.google.protob" + + "uf.TimestampB\004\342A\001\003\022\024\n\014content_type\030\r \001(\t" + + "\0225\n\013create_time\030\016 \001(\0132\032.google.protobuf." + + "TimestampB\004\342A\001\003\022\035\n\017component_count\030\017 \001(\005" + + "B\004\342A\001\003\022;\n\tchecksums\030\020 \001(\0132\".google.stora" + + "ge.v2.ObjectChecksumsB\004\342A\001\003\0225\n\013update_ti" + + "me\030\021 \001(\0132\032.google.protobuf.TimestampB\004\342A" + + "\001\003\0227\n\007kms_key\030\022 \001(\tB&\372A#\n!cloudkms.googl" + + "eapis.com/CryptoKey\022C\n\031update_storage_cl" + + "ass_time\030\023 \001(\0132\032.google.protobuf.Timesta" + + "mpB\004\342A\001\003\022\026\n\016temporary_hold\030\024 \001(\010\0229\n\025rete", + "ntion_expire_time\030\025 \001(\0132\032.google.protobu" + + "f.Timestamp\0229\n\010metadata\030\026 \003(\0132\'.google.s" + + "torage.v2.Object.MetadataEntry\022\035\n\020event_" + + "based_hold\030\027 \001(\010H\000\210\001\001\022-\n\005owner\030\030 \001(\0132\030.g" + + "oogle.storage.v2.OwnerB\004\342A\001\003\022B\n\023customer" + + "_encryption\030\031 \001(\0132%.google.storage.v2.Cu" + + "stomerEncryption\022/\n\013custom_time\030\032 \001(\0132\032." + + "google.protobuf.Timestamp\032/\n\rMetadataEnt" + + "ry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001B\023\n\021_e" + + "vent_based_hold\"\317\001\n\023ObjectAccessControl\022" + + "\014\n\004role\030\001 \001(\t\022\n\n\002id\030\002 \001(\t\022\016\n\006entity\030\003 \001(" + + "\t\022\030\n\nentity_alt\030\t \001(\tB\004\342A\001\003\022\021\n\tentity_id" + + "\030\004 \001(\t\022\014\n\004etag\030\010 \001(\t\022\r\n\005email\030\005 \001(\t\022\016\n\006d" + + "omain\030\006 \001(\t\0224\n\014project_team\030\007 \001(\0132\036.goog" + + "le.storage.v2.ProjectTeam\"l\n\023ListObjects" + + "Response\022*\n\007objects\030\001 \003(\0132\031.google.stora" + + "ge.v2.Object\022\020\n\010prefixes\030\002 \003(\t\022\027\n\017next_p" + + "age_token\030\003 \001(\t\"3\n\013ProjectTeam\022\026\n\016projec" + + "t_number\030\001 \001(\t\022\014\n\004team\030\002 \001(\t\"\'\n\016ServiceA" + + "ccount\022\025\n\remail_address\030\001 \001(\t\"*\n\005Owner\022\016" + + "\n\006entity\030\001 \001(\t\022\021\n\tentity_id\030\002 \001(\t\"C\n\014Con" + + "tentRange\022\r\n\005start\030\001 \001(\003\022\013\n\003end\030\002 \001(\003\022\027\n" + + "\017complete_length\030\003 \001(\0032\230&\n\007Storage\022r\n\014De" + + "leteBucket\022&.google.storage.v2.DeleteBuc" + + "ketRequest\032\026.google.protobuf.Empty\"\"\332A\004n" + + "ame\212\323\344\223\002\025\022\023\n\004name\022\013{bucket=**}\022o\n\tGetBuc" + + "ket\022#.google.storage.v2.GetBucketRequest" + + "\032\031.google.storage.v2.Bucket\"\"\332A\004name\212\323\344\223" + + "\002\025\022\023\n\004name\022\013{bucket=**}\022\253\001\n\014CreateBucket" + + "\022&.google.storage.v2.CreateBucketRequest" + + "\032\031.google.storage.v2.Bucket\"X\332A\027parent,b" + + "ucket,bucket_id\212\323\344\223\0028\022\026\n\006parent\022\014{projec" + + "t=**}\022\036\n\016bucket.project\022\014{project=**}\022\205\001" + + "\n\013ListBuckets\022%.google.storage.v2.ListBu" + + "cketsRequest\032&.google.storage.v2.ListBuc" + + "ketsResponse\"\'\332A\006parent\212\323\344\223\002\030\022\026\n\006parent\022" + + "\014{project=**}\022\223\001\n\031LockBucketRetentionPol" + + "icy\0223.google.storage.v2.LockBucketRetent" + + "ionPolicyRequest\032\031.google.storage.v2.Buc" + + "ket\"&\332A\006bucket\212\323\344\223\002\027\022\025\n\006bucket\022\013{bucket=" + + "**}\022\253\001\n\014GetIamPolicy\022\".google.iam.v1.Get" + + "IamPolicyRequest\032\025.google.iam.v1.Policy\"" + + "`\332A\010resource\212\323\344\223\002O\022\027\n\010resource\022\013{bucket=" + + "**}\0224\n\010resource\022({bucket=projects/*/buck" + + "ets/*}/objects/**\022\262\001\n\014SetIamPolicy\022\".goo" + + "gle.iam.v1.SetIamPolicyRequest\032\025.google." + + "iam.v1.Policy\"g\332A\017resource,policy\212\323\344\223\002O\022" + + "\027\n\010resource\022\013{bucket=**}\0224\n\010resource\022({b" + + "ucket=projects/*/buckets/*}/objects/**\022\327" + + "\001\n\022TestIamPermissions\022(.google.iam.v1.Te" + + "stIamPermissionsRequest\032).google.iam.v1." + + "TestIamPermissionsResponse\"l\332A\024resource," + + "permissions\212\323\344\223\002O\022\027\n\010resource\022\013{bucket=*" + + "*}\0224\n\010resource\022({bucket=projects/*/bucke" + + "ts/*}/objects/**\022\212\001\n\014UpdateBucket\022&.goog" + + "le.storage.v2.UpdateBucketRequest\032\031.goog" + + "le.storage.v2.Bucket\"7\332A\022bucket,update_m" + + "ask\212\323\344\223\002\034\022\032\n\013bucket.name\022\013{bucket=**}\022\237\001" + + "\n\030DeleteNotificationConfig\0222.google.stor" + + "age.v2.DeleteNotificationConfigRequest\032\026" + + ".google.protobuf.Empty\"7\332A\004name\212\323\344\223\002*\022(\n" + + "\004name\022 {bucket=projects/*/buckets/*}/**\022" + + "\250\001\n\025GetNotificationConfig\022/.google.stora" + + "ge.v2.GetNotificationConfigRequest\032%.goo" + + "gle.storage.v2.NotificationConfig\"7\332A\004na" + + "me\212\323\344\223\002*\022(\n\004name\022 {bucket=projects/*/buc" + + "kets/*}/**\022\261\001\n\030CreateNotificationConfig\022" + + "2.google.storage.v2.CreateNotificationCo" + + "nfigRequest\032%.google.storage.v2.Notifica" + + "tionConfig\":\332A\032parent,notification_confi" + + "g\212\323\344\223\002\027\022\025\n\006parent\022\013{bucket=**}\022\250\001\n\027ListN" + + "otificationConfigs\0221.google.storage.v2.L" + + "istNotificationConfigsRequest\0322.google.s" + + "torage.v2.ListNotificationConfigsRespons" + + "e\"&\332A\006parent\212\323\344\223\002\027\022\025\n\006parent\022\013{bucket=**" + + "}\022~\n\rComposeObject\022\'.google.storage.v2.C" + + "omposeObjectRequest\032\031.google.storage.v2." + + "Object\")\212\323\344\223\002#\022!\n\022destination.bucket\022\013{b" + + "ucket=**}\022\230\001\n\014DeleteObject\022&.google.stor" + + "age.v2.DeleteObjectRequest\032\026.google.prot" + + "obuf.Empty\"H\332A\rbucket,object\332A\030bucket,ob" + + "ject,generation\212\323\344\223\002\027\022\025\n\006bucket\022\013{bucket" + + "=**}\022\272\001\n\024CancelResumableWrite\022..google.s" + + "torage.v2.CancelResumableWriteRequest\032/." + + "google.storage.v2.CancelResumableWriteRe" + + "sponse\"A\332A\tupload_id\212\323\344\223\002/\022-\n\tupload_id\022" + + " {bucket=projects/*/buckets/*}/**\022\225\001\n\tGe" + + "tObject\022#.google.storage.v2.GetObjectReq" + + "uest\032\031.google.storage.v2.Object\"H\332A\rbuck" + + "et,object\332A\030bucket,object,generation\212\323\344\223" + + "\002\027\022\025\n\006bucket\022\013{bucket=**}\022\245\001\n\nReadObject" + + "\022$.google.storage.v2.ReadObjectRequest\032%" + + ".google.storage.v2.ReadObjectResponse\"H\332" + "A\rbucket,object\332A\030bucket,object,generati" - + "on\212\323\344\223\002\027\022\025\n\006bucket\022\013{bucket=**}\022\272\001\n\024Canc" - + "elResumableWrite\022..google.storage.v2.Can" - + "celResumableWriteRequest\032/.google.storag" - + "e.v2.CancelResumableWriteResponse\"A\332A\tup" - + "load_id\212\323\344\223\002/\022-\n\tupload_id\022 {bucket=proj" - + "ects/*/buckets/*}/**\022\225\001\n\tGetObject\022#.goo" - + "gle.storage.v2.GetObjectRequest\032\031.google" - + ".storage.v2.Object\"H\332A\rbucket,object\332A\030b" - + "ucket,object,generation\212\323\344\223\002\027\022\025\n\006bucket\022" - + "\013{bucket=**}\022\245\001\n\nReadObject\022$.google.sto" - + "rage.v2.ReadObjectRequest\032%.google.stora" - + "ge.v2.ReadObjectResponse\"H\332A\rbucket,obje" - + "ct\332A\030bucket,object,generation\212\323\344\223\002\027\022\025\n\006b" - + "ucket\022\013{bucket=**}0\001\022\214\001\n\014UpdateObject\022&." - + "google.storage.v2.UpdateObjectRequest\032\031." - + "google.storage.v2.Object\"9\332A\022object,upda" - + "te_mask\212\323\344\223\002\036\022\034\n\robject.bucket\022\013{bucket=" - + "**}\022`\n\013WriteObject\022%.google.storage.v2.W" - + "riteObjectRequest\032&.google.storage.v2.Wr" - + "iteObjectResponse\"\000(\001\022\204\001\n\013ListObjects\022%." - + "google.storage.v2.ListObjectsRequest\032&.g" - + "oogle.storage.v2.ListObjectsResponse\"&\332A" - + "\006parent\212\323\344\223\002\027\022\025\n\006parent\022\013{bucket=**}\022\230\001\n" - + "\rRewriteObject\022\'.google.storage.v2.Rewri" - + "teObjectRequest\032\".google.storage.v2.Rewr" - + "iteResponse\":\212\323\344\223\0024\022\017\n\rsource_bucket\022!\n\022" - + "destination_bucket\022\013{bucket=**}\022\256\001\n\023Star" - + "tResumableWrite\022-.google.storage.v2.Star" - + "tResumableWriteRequest\032..google.storage." - + "v2.StartResumableWriteResponse\"8\212\323\344\223\0022\0220" - + "\n!write_object_spec.resource.bucket\022\013{bu" - + "cket=**}\022\256\001\n\020QueryWriteStatus\022*.google.s" - + "torage.v2.QueryWriteStatusRequest\032+.goog" - + "le.storage.v2.QueryWriteStatusResponse\"A" - + "\332A\tupload_id\212\323\344\223\002/\022-\n\tupload_id\022 {bucket" - + "=projects/*/buckets/*}/**\022\200\001\n\021GetService" - + "Account\022+.google.storage.v2.GetServiceAc" - + "countRequest\032!.google.storage.v2.Service" - + "Account\"\033\332A\007project\212\323\344\223\002\013\022\t\n\007project\022\225\001\n" - + "\rCreateHmacKey\022\'.google.storage.v2.Creat" - + "eHmacKeyRequest\032(.google.storage.v2.Crea" - + "teHmacKeyResponse\"1\332A\035project,service_ac" - + "count_email\212\323\344\223\002\013\022\t\n\007project\022w\n\rDeleteHm" - + "acKey\022\'.google.storage.v2.DeleteHmacKeyR" - + "equest\032\026.google.protobuf.Empty\"%\332A\021acces" - + "s_id,project\212\323\344\223\002\013\022\t\n\007project\022}\n\nGetHmac" - + "Key\022$.google.storage.v2.GetHmacKeyReques" - + "t\032\".google.storage.v2.HmacKeyMetadata\"%\332" - + "A\021access_id,project\212\323\344\223\002\013\022\t\n\007project\022|\n\014" - + "ListHmacKeys\022&.google.storage.v2.ListHma" - + "cKeysRequest\032\'.google.storage.v2.ListHma" - + "cKeysResponse\"\033\332A\007project\212\323\344\223\002\013\022\t\n\007proje" - + "ct\022\235\001\n\rUpdateHmacKey\022\'.google.storage.v2" - + ".UpdateHmacKeyRequest\032\".google.storage.v" - + "2.HmacKeyMetadata\"?\332A\024hmac_key,update_ma" - + "sk\212\323\344\223\002\"\022 \n\020hmac_key.project\022\014{project=*" - + "*}\032\247\002\312A\026storage.googleapis.com\322A\212\002https:" - + "//www.googleapis.com/auth/cloud-platform" - + ",https://www.googleapis.com/auth/cloud-p" - + "latform.read-only,https://www.googleapis" - + ".com/auth/devstorage.full_control,https:" - + "//www.googleapis.com/auth/devstorage.rea" - + "d_only,https://www.googleapis.com/auth/d" - + "evstorage.read_writeB\342\001\n\025com.google.stor" - + "age.v2B\014StorageProtoP\001Z>cloud.google.com" - + "/go/storage/internal/apiv2/storagepb;sto" - + "ragepb\352Ax\n!cloudkms.googleapis.com/Crypt" - + "oKey\022Sprojects/{project}/locations/{loca" - + "tion}/keyRings/{key_ring}/cryptoKeys/{cr" - + "ypto_key}b\006proto3" + + "on\212\323\344\223\002\027\022\025\n\006bucket\022\013{bucket=**}0\001\022\214\001\n\014Up" + + "dateObject\022&.google.storage.v2.UpdateObj" + + "ectRequest\032\031.google.storage.v2.Object\"9\332" + + "A\022object,update_mask\212\323\344\223\002\036\022\034\n\robject.buc" + + "ket\022\013{bucket=**}\022`\n\013WriteObject\022%.google" + + ".storage.v2.WriteObjectRequest\032&.google." + + "storage.v2.WriteObjectResponse\"\000(\001\022\204\001\n\013L" + + "istObjects\022%.google.storage.v2.ListObjec" + + "tsRequest\032&.google.storage.v2.ListObject" + + "sResponse\"&\332A\006parent\212\323\344\223\002\027\022\025\n\006parent\022\013{b" + + "ucket=**}\022\230\001\n\rRewriteObject\022\'.google.sto" + + "rage.v2.RewriteObjectRequest\032\".google.st" + + "orage.v2.RewriteResponse\":\212\323\344\223\0024\022\017\n\rsour" + + "ce_bucket\022!\n\022destination_bucket\022\013{bucket" + + "=**}\022\256\001\n\023StartResumableWrite\022-.google.st" + + "orage.v2.StartResumableWriteRequest\032..go" + + "ogle.storage.v2.StartResumableWriteRespo" + + "nse\"8\212\323\344\223\0022\0220\n!write_object_spec.resourc" + + "e.bucket\022\013{bucket=**}\022\256\001\n\020QueryWriteStat" + + "us\022*.google.storage.v2.QueryWriteStatusR" + + "equest\032+.google.storage.v2.QueryWriteSta" + + "tusResponse\"A\332A\tupload_id\212\323\344\223\002/\022-\n\tuploa" + + "d_id\022 {bucket=projects/*/buckets/*}/**\022\200" + + "\001\n\021GetServiceAccount\022+.google.storage.v2" + + ".GetServiceAccountRequest\032!.google.stora" + + "ge.v2.ServiceAccount\"\033\332A\007project\212\323\344\223\002\013\022\t" + + "\n\007project\022\225\001\n\rCreateHmacKey\022\'.google.sto" + + "rage.v2.CreateHmacKeyRequest\032(.google.st" + + "orage.v2.CreateHmacKeyResponse\"1\332A\035proje" + + "ct,service_account_email\212\323\344\223\002\013\022\t\n\007projec" + + "t\022w\n\rDeleteHmacKey\022\'.google.storage.v2.D" + + "eleteHmacKeyRequest\032\026.google.protobuf.Em" + + "pty\"%\332A\021access_id,project\212\323\344\223\002\013\022\t\n\007proje" + + "ct\022}\n\nGetHmacKey\022$.google.storage.v2.Get" + + "HmacKeyRequest\032\".google.storage.v2.HmacK" + + "eyMetadata\"%\332A\021access_id,project\212\323\344\223\002\013\022\t" + + "\n\007project\022|\n\014ListHmacKeys\022&.google.stora" + + "ge.v2.ListHmacKeysRequest\032\'.google.stora" + + "ge.v2.ListHmacKeysResponse\"\033\332A\007project\212\323" + + "\344\223\002\013\022\t\n\007project\022\235\001\n\rUpdateHmacKey\022\'.goog" + + "le.storage.v2.UpdateHmacKeyRequest\032\".goo" + + "gle.storage.v2.HmacKeyMetadata\"?\332A\024hmac_" + + "key,update_mask\212\323\344\223\002\"\022 \n\020hmac_key.projec" + + "t\022\014{project=**}\032\247\002\312A\026storage.googleapis." + + "com\322A\212\002https://www.googleapis.com/auth/c" + + "loud-platform,https://www.googleapis.com" + + "/auth/cloud-platform.read-only,https://w" + + "ww.googleapis.com/auth/devstorage.full_c" + + "ontrol,https://www.googleapis.com/auth/d" + + "evstorage.read_only,https://www.googleap" + + "is.com/auth/devstorage.read_writeB\342\001\n\025co" + + "m.google.storage.v2B\014StorageProtoP\001Z>clo" + + "ud.google.com/go/storage/internal/apiv2/" + + "storagepb;storagepb\352Ax\n!cloudkms.googlea" + + "pis.com/CryptoKey\022Sprojects/{project}/lo" + + "cations/{location}/keyRings/{key_ring}/c" + + "ryptoKeys/{crypto_key}b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -1187,6 +1192,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "ReadMask", "LexicographicStart", "LexicographicEnd", + "MatchGlob", "ReadMask", }); internal_static_google_storage_v2_QueryWriteStatusRequest_descriptor = @@ -1531,7 +1537,12 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_storage_v2_Bucket_Autoclass_descriptor, new java.lang.String[] { - "Enabled", "ToggleTime", + "Enabled", + "ToggleTime", + "TerminalStorageClass", + "TerminalStorageClassUpdateTime", + "TerminalStorageClass", + "TerminalStorageClassUpdateTime", }); internal_static_google_storage_v2_Bucket_LabelsEntry_descriptor = internal_static_google_storage_v2_Bucket_descriptor.getNestedTypes().get(11); diff --git a/proto-google-cloud-storage-v2/src/main/proto/google/storage/v2/storage.proto b/proto-google-cloud-storage-v2/src/main/proto/google/storage/v2/storage.proto index 5fa78ba973..1092d0e526 100644 --- a/proto-google-cloud-storage-v2/src/main/proto/google/storage/v2/storage.proto +++ b/proto-google-cloud-storage-v2/src/main/proto/google/storage/v2/storage.proto @@ -1093,6 +1093,12 @@ message ListObjectsRequest { // listed have names between lexicographic_start (inclusive) and // lexicographic_end (exclusive). string lexicographic_end = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filter results to objects and prefixes that match this glob + // pattern. See [List Objects Using + // Glob](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob) + // for the full syntax. + string match_glob = 14 [(google.api.field_behavior) = OPTIONAL]; } // Request object for `QueryWriteStatus`. @@ -1805,6 +1811,15 @@ message Bucket { // to the bucket creation time. google.protobuf.Timestamp toggle_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // An object in an Autoclass bucket will eventually cool down to the + // terminal storage class if there is no access to the object. + // The only valid values are NEARLINE and ARCHIVE. + optional string terminal_storage_class = 3; + + // Latest instant at which the autoclass terminal storage class was updated. + optional google.protobuf.Timestamp terminal_storage_class_update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Immutable. The name of the bucket.