Class: Gcloud::Bigquery::Dataset::Access

Inherits:
Object
  • Object
show all
Defined in:
lib/gcloud/bigquery/dataset/access.rb

Overview

Dataset Access Control

Represents the Access rules for a Dataset. See BigQuery Access Control.

require "gcloud"

gcloud = Gcloud.new
bigquery = gcloud.bigquery
dataset = bigquery.dataset "my_dataset"

dataset.access do |access|
  access.add_owner_group "[email protected]"
  access.add_writer_user "[email protected]"
  access.remove_writer_user "[email protected]"
  access.add_reader_special :all
  access.add_reader_view other_dataset_view_object
end

Constant Summary collapse

ROLES =
{ "reader" => "READER",
"writer" => "WRITER",
"owner"  => "OWNER" }
SCOPES =

:nodoc:

{ "user"           => "userByEmail",
"user_by_email"  => "userByEmail",
"userByEmail"    => "userByEmail",
"group"          => "groupByEmail",
"group_by_email" => "groupByEmail",
"groupByEmail"   => "groupByEmail",
"domain"         => "domain",
"special"        => "specialGroup",
"special_group"  => "specialGroup",
"specialGroup"   => "specialGroup",
"view"           => "view" }
GROUPS =

:nodoc:

{ "owners"                  => "projectOwners",
"project_owners"          => "projectOwners",
"projectOwners"           => "projectOwners",
"readers"                 => "projectReaders",
"project_readers"         => "projectReaders",
"projectReaders"          => "projectReaders",
"writers"                 => "projectWriters",
"project_writers"         => "projectWriters",
"projectWriters"          => "projectWriters",
"all"                     => "allAuthenticatedUsers",
"all_authenticated_users" => "allAuthenticatedUsers",
"allAuthenticatedUsers"   => "allAuthenticatedUsers" }

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access, context) ⇒ Access

Initialized a new Access object. Must provide a valid Dataset object.



74
75
76
77
78
# File 'lib/gcloud/bigquery/dataset/access.rb', line 74

def initialize access, context #:nodoc:
  @original   = access.dup
  @access     = access.dup
  @context    = context
end

Instance Attribute Details

#accessObject (readonly)

:nodoc:



69
70
71
# File 'lib/gcloud/bigquery/dataset/access.rb', line 69

def access
  @access
end

Instance Method Details

#add_owner_domain(domain) ⇒ Object

Add owner access to a domain.



170
171
172
# File 'lib/gcloud/bigquery/dataset/access.rb', line 170

def add_owner_domain domain
  add_access_role_scope_value :owner, :domain, domain
end

#add_owner_group(email) ⇒ Object

Add owner access to a group.



164
165
166
# File 'lib/gcloud/bigquery/dataset/access.rb', line 164

def add_owner_group email
  add_access_role_scope_value :owner, :group, email
end

#add_owner_special(group) ⇒ Object

Add owner access to a special group. Accepted values are owners, writers, readers, and all.



177
178
179
# File 'lib/gcloud/bigquery/dataset/access.rb', line 177

def add_owner_special group
  add_access_role_scope_value :owner, :special, group
end

#add_owner_user(email) ⇒ Object

Add owner access to a user.



158
159
160
# File 'lib/gcloud/bigquery/dataset/access.rb', line 158

def add_owner_user email
  add_access_role_scope_value :owner, :user, email
end

#add_owner_view(view) ⇒ Object

Add owner access to a view. The view can be a Gcloud::Bigquery::View object, or a string identifier as specified by the Query Reference: project_name:datasetId.tableId.



188
189
190
# File 'lib/gcloud/bigquery/dataset/access.rb', line 188

def add_owner_view view
  add_access_role_scope_value :owner, :view, view
end

#add_reader_domain(domain) ⇒ Object

Add reader access to a domain.



98
99
100
# File 'lib/gcloud/bigquery/dataset/access.rb', line 98

def add_reader_domain domain
  add_access_role_scope_value :reader, :domain, domain
end

#add_reader_group(email) ⇒ Object

Add reader access to a group.



92
93
94
# File 'lib/gcloud/bigquery/dataset/access.rb', line 92

def add_reader_group email
  add_access_role_scope_value :reader, :group, email
end

#add_reader_special(group) ⇒ Object

Add reader access to a special group. Accepted values are owners, writers, readers, and all.



105
106
107
# File 'lib/gcloud/bigquery/dataset/access.rb', line 105

def add_reader_special group
  add_access_role_scope_value :reader, :special, group
end

#add_reader_user(email) ⇒ Object

Add reader access to a user.



86
87
88
# File 'lib/gcloud/bigquery/dataset/access.rb', line 86

def add_reader_user email
  add_access_role_scope_value :reader, :user, email
end

#add_reader_view(view) ⇒ Object

Add reader access to a view. The view can be a Gcloud::Bigquery::View object, or a string identifier as specified by the Query Reference: project_name:datasetId.tableId.



116
117
118
# File 'lib/gcloud/bigquery/dataset/access.rb', line 116

def add_reader_view view
  add_access_role_scope_value :reader, :view, view
end

#add_writer_domain(domain) ⇒ Object

Add writer access to a domain.



134
135
136
# File 'lib/gcloud/bigquery/dataset/access.rb', line 134

def add_writer_domain domain
  add_access_role_scope_value :writer, :domain, domain
end

#add_writer_group(email) ⇒ Object

Add writer access to a group.



128
129
130
# File 'lib/gcloud/bigquery/dataset/access.rb', line 128

def add_writer_group email
  add_access_role_scope_value :writer, :group, email
end

#add_writer_special(group) ⇒ Object

Add writer access to a special group. Accepted values are owners, writers, readers, and all.



141
142
143
# File 'lib/gcloud/bigquery/dataset/access.rb', line 141

def add_writer_special group
  add_access_role_scope_value :writer, :special, group
end

#add_writer_user(email) ⇒ Object

Add writer access to a user.



122
123
124
# File 'lib/gcloud/bigquery/dataset/access.rb', line 122

def add_writer_user email
  add_access_role_scope_value :writer, :user, email
end

#add_writer_view(view) ⇒ Object

Add writer access to a view. The view can be a Gcloud::Bigquery::View object, or a string identifier as specified by the Query Reference: project_name:datasetId.tableId.



152
153
154
# File 'lib/gcloud/bigquery/dataset/access.rb', line 152

def add_writer_view view
  add_access_role_scope_value :writer, :view, view
end

#changed?Boolean

:nodoc:



80
81
82
# File 'lib/gcloud/bigquery/dataset/access.rb', line 80

def changed? #:nodoc:
  @original != @access
end

#owner_domain?(domain) ⇒ Boolean

Checks owner access for a domain.



386
387
388
# File 'lib/gcloud/bigquery/dataset/access.rb', line 386

def owner_domain? domain
  lookup_access_role_scope_value :owner, :domain, domain
end

#owner_group?(email) ⇒ Boolean

Checks owner access for a group.



380
381
382
# File 'lib/gcloud/bigquery/dataset/access.rb', line 380

def owner_group? email
  lookup_access_role_scope_value :owner, :group, email
end

#owner_special?(group) ⇒ Boolean

Checks owner access for a special group. Accepted values are owners, writers, readers, and all.



393
394
395
# File 'lib/gcloud/bigquery/dataset/access.rb', line 393

def owner_special? group
  lookup_access_role_scope_value :owner, :special, group
end

#owner_user?(email) ⇒ Boolean

Checks owner access for a user.



374
375
376
# File 'lib/gcloud/bigquery/dataset/access.rb', line 374

def owner_user? email
  lookup_access_role_scope_value :owner, :user, email
end

#owner_view?(view) ⇒ Boolean

Checks owner access for a view. The view can be a Gcloud::Bigquery::View object, or a string identifier as specified by the Query Reference: project_name:datasetId.tableId.



404
405
406
# File 'lib/gcloud/bigquery/dataset/access.rb', line 404

def owner_view? view
  lookup_access_role_scope_value :owner, :view, view
end

#reader_domain?(domain) ⇒ Boolean

Checks reader access for a domain.



314
315
316
# File 'lib/gcloud/bigquery/dataset/access.rb', line 314

def reader_domain? domain
  lookup_access_role_scope_value :reader, :domain, domain
end

#reader_group?(email) ⇒ Boolean

Checks reader access for a group.



308
309
310
# File 'lib/gcloud/bigquery/dataset/access.rb', line 308

def reader_group? email
  lookup_access_role_scope_value :reader, :group, email
end

#reader_special?(group) ⇒ Boolean

Checks reader access for a special group. Accepted values are owners, writers, readers, and all.



321
322
323
# File 'lib/gcloud/bigquery/dataset/access.rb', line 321

def reader_special? group
  lookup_access_role_scope_value :reader, :special, group
end

#reader_user?(email) ⇒ Boolean

Checks reader access for a user.



302
303
304
# File 'lib/gcloud/bigquery/dataset/access.rb', line 302

def reader_user? email
  lookup_access_role_scope_value :reader, :user, email
end

#reader_view?(view) ⇒ Boolean

Checks reader access for a view. The view can be a Gcloud::Bigquery::View object, or a string identifier as specified by the Query Reference: project_name:datasetId.tableId.



332
333
334
# File 'lib/gcloud/bigquery/dataset/access.rb', line 332

def reader_view? view
  lookup_access_role_scope_value :reader, :view, view
end

#remove_owner_domain(domain) ⇒ Object

Remove owner access from a domain.



278
279
280
# File 'lib/gcloud/bigquery/dataset/access.rb', line 278

def remove_owner_domain domain
  remove_access_role_scope_value :owner, :domain, domain
end

#remove_owner_group(email) ⇒ Object

Remove owner access from a group.



272
273
274
# File 'lib/gcloud/bigquery/dataset/access.rb', line 272

def remove_owner_group email
  remove_access_role_scope_value :owner, :group, email
end

#remove_owner_special(group) ⇒ Object

Remove owner access from a special group. Accepted values are owners, writers, readers, and all.



285
286
287
# File 'lib/gcloud/bigquery/dataset/access.rb', line 285

def remove_owner_special group
  remove_access_role_scope_value :owner, :special, group
end

#remove_owner_user(email) ⇒ Object

Remove owner access from a user.



266
267
268
# File 'lib/gcloud/bigquery/dataset/access.rb', line 266

def remove_owner_user email
  remove_access_role_scope_value :owner, :user, email
end

#remove_owner_view(view) ⇒ Object

Remove owner access from a view. The view can be a Gcloud::Bigquery::View object, or a string identifier as specified by the Query Reference: project_name:datasetId.tableId.



296
297
298
# File 'lib/gcloud/bigquery/dataset/access.rb', line 296

def remove_owner_view view
  remove_access_role_scope_value :owner, :view, view
end

#remove_reader_domain(domain) ⇒ Object

Remove reader access from a domain.



206
207
208
# File 'lib/gcloud/bigquery/dataset/access.rb', line 206

def remove_reader_domain domain
  remove_access_role_scope_value :reader, :domain, domain
end

#remove_reader_group(email) ⇒ Object

Remove reader access from a group.



200
201
202
# File 'lib/gcloud/bigquery/dataset/access.rb', line 200

def remove_reader_group email
  remove_access_role_scope_value :reader, :group, email
end

#remove_reader_special(group) ⇒ Object

Remove reader access from a special group. Accepted values are owners, writers, readers, and all.



213
214
215
# File 'lib/gcloud/bigquery/dataset/access.rb', line 213

def remove_reader_special group
  remove_access_role_scope_value :reader, :special, group
end

#remove_reader_user(email) ⇒ Object

Remove reader access from a user.



194
195
196
# File 'lib/gcloud/bigquery/dataset/access.rb', line 194

def remove_reader_user email
  remove_access_role_scope_value :reader, :user, email
end

#remove_reader_view(view) ⇒ Object

Remove reader access from a view. The view can be a Gcloud::Bigquery::View object, or a string identifier as specified by the Query Reference: project_name:datasetId.tableId.



224
225
226
# File 'lib/gcloud/bigquery/dataset/access.rb', line 224

def remove_reader_view view
  remove_access_role_scope_value :reader, :view, view
end

#remove_writer_domain(domain) ⇒ Object

Remove writer access from a domain.



242
243
244
# File 'lib/gcloud/bigquery/dataset/access.rb', line 242

def remove_writer_domain domain
  remove_access_role_scope_value :writer, :domain, domain
end

#remove_writer_group(email) ⇒ Object

Remove writer access from a group.



236
237
238
# File 'lib/gcloud/bigquery/dataset/access.rb', line 236

def remove_writer_group email
  remove_access_role_scope_value :writer, :group, email
end

#remove_writer_special(group) ⇒ Object

Remove writer access from a special group. Accepted values are owners, writers, readers, and all.



249
250
251
# File 'lib/gcloud/bigquery/dataset/access.rb', line 249

def remove_writer_special group
  remove_access_role_scope_value :writer, :special, group
end

#remove_writer_user(email) ⇒ Object

Remove writer access from a user.



230
231
232
# File 'lib/gcloud/bigquery/dataset/access.rb', line 230

def remove_writer_user email
  remove_access_role_scope_value :writer, :user, email
end

#remove_writer_view(view) ⇒ Object

Remove writer access from a view. The view can be a Gcloud::Bigquery::View object, or a string identifier as specified by the Query Reference: project_name:datasetId.tableId.



260
261
262
# File 'lib/gcloud/bigquery/dataset/access.rb', line 260

def remove_writer_view view
  remove_access_role_scope_value :writer, :view, view
end

#writer_domain?(domain) ⇒ Boolean

Checks writer access for a domain.



350
351
352
# File 'lib/gcloud/bigquery/dataset/access.rb', line 350

def writer_domain? domain
  lookup_access_role_scope_value :writer, :domain, domain
end

#writer_group?(email) ⇒ Boolean

Checks writer access for a group.



344
345
346
# File 'lib/gcloud/bigquery/dataset/access.rb', line 344

def writer_group? email
  lookup_access_role_scope_value :writer, :group, email
end

#writer_special?(group) ⇒ Boolean

Checks writer access for a special group. Accepted values are owners, writers, readers, and all.



357
358
359
# File 'lib/gcloud/bigquery/dataset/access.rb', line 357

def writer_special? group
  lookup_access_role_scope_value :writer, :special, group
end

#writer_user?(email) ⇒ Boolean

Checks writer access for a user.



338
339
340
# File 'lib/gcloud/bigquery/dataset/access.rb', line 338

def writer_user? email
  lookup_access_role_scope_value :writer, :user, email
end

#writer_view?(view) ⇒ Boolean

Checks writer access for a view. The view can be a Gcloud::Bigquery::View object, or a string identifier as specified by the Query Reference: project_name:datasetId.tableId.



368
369
370
# File 'lib/gcloud/bigquery/dataset/access.rb', line 368

def writer_view? view
  lookup_access_role_scope_value :writer, :view, view
end