@@ -22,6 +22,8 @@ import "google/api/field_behavior.proto";
2222import "google/api/field_info.proto" ;
2323import "google/api/resource.proto" ;
2424import "google/api/routing.proto" ;
25+ import "google/iam/v1/iam_policy.proto" ;
26+ import "google/iam/v1/policy.proto" ;
2527import "google/longrunning/operations.proto" ;
2628import "google/protobuf/duration.proto" ;
2729import "google/protobuf/empty.proto" ;
@@ -306,6 +308,63 @@ service StorageControl {
306308 };
307309 option (google.api.method_signature ) = "intelligence_config,update_mask" ;
308310 }
311+
312+ // Gets the IAM policy for a specified bucket.
313+ // The `resource` field in the request should be
314+ // `projects/_/buckets/{bucket}` for a bucket, or
315+ // `projects/_/buckets/{bucket}/managedFolders/{managedFolder}`
316+ // for a managed folder.
317+ rpc GetIamPolicy (google.iam.v1.GetIamPolicyRequest )
318+ returns (google.iam.v1.Policy ) {
319+ option (google.api.routing ) = {
320+ routing_parameters { field : "resource" path_template : "{bucket=**}" }
321+ routing_parameters {
322+ field : "resource"
323+ path_template : "{bucket=projects/*/buckets/*}/**"
324+ }
325+ };
326+ option (google.api.method_signature ) = "resource" ;
327+ }
328+
329+ // Updates an IAM policy for the specified bucket.
330+ // The `resource` field in the request should be
331+ // `projects/_/buckets/{bucket}` for a bucket, or
332+ // `projects/_/buckets/{bucket}/managedFolders/{managedFolder}`
333+ // for a managed folder.
334+ rpc SetIamPolicy (google.iam.v1.SetIamPolicyRequest )
335+ returns (google.iam.v1.Policy ) {
336+ option (google.api.routing ) = {
337+ routing_parameters { field : "resource" path_template : "{bucket=**}" }
338+ routing_parameters {
339+ field : "resource"
340+ path_template : "{bucket=projects/*/buckets/*}/**"
341+ }
342+ };
343+ option (google.api.method_signature ) = "resource,policy" ;
344+ }
345+
346+ // Tests a set of permissions on the given bucket, object, or managed folder
347+ // to see which, if any, are held by the caller.
348+ // The `resource` field in the request should be
349+ // `projects/_/buckets/{bucket}` for a bucket,
350+ // `projects/_/buckets/{bucket}/objects/{object}` for an object, or
351+ // `projects/_/buckets/{bucket}/managedFolders/{managedFolder}`
352+ // for a managed folder.
353+ rpc TestIamPermissions (google.iam.v1.TestIamPermissionsRequest )
354+ returns (google.iam.v1.TestIamPermissionsResponse ) {
355+ option (google.api.routing ) = {
356+ routing_parameters { field : "resource" path_template : "{bucket=**}" }
357+ routing_parameters {
358+ field : "resource"
359+ path_template : "{bucket=projects/*/buckets/*}/objects/**"
360+ }
361+ routing_parameters {
362+ field : "resource"
363+ path_template : "{bucket=projects/*/buckets/*}/managedFolders/**"
364+ }
365+ };
366+ option (google.api.method_signature ) = "resource,permissions" ;
367+ }
309368}
310369
311370// Contains information about a pending rename operation.
0 commit comments