Class: Google::Cloud::Storage::Bucket::Acl
- Inherits:
-
Object
- Object
- Google::Cloud::Storage::Bucket::Acl
- Defined in:
- lib/google/cloud/storage/bucket/acl.rb
Overview
Bucket Access Control List
Represents a Bucket's Access Control List.
Instance Attribute Summary collapse
-
#user_project ⇒ Object
A boolean value or a project ID string to indicate the project to be billed for operations on the bucket and its files.
Instance Method Summary collapse
-
#add_owner(entity) ⇒ String
Grants owner permission to the bucket.
-
#add_reader(entity) ⇒ String
Grants reader permission to the bucket.
-
#add_writer(entity) ⇒ String
Grants writer permission to the bucket.
-
#auth!(if_metageneration_match: nil) ⇒ Object
(also: #authenticatedRead!, #auth_read!, #authenticated!, #authenticated_read!)
Convenience method to apply the
authenticatedRead
predefined ACL rule to the bucket. -
#delete(entity) ⇒ Boolean
Permanently deletes the entity from the bucket's access control list.
-
#owners ⇒ Array<String>
Lists the owners of the bucket.
-
#private!(if_metageneration_match: nil) ⇒ Object
Convenience method to apply the
private
predefined ACL rule to the bucket. -
#project_private!(if_metageneration_match: nil) ⇒ Object
(also: #projectPrivate!)
Convenience method to apply the
projectPrivate
predefined ACL rule to the bucket. -
#public!(if_metageneration_match: nil) ⇒ Object
(also: #publicRead!, #public_read!)
Convenience method to apply the
publicRead
predefined ACL rule to the bucket. -
#public_write!(if_metageneration_match: nil) ⇒ Object
(also: #publicReadWrite!)
Convenience method to apply the
publicReadWrite
predefined ACL rule to the bucket. -
#readers ⇒ Array<String>
Lists the readers of the bucket.
-
#reload! ⇒ Object
(also: #refresh!)
Reloads all Access Control List data for the bucket.
-
#writers ⇒ Array<String>
Lists the owners of the bucket.
Instance Attribute Details
#user_project ⇒ Object
A boolean value or a project ID string to indicate the project to
be billed for operations on the bucket and its files. If this
attribute is set to true
, transit costs for operations on the
bucket will be billed to the current project for this client. (See
Project#project for the ID of the current project.) If this
attribute is set to a project ID, and that project is authorized for
the currently authenticated service account, transit costs will be
billed to that project. This attribute is required with requester
pays-enabled buckets. The default is nil
.
In general, this attribute should be set when first retrieving the
owning bucket by providing the user_project
option to
Project#bucket.
See also Google::Cloud::Storage::Bucket#requester_pays= and Google::Cloud::Storage::Bucket#requester_pays.
68 69 70 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 68 def user_project @user_project end |
Instance Method Details
#add_owner(entity) ⇒ String
Grants owner permission to the bucket.
197 198 199 200 201 202 203 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 197 def add_owner entity gapi = @service.insert_bucket_acl @bucket, entity, "OWNER", user_project: user_project entity = gapi.entity @owners&.push entity entity end |
#add_reader(entity) ⇒ String
Grants reader permission to the bucket.
287 288 289 290 291 292 293 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 287 def add_reader entity gapi = @service.insert_bucket_acl @bucket, entity, "READER", user_project: user_project entity = gapi.entity @readers&.push entity entity end |
#add_writer(entity) ⇒ String
Grants writer permission to the bucket.
242 243 244 245 246 247 248 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 242 def add_writer entity gapi = @service.insert_bucket_acl @bucket, entity, "WRITER", user_project: user_project entity = gapi.entity @writers&.push entity entity end |
#auth!(if_metageneration_match: nil) ⇒ Object Also known as: authenticatedRead!, auth_read!, authenticated!, authenticated_read!
Convenience method to apply the authenticatedRead
predefined ACL
rule to the bucket.
352 353 354 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 352 def auth! if_metageneration_match: nil update_predefined_acl! "authenticatedRead", if_metageneration_match: end |
#delete(entity) ⇒ Boolean
Permanently deletes the entity from the bucket's access control list.
323 324 325 326 327 328 329 330 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 323 def delete entity @service.delete_bucket_acl @bucket, entity, user_project: user_project @owners&.delete entity @writers&.delete entity @readers&.delete entity true end |
#owners ⇒ Array<String>
Lists the owners of the bucket.
117 118 119 120 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 117 def owners reload! if @owners.nil? @owners end |
#private!(if_metageneration_match: nil) ⇒ Object
Convenience method to apply the private
predefined ACL
rule to the bucket.
373 374 375 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 373 def private! if_metageneration_match: nil update_predefined_acl! "private", if_metageneration_match: end |
#project_private!(if_metageneration_match: nil) ⇒ Object Also known as: projectPrivate!
Convenience method to apply the projectPrivate
predefined ACL
rule to the bucket.
390 391 392 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 390 def project_private! if_metageneration_match: nil update_predefined_acl! "projectPrivate", if_metageneration_match: end |
#public!(if_metageneration_match: nil) ⇒ Object Also known as: publicRead!, public_read!
Convenience method to apply the publicRead
predefined ACL
rule to the bucket.
408 409 410 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 408 def public! if_metageneration_match: nil update_predefined_acl! "publicRead", if_metageneration_match: end |
#public_write!(if_metageneration_match: nil) ⇒ Object Also known as: publicReadWrite!
Convenience method to apply the publicReadWrite
predefined ACL
rule to the bucket.
426 427 428 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 426 def public_write! if_metageneration_match: nil update_predefined_acl! "publicReadWrite", if_metageneration_match: end |
#readers ⇒ Array<String>
Lists the readers of the bucket.
155 156 157 158 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 155 def readers reload! if @readers.nil? @readers end |
#reload! ⇒ Object Also known as: refresh!
Reloads all Access Control List data for the bucket.
94 95 96 97 98 99 100 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 94 def reload! gapi = @service.list_bucket_acls @bucket, user_project: user_project acls = Array(gapi.items) @owners = entities_from_acls acls, "OWNER" @writers = entities_from_acls acls, "WRITER" @readers = entities_from_acls acls, "READER" end |
#writers ⇒ Array<String>
Lists the owners of the bucket.
136 137 138 139 |
# File 'lib/google/cloud/storage/bucket/acl.rb', line 136 def writers reload! if @writers.nil? @writers end |