@@ -1076,30 +1076,35 @@ message BidiReadObjectResponse {
10761076 BidiReadHandle read_handle = 7 ;
10771077}
10781078
1079- // Error proto containing details for a redirected read. This error is only
1080- // returned on initial open in case of a redirect .
1079+ // Error proto containing details for a redirected read. This error may be
1080+ // attached as details for an ABORTED response to BidiReadObject .
10811081message BidiReadObjectRedirectedError {
1082- // The read handle for the redirected read. The client can use this for the
1083- // subsequent open .
1082+ // The read handle for the redirected read. If set, the client may use this in
1083+ // the BidiReadObjectSpec when retrying the read stream .
10841084 BidiReadHandle read_handle = 1 ;
10851085
1086- // The routing token that should be used when reopening the read stream.
1086+ // The routing token the client must use when retrying the read stream.
1087+ // This value must be provided in the header `x-goog-request-params`, with key
1088+ // `routing_token` and this string verbatim as the value.
10871089 optional string routing_token = 2 ;
10881090}
10891091
1090- // Error proto containing details for a redirected write. This error is only
1091- // returned on initial open in case of a redirect .
1092+ // Error proto containing details for a redirected write. This error may be
1093+ // attached as details for an ABORTED response to BidiWriteObject .
10921094message BidiWriteObjectRedirectedError {
1093- // The routing token that should be used when reopening the write stream.
1095+ // The routing token the client must use when retrying the write stream.
1096+ // This value must be provided in the header `x-goog-request-params`, with key
1097+ // `routing_token` and this string verbatim as the value.
10941098 optional string routing_token = 1 ;
10951099
1096- // Opaque value describing a previous write.
1100+ // Opaque value describing a previous write. If set, the client must use this
1101+ // in an AppendObjectSpec first_message when retrying the write stream. If not
1102+ // set, clients may retry the original request.
10971103 optional BidiWriteHandle write_handle = 2 ;
10981104
1099- // The generation of the object that triggered the redirect.
1100- // Note that if this error was returned as part of an appendable object
1101- // create, this object generation is now successfully created and
1102- // append_object_spec should be used when reconnecting.
1105+ // The generation of the object that triggered the redirect. This will be set
1106+ // iff write_handle is set. If set, the client must use this in an
1107+ // AppendObjectSpec first_message when retrying the write stream.
11031108 optional int64 generation = 3 ;
11041109}
11051110
@@ -1309,10 +1314,16 @@ message AppendObjectSpec {
13091314
13101315 // Makes the operation conditional on whether the object's current
13111316 // metageneration matches the given value.
1317+ //
1318+ // Note that metageneration preconditions are only checked if `write_handle`
1319+ // is empty.
13121320 optional int64 if_metageneration_match = 4 ;
13131321
13141322 // Makes the operation conditional on whether the object's current
13151323 // metageneration does not match the given value.
1324+ //
1325+ // Note that metageneration preconditions are only checked if `write_handle`
1326+ // is empty.
13161327 optional int64 if_metageneration_not_match = 5 ;
13171328
13181329 // An optional routing token that influences request routing for the stream.
@@ -1321,6 +1332,9 @@ message AppendObjectSpec {
13211332
13221333 // An optional write handle returned from a previous BidiWriteObjectResponse
13231334 // message or a BidiWriteObjectRedirectedError error.
1335+ //
1336+ // Note that metageneration preconditions are only checked if `write_handle`
1337+ // is empty.
13241338 optional BidiWriteHandle write_handle = 7 ;
13251339}
13261340
@@ -2000,38 +2014,42 @@ message Bucket {
20002014 message Encryption {
20012015 // Google Managed Encryption (GMEK) enforcement config of a bucket.
20022016 message GoogleManagedEncryptionEnforcementConfig {
2003- // Whether Google Managed Encryption (GMEK) is restricted for new
2004- // objects within the bucket.
2005- // If true, new objects can't be created using GMEK encryption.
2006- // If false or unset, creation of new objects with GMEK encryption is
2007- // allowed.
2008- optional bool restricted = 1 ;
2017+ // Restriction mode for google-managed encryption for new objects within
2018+ // the bucket. Valid values are: "NotRestricted", "FullyRestricted".
2019+ // If `NotRestricted` or unset, creation of new objects with
2020+ // google-managed encryption is allowed.
2021+ // If `FullyRestricted`, new objects can't be created using google-managed
2022+ // encryption.
2023+ optional string restriction_mode = 3 ;
20092024
20102025 // Time from which the config was effective. This is service-provided.
20112026 optional google.protobuf.Timestamp effective_time = 2 ;
20122027 }
20132028
20142029 // Customer Managed Encryption (CMEK) enforcement config of a bucket.
20152030 message CustomerManagedEncryptionEnforcementConfig {
2016- // Whether Customer Managed Encryption (CMEK) is restricted for new
2017- // objects within the bucket.
2018- // If true, new objects can't be created using CMEK encryption.
2019- // If false or unset, creation of new objects with CMEK encryption is
2020- // allowed.
2021- optional bool restricted = 1 ;
2031+ // Restriction mode for customer-managed encryption for new objects within
2032+ // the bucket. Valid values are: "NotRestricted", "FullyRestricted".
2033+ // If `NotRestricted` or unset, creation of new objects with
2034+ // customer-managed encryption is allowed.
2035+ // If `FullyRestricted`, new objects can't be created using
2036+ // customer-managed encryption.
2037+ optional string restriction_mode = 3 ;
20222038
20232039 // Time from which the config was effective. This is service-provided.
20242040 optional google.protobuf.Timestamp effective_time = 2 ;
20252041 }
20262042
20272043 // Customer Supplied Encryption (CSEK) enforcement config of a bucket.
20282044 message CustomerSuppliedEncryptionEnforcementConfig {
2029- // Whether Customer Supplied Encryption (CSEK) is restricted for new
2030- // objects within the bucket.
2031- // If true, new objects can't be created using CSEK encryption.
2032- // If false or unset, creation of new objects with CSEK encryption is
2033- // allowed.
2034- optional bool restricted = 1 ;
2045+ // Restriction mode for customer-supplied encryption for new objects
2046+ // within the bucket. Valid values are: "NotRestricted",
2047+ // "FullyRestricted".
2048+ // If `NotRestricted` or unset, creation of new objects with
2049+ // customer-supplied encryption is allowed.
2050+ // If `FullyRestricted`, new objects can't be created using
2051+ // customer-supplied encryption.
2052+ optional string restriction_mode = 3 ;
20352053
20362054 // Time from which the config was effective. This is service-provided.
20372055 optional google.protobuf.Timestamp effective_time = 2 ;
0 commit comments