diff --git a/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java b/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java index 9943d3a9..a4079ce5 100644 --- a/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java +++ b/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java @@ -289,6 +289,7 @@ public void addSecretVersionTest() throws Exception { .setDestroyTime(Timestamp.newBuilder().build()) .setReplicationStatus(ReplicationStatus.newBuilder().build()) .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -334,6 +335,7 @@ public void addSecretVersionTest2() throws Exception { .setDestroyTime(Timestamp.newBuilder().build()) .setReplicationStatus(ReplicationStatus.newBuilder().build()) .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -670,6 +672,7 @@ public void getSecretVersionTest() throws Exception { .setDestroyTime(Timestamp.newBuilder().build()) .setReplicationStatus(ReplicationStatus.newBuilder().build()) .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -712,6 +715,7 @@ public void getSecretVersionTest2() throws Exception { .setDestroyTime(Timestamp.newBuilder().build()) .setReplicationStatus(ReplicationStatus.newBuilder().build()) .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -832,6 +836,7 @@ public void disableSecretVersionTest() throws Exception { .setDestroyTime(Timestamp.newBuilder().build()) .setReplicationStatus(ReplicationStatus.newBuilder().build()) .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -875,6 +880,7 @@ public void disableSecretVersionTest2() throws Exception { .setDestroyTime(Timestamp.newBuilder().build()) .setReplicationStatus(ReplicationStatus.newBuilder().build()) .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -918,6 +924,7 @@ public void enableSecretVersionTest() throws Exception { .setDestroyTime(Timestamp.newBuilder().build()) .setReplicationStatus(ReplicationStatus.newBuilder().build()) .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -960,6 +967,7 @@ public void enableSecretVersionTest2() throws Exception { .setDestroyTime(Timestamp.newBuilder().build()) .setReplicationStatus(ReplicationStatus.newBuilder().build()) .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -1002,6 +1010,7 @@ public void destroySecretVersionTest() throws Exception { .setDestroyTime(Timestamp.newBuilder().build()) .setReplicationStatus(ReplicationStatus.newBuilder().build()) .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -1045,6 +1054,7 @@ public void destroySecretVersionTest2() throws Exception { .setDestroyTime(Timestamp.newBuilder().build()) .setReplicationStatus(ReplicationStatus.newBuilder().build()) .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) .build(); mockSecretManagerService.addResponse(expectedResponse); diff --git a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java index 9b0e4e01..dd61aa6b 100644 --- a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java @@ -101,11 +101,11 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { static { java.lang.String[] descriptorData = { "\n-google/cloud/secretmanager/v1/resource" - + "s.proto\022\035google.cloud.secretmanager.v1\032\037" - + "google/api/field_behavior.proto\032\031google/" - + "api/resource.proto\032\036google/protobuf/dura" - + "tion.proto\032\037google/protobuf/timestamp.pr" - + "oto\032\034google/api/annotations.proto\"\336\004\n\006Se" + + "s.proto\022\035google.cloud.secretmanager.v1\032\034" + + "google/api/annotations.proto\032\037google/api" + + "/field_behavior.proto\032\031google/api/resour" + + "ce.proto\032\036google/protobuf/duration.proto" + + "\032\037google/protobuf/timestamp.proto\"\336\004\n\006Se" + "cret\022\021\n\004name\030\001 \001(\tB\003\340A\003\022G\n\013replication\030\002" + " \001(\0132*.google.cloud.secretmanager.v1.Rep" + "licationB\006\340A\005\340A\002\0224\n\013create_time\030\003 \001(\0132\032." @@ -121,74 +121,76 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001:M\352AJ\n#secr" + "etmanager.googleapis.com/Secret\022#project" + "s/{project}/secrets/{secret}B\014\n\nexpirati" - + "on\"\362\003\n\rSecretVersion\022\021\n\004name\030\001 \001(\tB\003\340A\003\022" + + "on\"\242\004\n\rSecretVersion\022\021\n\004name\030\001 \001(\tB\003\340A\003\022" + "4\n\013create_time\030\002 \001(\0132\032.google.protobuf.T" + "imestampB\003\340A\003\0225\n\014destroy_time\030\003 \001(\0132\032.go" + "ogle.protobuf.TimestampB\003\340A\003\022F\n\005state\030\004 " + "\001(\01622.google.cloud.secretmanager.v1.Secr" + "etVersion.StateB\003\340A\003\022L\n\022replication_stat" + "us\030\005 \001(\01320.google.cloud.secretmanager.v1" - + ".ReplicationStatus\022\021\n\004etag\030\006 \001(\tB\003\340A\003\"H\n" - + "\005State\022\025\n\021STATE_UNSPECIFIED\020\000\022\013\n\007ENABLED" - + "\020\001\022\014\n\010DISABLED\020\002\022\r\n\tDESTROYED\020\003:n\352Ak\n*se" - + "cretmanager.googleapis.com/SecretVersion" - + "\022=projects/{project}/secrets/{secret}/ve" - + "rsions/{secret_version}\"\220\004\n\013Replication\022" - + "I\n\tautomatic\030\001 \001(\01324.google.cloud.secret" - + "manager.v1.Replication.AutomaticH\000\022N\n\014us" - + "er_managed\030\002 \001(\01326.google.cloud.secretma" - + "nager.v1.Replication.UserManagedH\000\032o\n\tAu" - + "tomatic\022b\n\033customer_managed_encryption\030\001" + + ".ReplicationStatus\022\021\n\004etag\030\006 \001(\tB\003\340A\003\022.\n" + + "!client_specified_payload_checksum\030\007 \001(\010" + + "B\003\340A\003\"H\n\005State\022\025\n\021STATE_UNSPECIFIED\020\000\022\013\n" + + "\007ENABLED\020\001\022\014\n\010DISABLED\020\002\022\r\n\tDESTROYED\020\003:" + + "n\352Ak\n*secretmanager.googleapis.com/Secre" + + "tVersion\022=projects/{project}/secrets/{se" + + "cret}/versions/{secret_version}\"\220\004\n\013Repl" + + "ication\022I\n\tautomatic\030\001 \001(\01324.google.clou" + + "d.secretmanager.v1.Replication.Automatic" + + "H\000\022N\n\014user_managed\030\002 \001(\01326.google.cloud." + + "secretmanager.v1.Replication.UserManaged" + + "H\000\032o\n\tAutomatic\022b\n\033customer_managed_encr" + + "yption\030\001 \001(\01328.google.cloud.secretmanage" + + "r.v1.CustomerManagedEncryptionB\003\340A\001\032\345\001\n\013" + + "UserManaged\022U\n\010replicas\030\001 \003(\0132>.google.c" + + "loud.secretmanager.v1.Replication.UserMa" + + "naged.ReplicaB\003\340A\002\032\177\n\007Replica\022\020\n\010locatio" + + "n\030\001 \001(\t\022b\n\033customer_managed_encryption\030\002" + " \001(\01328.google.cloud.secretmanager.v1.Cus" - + "tomerManagedEncryptionB\003\340A\001\032\345\001\n\013UserMana" - + "ged\022U\n\010replicas\030\001 \003(\0132>.google.cloud.sec" - + "retmanager.v1.Replication.UserManaged.Re" - + "plicaB\003\340A\002\032\177\n\007Replica\022\020\n\010location\030\001 \001(\t\022" - + "b\n\033customer_managed_encryption\030\002 \001(\01328.g" - + "oogle.cloud.secretmanager.v1.CustomerMan" - + "agedEncryptionB\003\340A\001B\r\n\013replication\"6\n\031Cu" - + "stomerManagedEncryption\022\031\n\014kms_key_name\030" - + "\001 \001(\tB\003\340A\002\"\353\004\n\021ReplicationStatus\022U\n\tauto" - + "matic\030\001 \001(\0132@.google.cloud.secretmanager" - + ".v1.ReplicationStatus.AutomaticStatusH\000\022" - + "Z\n\014user_managed\030\002 \001(\0132B.google.cloud.sec" - + "retmanager.v1.ReplicationStatus.UserMana" - + "gedStatusH\000\032{\n\017AutomaticStatus\022h\n\033custom" - + "er_managed_encryption\030\001 \001(\0132>.google.clo" - + "ud.secretmanager.v1.CustomerManagedEncry" - + "ptionStatusB\003\340A\003\032\217\002\n\021UserManagedStatus\022g" - + "\n\010replicas\030\001 \003(\0132P.google.cloud.secretma" - + "nager.v1.ReplicationStatus.UserManagedSt" - + "atus.ReplicaStatusB\003\340A\003\032\220\001\n\rReplicaStatu" - + "s\022\025\n\010location\030\001 \001(\tB\003\340A\003\022h\n\033customer_man" - + "aged_encryption\030\002 \001(\0132>.google.cloud.sec" - + "retmanager.v1.CustomerManagedEncryptionS" - + "tatusB\003\340A\003B\024\n\022replication_status\"D\n\037Cust" - + "omerManagedEncryptionStatus\022!\n\024kms_key_v" - + "ersion_name\030\001 \001(\tB\003\340A\002\"_\n\005Topic\022\021\n\004name\030" - + "\001 \001(\tB\003\340A\002:C\352A@\n\033pubsub.googleapis.com/T" - + "opic\022!projects/{project}/topics/{topic}\"" - + "\200\001\n\010Rotation\022;\n\022next_rotation_time\030\001 \001(\013" - + "2\032.google.protobuf.TimestampB\003\340A\001\0227\n\017rot" - + "ation_period\030\002 \001(\0132\031.google.protobuf.Dur" - + "ationB\003\340A\004\"\035\n\rSecretPayload\022\014\n\004data\030\001 \001(" - + "\014B\355\001\n!com.google.cloud.secretmanager.v1B" - + "\016ResourcesProtoP\001ZJgoogle.golang.org/gen" - + "proto/googleapis/cloud/secretmanager/v1;" - + "secretmanager\370\001\001\242\002\003GSM\252\002\035Google.Cloud.Se" - + "cretManager.V1\312\002\035Google\\Cloud\\SecretMana" - + "ger\\V1\352\002 Google::Cloud::SecretManager::V" - + "1b\006proto3" + + "tomerManagedEncryptionB\003\340A\001B\r\n\013replicati" + + "on\"6\n\031CustomerManagedEncryption\022\031\n\014kms_k" + + "ey_name\030\001 \001(\tB\003\340A\002\"\353\004\n\021ReplicationStatus" + + "\022U\n\tautomatic\030\001 \001(\0132@.google.cloud.secre" + + "tmanager.v1.ReplicationStatus.AutomaticS" + + "tatusH\000\022Z\n\014user_managed\030\002 \001(\0132B.google.c" + + "loud.secretmanager.v1.ReplicationStatus." + + "UserManagedStatusH\000\032{\n\017AutomaticStatus\022h" + + "\n\033customer_managed_encryption\030\001 \001(\0132>.go" + + "ogle.cloud.secretmanager.v1.CustomerMana" + + "gedEncryptionStatusB\003\340A\003\032\217\002\n\021UserManaged" + + "Status\022g\n\010replicas\030\001 \003(\0132P.google.cloud." + + "secretmanager.v1.ReplicationStatus.UserM" + + "anagedStatus.ReplicaStatusB\003\340A\003\032\220\001\n\rRepl" + + "icaStatus\022\025\n\010location\030\001 \001(\tB\003\340A\003\022h\n\033cust" + + "omer_managed_encryption\030\002 \001(\0132>.google.c" + + "loud.secretmanager.v1.CustomerManagedEnc" + + "ryptionStatusB\003\340A\003B\024\n\022replication_status" + + "\"D\n\037CustomerManagedEncryptionStatus\022!\n\024k" + + "ms_key_version_name\030\001 \001(\tB\003\340A\002\"_\n\005Topic\022" + + "\021\n\004name\030\001 \001(\tB\003\340A\002:C\352A@\n\033pubsub.googleap" + + "is.com/Topic\022!projects/{project}/topics/" + + "{topic}\"\200\001\n\010Rotation\022;\n\022next_rotation_ti" + + "me\030\001 \001(\0132\032.google.protobuf.TimestampB\003\340A" + + "\001\0227\n\017rotation_period\030\002 \001(\0132\031.google.prot" + + "obuf.DurationB\003\340A\004\"L\n\rSecretPayload\022\014\n\004d" + + "ata\030\001 \001(\014\022\035\n\013data_crc32c\030\002 \001(\003B\003\340A\001H\000\210\001\001" + + "B\016\n\014_data_crc32cB\355\001\n!com.google.cloud.se" + + "cretmanager.v1B\016ResourcesProtoP\001ZJgoogle" + + ".golang.org/genproto/googleapis/cloud/se" + + "cretmanager/v1;secretmanager\370\001\001\242\002\003GSM\252\002\035" + + "Google.Cloud.SecretManager.V1\312\002\035Google\\C" + + "loud\\SecretManager\\V1\352\002 Google::Cloud::S" + + "ecretManager::V1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { + com.google.api.AnnotationsProto.getDescriptor(), com.google.api.FieldBehaviorProto.getDescriptor(), com.google.api.ResourceProto.getDescriptor(), com.google.protobuf.DurationProto.getDescriptor(), com.google.protobuf.TimestampProto.getDescriptor(), - com.google.api.AnnotationsProto.getDescriptor(), }); internal_static_google_cloud_secretmanager_v1_Secret_descriptor = getDescriptor().getMessageTypes().get(0); @@ -221,7 +223,13 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_cloud_secretmanager_v1_SecretVersion_descriptor, new java.lang.String[] { - "Name", "CreateTime", "DestroyTime", "State", "ReplicationStatus", "Etag", + "Name", + "CreateTime", + "DestroyTime", + "State", + "ReplicationStatus", + "Etag", + "ClientSpecifiedPayloadChecksum", }); internal_static_google_cloud_secretmanager_v1_Replication_descriptor = getDescriptor().getMessageTypes().get(2); @@ -337,7 +345,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_cloud_secretmanager_v1_SecretPayload_descriptor, new java.lang.String[] { - "Data", + "Data", "DataCrc32C", "DataCrc32C", }); com.google.protobuf.ExtensionRegistry registry = com.google.protobuf.ExtensionRegistry.newInstance(); @@ -345,11 +353,11 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { registry.add(com.google.api.ResourceProto.resource); com.google.protobuf.Descriptors.FileDescriptor.internalUpdateFileDescriptor( descriptor, registry); + com.google.api.AnnotationsProto.getDescriptor(); com.google.api.FieldBehaviorProto.getDescriptor(); com.google.api.ResourceProto.getDescriptor(); com.google.protobuf.DurationProto.getDescriptor(); com.google.protobuf.TimestampProto.getDescriptor(); - com.google.api.AnnotationsProto.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) diff --git a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretPayload.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretPayload.java index 224e7192..68cd0d88 100644 --- a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretPayload.java +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretPayload.java @@ -61,6 +61,7 @@ private SecretPayload( if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } + int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { @@ -76,6 +77,12 @@ private SecretPayload( data_ = input.readBytes(); break; } + case 16: + { + bitField0_ |= 0x00000001; + dataCrc32C_ = input.readInt64(); + break; + } default: { if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { @@ -110,6 +117,7 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.cloud.secretmanager.v1.SecretPayload.Builder.class); } + private int bitField0_; public static final int DATA_FIELD_NUMBER = 1; private com.google.protobuf.ByteString data_; /** @@ -128,6 +136,55 @@ public com.google.protobuf.ByteString getData() { return data_; } + public static final int DATA_CRC32C_FIELD_NUMBER = 2; + private long dataCrc32C_; + /** + * + * + *
+   * Optional. If specified, [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will verify the integrity of the
+   * received [data][google.cloud.secretmanager.v1.SecretPayload.data] on [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] calls using
+   * the crc32c checksum and store it to include in future
+   * [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion] responses. If a checksum is
+   * not provided in the [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] request, the
+   * [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will generate and store one for you.
+   * The CRC32C value is encoded as a Int64 for compatibility, and can be
+   * safely downconverted to uint32 in languages that support this type.
+   * https://cloud.google.com/apis/design/design_patterns#integer_types
+   * 
+ * + * optional int64 data_crc32c = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the dataCrc32c field is set. + */ + @java.lang.Override + public boolean hasDataCrc32C() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * + * + *
+   * Optional. If specified, [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will verify the integrity of the
+   * received [data][google.cloud.secretmanager.v1.SecretPayload.data] on [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] calls using
+   * the crc32c checksum and store it to include in future
+   * [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion] responses. If a checksum is
+   * not provided in the [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] request, the
+   * [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will generate and store one for you.
+   * The CRC32C value is encoded as a Int64 for compatibility, and can be
+   * safely downconverted to uint32 in languages that support this type.
+   * https://cloud.google.com/apis/design/design_patterns#integer_types
+   * 
+ * + * optional int64 data_crc32c = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The dataCrc32c. + */ + @java.lang.Override + public long getDataCrc32C() { + return dataCrc32C_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -145,6 +202,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!data_.isEmpty()) { output.writeBytes(1, data_); } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeInt64(2, dataCrc32C_); + } unknownFields.writeTo(output); } @@ -157,6 +217,9 @@ public int getSerializedSize() { if (!data_.isEmpty()) { size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, data_); } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(2, dataCrc32C_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -174,6 +237,10 @@ public boolean equals(final java.lang.Object obj) { (com.google.cloud.secretmanager.v1.SecretPayload) obj; if (!getData().equals(other.getData())) return false; + if (hasDataCrc32C() != other.hasDataCrc32C()) return false; + if (hasDataCrc32C()) { + if (getDataCrc32C() != other.getDataCrc32C()) return false; + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -187,6 +254,10 @@ public int hashCode() { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + DATA_FIELD_NUMBER; hash = (53 * hash) + getData().hashCode(); + if (hasDataCrc32C()) { + hash = (37 * hash) + DATA_CRC32C_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getDataCrc32C()); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -335,6 +406,8 @@ public Builder clear() { super.clear(); data_ = com.google.protobuf.ByteString.EMPTY; + dataCrc32C_ = 0L; + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -362,7 +435,14 @@ public com.google.cloud.secretmanager.v1.SecretPayload build() { public com.google.cloud.secretmanager.v1.SecretPayload buildPartial() { com.google.cloud.secretmanager.v1.SecretPayload result = new com.google.cloud.secretmanager.v1.SecretPayload(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; result.data_ = data_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.dataCrc32C_ = dataCrc32C_; + to_bitField0_ |= 0x00000001; + } + result.bitField0_ = to_bitField0_; onBuilt(); return result; } @@ -416,6 +496,9 @@ public Builder mergeFrom(com.google.cloud.secretmanager.v1.SecretPayload other) if (other.getData() != com.google.protobuf.ByteString.EMPTY) { setData(other.getData()); } + if (other.hasDataCrc32C()) { + setDataCrc32C(other.getDataCrc32C()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -445,6 +528,8 @@ public Builder mergeFrom( return this; } + private int bitField0_; + private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; /** * @@ -500,6 +585,105 @@ public Builder clearData() { return this; } + private long dataCrc32C_; + /** + * + * + *
+     * Optional. If specified, [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will verify the integrity of the
+     * received [data][google.cloud.secretmanager.v1.SecretPayload.data] on [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] calls using
+     * the crc32c checksum and store it to include in future
+     * [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion] responses. If a checksum is
+     * not provided in the [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] request, the
+     * [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will generate and store one for you.
+     * The CRC32C value is encoded as a Int64 for compatibility, and can be
+     * safely downconverted to uint32 in languages that support this type.
+     * https://cloud.google.com/apis/design/design_patterns#integer_types
+     * 
+ * + * optional int64 data_crc32c = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the dataCrc32c field is set. + */ + @java.lang.Override + public boolean hasDataCrc32C() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * + * + *
+     * Optional. If specified, [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will verify the integrity of the
+     * received [data][google.cloud.secretmanager.v1.SecretPayload.data] on [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] calls using
+     * the crc32c checksum and store it to include in future
+     * [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion] responses. If a checksum is
+     * not provided in the [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] request, the
+     * [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will generate and store one for you.
+     * The CRC32C value is encoded as a Int64 for compatibility, and can be
+     * safely downconverted to uint32 in languages that support this type.
+     * https://cloud.google.com/apis/design/design_patterns#integer_types
+     * 
+ * + * optional int64 data_crc32c = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The dataCrc32c. + */ + @java.lang.Override + public long getDataCrc32C() { + return dataCrc32C_; + } + /** + * + * + *
+     * Optional. If specified, [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will verify the integrity of the
+     * received [data][google.cloud.secretmanager.v1.SecretPayload.data] on [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] calls using
+     * the crc32c checksum and store it to include in future
+     * [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion] responses. If a checksum is
+     * not provided in the [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] request, the
+     * [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will generate and store one for you.
+     * The CRC32C value is encoded as a Int64 for compatibility, and can be
+     * safely downconverted to uint32 in languages that support this type.
+     * https://cloud.google.com/apis/design/design_patterns#integer_types
+     * 
+ * + * optional int64 data_crc32c = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The dataCrc32c to set. + * @return This builder for chaining. + */ + public Builder setDataCrc32C(long value) { + bitField0_ |= 0x00000001; + dataCrc32C_ = value; + onChanged(); + return this; + } + /** + * + * + *
+     * Optional. If specified, [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will verify the integrity of the
+     * received [data][google.cloud.secretmanager.v1.SecretPayload.data] on [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] calls using
+     * the crc32c checksum and store it to include in future
+     * [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion] responses. If a checksum is
+     * not provided in the [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] request, the
+     * [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will generate and store one for you.
+     * The CRC32C value is encoded as a Int64 for compatibility, and can be
+     * safely downconverted to uint32 in languages that support this type.
+     * https://cloud.google.com/apis/design/design_patterns#integer_types
+     * 
+ * + * optional int64 data_crc32c = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearDataCrc32C() { + bitField0_ = (bitField0_ & ~0x00000001); + dataCrc32C_ = 0L; + 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-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretPayloadOrBuilder.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretPayloadOrBuilder.java index 2fd8c47b..8037fcb5 100644 --- a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretPayloadOrBuilder.java +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretPayloadOrBuilder.java @@ -35,4 +35,45 @@ public interface SecretPayloadOrBuilder * @return The data. */ com.google.protobuf.ByteString getData(); + + /** + * + * + *
+   * Optional. If specified, [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will verify the integrity of the
+   * received [data][google.cloud.secretmanager.v1.SecretPayload.data] on [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] calls using
+   * the crc32c checksum and store it to include in future
+   * [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion] responses. If a checksum is
+   * not provided in the [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] request, the
+   * [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will generate and store one for you.
+   * The CRC32C value is encoded as a Int64 for compatibility, and can be
+   * safely downconverted to uint32 in languages that support this type.
+   * https://cloud.google.com/apis/design/design_patterns#integer_types
+   * 
+ * + * optional int64 data_crc32c = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return Whether the dataCrc32c field is set. + */ + boolean hasDataCrc32C(); + /** + * + * + *
+   * Optional. If specified, [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will verify the integrity of the
+   * received [data][google.cloud.secretmanager.v1.SecretPayload.data] on [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] calls using
+   * the crc32c checksum and store it to include in future
+   * [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion] responses. If a checksum is
+   * not provided in the [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] request, the
+   * [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will generate and store one for you.
+   * The CRC32C value is encoded as a Int64 for compatibility, and can be
+   * safely downconverted to uint32 in languages that support this type.
+   * https://cloud.google.com/apis/design/design_patterns#integer_types
+   * 
+ * + * optional int64 data_crc32c = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The dataCrc32c. + */ + long getDataCrc32C(); } diff --git a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretVersion.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretVersion.java index 3fca8469..bb376299 100644 --- a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretVersion.java +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretVersion.java @@ -140,6 +140,11 @@ private SecretVersion( etag_ = s; break; } + case 56: + { + clientSpecifiedPayloadChecksum_ = input.readBool(); + break; + } default: { if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { @@ -658,6 +663,27 @@ public com.google.protobuf.ByteString getEtagBytes() { } } + public static final int CLIENT_SPECIFIED_PAYLOAD_CHECKSUM_FIELD_NUMBER = 7; + private boolean clientSpecifiedPayloadChecksum_; + /** + * + * + *
+   * Output only. True if payload checksum specified in [SecretPayload][google.cloud.secretmanager.v1.SecretPayload] object has been
+   * received by [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] on
+   * [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion].
+   * 
+ * + * bool client_specified_payload_checksum = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The clientSpecifiedPayloadChecksum. + */ + @java.lang.Override + public boolean getClientSpecifiedPayloadChecksum() { + return clientSpecifiedPayloadChecksum_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -691,6 +717,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(etag_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 6, etag_); } + if (clientSpecifiedPayloadChecksum_ != false) { + output.writeBool(7, clientSpecifiedPayloadChecksum_); + } unknownFields.writeTo(output); } @@ -719,6 +748,10 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(etag_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, etag_); } + if (clientSpecifiedPayloadChecksum_ != false) { + size += + com.google.protobuf.CodedOutputStream.computeBoolSize(7, clientSpecifiedPayloadChecksum_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -750,6 +783,8 @@ public boolean equals(final java.lang.Object obj) { if (!getReplicationStatus().equals(other.getReplicationStatus())) return false; } if (!getEtag().equals(other.getEtag())) return false; + if (getClientSpecifiedPayloadChecksum() != other.getClientSpecifiedPayloadChecksum()) + return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -779,6 +814,9 @@ public int hashCode() { } hash = (37 * hash) + ETAG_FIELD_NUMBER; hash = (53 * hash) + getEtag().hashCode(); + hash = (37 * hash) + CLIENT_SPECIFIED_PAYLOAD_CHECKSUM_FIELD_NUMBER; + hash = + (53 * hash) + com.google.protobuf.Internal.hashBoolean(getClientSpecifiedPayloadChecksum()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -948,6 +986,8 @@ public Builder clear() { } etag_ = ""; + clientSpecifiedPayloadChecksum_ = false; + return this; } @@ -993,6 +1033,7 @@ public com.google.cloud.secretmanager.v1.SecretVersion buildPartial() { result.replicationStatus_ = replicationStatusBuilder_.build(); } result.etag_ = etag_; + result.clientSpecifiedPayloadChecksum_ = clientSpecifiedPayloadChecksum_; onBuilt(); return result; } @@ -1063,6 +1104,9 @@ public Builder mergeFrom(com.google.cloud.secretmanager.v1.SecretVersion other) etag_ = other.etag_; onChanged(); } + if (other.getClientSpecifiedPayloadChecksum() != false) { + setClientSpecifiedPayloadChecksum(other.getClientSpecifiedPayloadChecksum()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -2033,6 +2077,70 @@ public Builder setEtagBytes(com.google.protobuf.ByteString value) { return this; } + private boolean clientSpecifiedPayloadChecksum_; + /** + * + * + *
+     * Output only. True if payload checksum specified in [SecretPayload][google.cloud.secretmanager.v1.SecretPayload] object has been
+     * received by [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] on
+     * [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion].
+     * 
+ * + * + * bool client_specified_payload_checksum = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The clientSpecifiedPayloadChecksum. + */ + @java.lang.Override + public boolean getClientSpecifiedPayloadChecksum() { + return clientSpecifiedPayloadChecksum_; + } + /** + * + * + *
+     * Output only. True if payload checksum specified in [SecretPayload][google.cloud.secretmanager.v1.SecretPayload] object has been
+     * received by [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] on
+     * [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion].
+     * 
+ * + * + * bool client_specified_payload_checksum = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The clientSpecifiedPayloadChecksum to set. + * @return This builder for chaining. + */ + public Builder setClientSpecifiedPayloadChecksum(boolean value) { + + clientSpecifiedPayloadChecksum_ = value; + onChanged(); + return this; + } + /** + * + * + *
+     * Output only. True if payload checksum specified in [SecretPayload][google.cloud.secretmanager.v1.SecretPayload] object has been
+     * received by [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] on
+     * [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion].
+     * 
+ * + * + * bool client_specified_payload_checksum = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return This builder for chaining. + */ + public Builder clearClientSpecifiedPayloadChecksum() { + + clientSpecifiedPayloadChecksum_ = false; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); diff --git a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretVersionOrBuilder.java b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretVersionOrBuilder.java index 90b0fc5c..50b4f0e0 100644 --- a/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretVersionOrBuilder.java +++ b/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretVersionOrBuilder.java @@ -224,4 +224,20 @@ public interface SecretVersionOrBuilder * @return The bytes for etag. */ com.google.protobuf.ByteString getEtagBytes(); + + /** + * + * + *
+   * Output only. True if payload checksum specified in [SecretPayload][google.cloud.secretmanager.v1.SecretPayload] object has been
+   * received by [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] on
+   * [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion].
+   * 
+ * + * bool client_specified_payload_checksum = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The clientSpecifiedPayloadChecksum. + */ + boolean getClientSpecifiedPayloadChecksum(); } diff --git a/proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/resources.proto b/proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/resources.proto index 9b189692..a47475b3 100644 --- a/proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/resources.proto +++ b/proto-google-cloud-secretmanager-v1/src/main/proto/google/cloud/secretmanager/v1/resources.proto @@ -16,11 +16,11 @@ syntax = "proto3"; package google.cloud.secretmanager.v1; +import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.SecretManager.V1"; @@ -147,6 +147,11 @@ message SecretVersion { // Output only. Etag of the currently stored [SecretVersion][google.cloud.secretmanager.v1.SecretVersion]. string etag = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. True if payload checksum specified in [SecretPayload][google.cloud.secretmanager.v1.SecretPayload] object has been + // received by [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] on + // [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion]. + bool client_specified_payload_checksum = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A policy that defines the replication and encryption configuration of data. @@ -313,4 +318,16 @@ message Rotation { message SecretPayload { // The secret data. Must be no larger than 64KiB. bytes data = 1; + + // Optional. If specified, [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will verify the integrity of the + // received [data][google.cloud.secretmanager.v1.SecretPayload.data] on [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] calls using + // the crc32c checksum and store it to include in future + // [SecretManagerService.AccessSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AccessSecretVersion] responses. If a checksum is + // not provided in the [SecretManagerService.AddSecretVersion][google.cloud.secretmanager.v1.SecretManagerService.AddSecretVersion] request, the + // [SecretManagerService][google.cloud.secretmanager.v1.SecretManagerService] will generate and store one for you. + // + // The CRC32C value is encoded as a Int64 for compatibility, and can be + // safely downconverted to uint32 in languages that support this type. + // https://cloud.google.com/apis/design/design_patterns#integer_types + optional int64 data_crc32c = 2 [(google.api.field_behavior) = OPTIONAL]; }