google-cloud-bigtable 0.8.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/OVERVIEW.md +388 -19
  4. data/lib/google-cloud-bigtable.rb +0 -1
  5. data/lib/google/bigtable/admin/v2/bigtable_table_admin_services_pb.rb +1 -1
  6. data/lib/google/bigtable/v2/bigtable_pb.rb +3 -0
  7. data/lib/google/bigtable/v2/bigtable_services_pb.rb +1 -1
  8. data/lib/google/cloud/bigtable/admin.rb +1 -1
  9. data/lib/google/cloud/bigtable/admin/v2.rb +1 -1
  10. data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client.rb +1 -1
  11. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/policy.rb +6 -5
  12. data/lib/google/cloud/bigtable/app_profile.rb +13 -13
  13. data/lib/google/cloud/bigtable/app_profile/list.rb +7 -7
  14. data/lib/google/cloud/bigtable/cluster.rb +7 -7
  15. data/lib/google/cloud/bigtable/cluster/list.rb +2 -2
  16. data/lib/google/cloud/bigtable/column_family.rb +3 -1
  17. data/lib/google/cloud/bigtable/column_family_map.rb +8 -8
  18. data/lib/google/cloud/bigtable/column_range.rb +6 -6
  19. data/lib/google/cloud/bigtable/gc_rule.rb +8 -8
  20. data/lib/google/cloud/bigtable/instance.rb +74 -64
  21. data/lib/google/cloud/bigtable/instance/cluster_map.rb +8 -6
  22. data/lib/google/cloud/bigtable/instance/job.rb +2 -2
  23. data/lib/google/cloud/bigtable/instance/list.rb +4 -4
  24. data/lib/google/cloud/bigtable/longrunning_job.rb +1 -1
  25. data/lib/google/cloud/bigtable/mutation_entry.rb +17 -16
  26. data/lib/google/cloud/bigtable/mutation_operations.rb +10 -11
  27. data/lib/google/cloud/bigtable/project.rb +28 -59
  28. data/lib/google/cloud/bigtable/read_modify_write_rule.rb +6 -6
  29. data/lib/google/cloud/bigtable/read_operations.rb +14 -18
  30. data/lib/google/cloud/bigtable/routing_policy.rb +3 -2
  31. data/lib/google/cloud/bigtable/row.rb +14 -14
  32. data/lib/google/cloud/bigtable/row_filter.rb +31 -15
  33. data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +49 -26
  34. data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +4 -1
  35. data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +44 -24
  36. data/lib/google/cloud/bigtable/row_filter/simple_filter.rb +3 -3
  37. data/lib/google/cloud/bigtable/rows_reader.rb +2 -2
  38. data/lib/google/cloud/bigtable/sample_row_key.rb +1 -1
  39. data/lib/google/cloud/bigtable/table.rb +18 -18
  40. data/lib/google/cloud/bigtable/table/cluster_state.rb +10 -5
  41. data/lib/google/cloud/bigtable/table/list.rb +2 -2
  42. data/lib/google/cloud/bigtable/v2.rb +1 -1
  43. data/lib/google/cloud/bigtable/v2/bigtable_client.rb +21 -12
  44. data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/bigtable.rb +34 -13
  45. data/lib/google/cloud/bigtable/value_range.rb +14 -13
  46. data/lib/google/cloud/bigtable/version.rb +1 -1
  47. metadata +2 -2
@@ -29,7 +29,7 @@ module Google
29
29
  # # Instance
30
30
  #
31
31
  # Represents a Bigtable instance. Instances are dedicated Bigtable
32
- # storage resources that Bigtable tables.
32
+ # storage resources that contain Bigtable tables.
33
33
  #
34
34
  # See {Google::Cloud::Bigtable::Project#instances},
35
35
  # {Google::Cloud::Bigtable::Project#instance}, and
@@ -46,7 +46,7 @@ module Google
46
46
  # type: :DEVELOPMENT,
47
47
  # labels: { "env" => "dev"}
48
48
  # ) do |clusters|
49
- # clusters.add("test-cluster", "us-east1-b", nodes: 1)
49
+ # clusters.add("test-cluster", "us-east1-b") # nodes not allowed
50
50
  # end
51
51
  #
52
52
  # job.done? #=> false
@@ -75,7 +75,7 @@ module Google
75
75
  end
76
76
 
77
77
  ##
78
- # The unique identifier for the project.
78
+ # The unique identifier for the project to which the instance belongs.
79
79
  #
80
80
  # @return [String]
81
81
  #
@@ -93,7 +93,7 @@ module Google
93
93
  end
94
94
 
95
95
  ##
96
- # The descriptive name for this instance as it appears in UIs. Must be
96
+ # The descriptive name for the instance as it appears in UIs. Must be
97
97
  # unique per project and between 4 and 30 characters long.
98
98
  #
99
99
  # @return [String]
@@ -103,11 +103,11 @@ module Google
103
103
  end
104
104
 
105
105
  ##
106
- # Updates the descriptive name for this instance as it appears in UIs.
106
+ # Updates the descriptive name for the instance as it appears in UIs.
107
107
  # Can be changed at any time, but should be kept globally unique
108
108
  # to avoid confusion.
109
109
  #
110
- # @param value [String] The descriptive name for this instance.
110
+ # @param value [String] The descriptive name for the instance.
111
111
  #
112
112
  def display_name= value
113
113
  @grpc.display_name = value
@@ -154,8 +154,7 @@ module Google
154
154
  end
155
155
 
156
156
  ##
157
- # Instance type. Possible values are `:DEVELOPMENT`, `:PRODUCTION`,
158
- # `:TYPE_UNSPECIFIED`
157
+ # Instance type. Possible values include `:DEVELOPMENT` and `:PRODUCTION`.
159
158
  #
160
159
  # @return [Symbol]
161
160
  #
@@ -167,10 +166,10 @@ module Google
167
166
  # The instance is meant for development and testing purposes only; it has
168
167
  # no performance or uptime guarantees and is not covered by SLA.
169
168
  # After a development instance is created, it can be upgraded by
170
- # updating the instance to type `PRODUCTION`. An instance created
169
+ # updating the instance to type `:PRODUCTION`. An instance created
171
170
  # as a production instance cannot be changed to a development instance.
172
- # When creating a development instance, `serve_nodes` on the cluster must
173
- # not be set.
171
+ # When creating a development instance, `nodes` on the cluster must
172
+ # not be set. (See {#create_cluster}.)
174
173
  #
175
174
  # @return [Boolean]
176
175
  #
@@ -179,8 +178,8 @@ module Google
179
178
  end
180
179
 
181
180
  ##
182
- # An instance meant for production use. `serve_nodes` must be set
183
- # on the cluster.
181
+ # An instance meant for production use. Requires that `nodes` must be set
182
+ # on the cluster. (See {#create_cluster}.)
184
183
  #
185
184
  # @return [Boolean]
186
185
  #
@@ -189,22 +188,34 @@ module Google
189
188
  end
190
189
 
191
190
  ##
192
- # Set instance type.
191
+ # Sets the instance type.
193
192
  #
194
- # Valid values are `:DEVELOPMENT`, `:PRODUCTION`.
193
+ # Valid values are `:DEVELOPMENT` and `:PRODUCTION`.
195
194
  # After a development instance is created, it can be upgraded
196
- # by updating the instance to type `PRODUCTION`.
195
+ # by updating the instance to type `:PRODUCTION`.
197
196
  # An instance created as a production instance cannot be changed to a
198
197
  # development instance.
199
198
  #
200
199
  # @param instance_type [Symbol]
201
200
  #
201
+ # @example
202
+ # require "google/cloud/bigtable"
203
+ #
204
+ # bigtable = Google::Cloud::Bigtable.new
205
+ #
206
+ # instance = bigtable.instance("my-instance")
207
+ #
208
+ # instance.development? # true
209
+ # instance.type = :PRODUCTION
210
+ # instance.development? # false
211
+ # instance.production? # true
212
+ #
202
213
  def type= instance_type
203
214
  @grpc.type = instance_type
204
215
  end
205
216
 
206
217
  ##
207
- # Get instance labels.
218
+ # Gets the Cloud Labels for the instance.
208
219
  #
209
220
  # Cloud Labels are a flexible and lightweight mechanism for organizing
210
221
  # cloud resources into groups that reflect a customer's organizational
@@ -226,7 +237,7 @@ module Google
226
237
  end
227
238
 
228
239
  ##
229
- # Set the Cloud Labels.
240
+ # Sets the Cloud Labels for the instance.
230
241
  #
231
242
  # @param labels [Hash{String=>String}] The Cloud Labels.
232
243
  #
@@ -239,10 +250,10 @@ module Google
239
250
  end
240
251
 
241
252
  ##
242
- # Update instance.
253
+ # Updates the instance.
243
254
  #
244
- # Updatable attributes are :
245
- # * `display_name` - The descriptive name for this instance.
255
+ # Updatable attributes are:
256
+ # * `display_name` - The descriptive name for the instance.
246
257
  # * `type` - `:DEVELOPMENT` type instance can be upgraded to `:PRODUCTION` instance.
247
258
  # An instance created as a production instance cannot be changed to a development instance.
248
259
  # * `labels` - Cloud Labels are a flexible and lightweight mechanism for organizing cloud resources.
@@ -250,6 +261,7 @@ module Google
250
261
  # @return [Google::Cloud::Bigtable::Instance::Job]
251
262
  # The job representing the long-running, asynchronous processing of
252
263
  # an instance update operation.
264
+ #
253
265
  # @example
254
266
  # require "google/cloud/bigtable"
255
267
  #
@@ -283,7 +295,7 @@ module Google
283
295
  alias update save
284
296
 
285
297
  ##
286
- # Reload instance information.
298
+ # Reloads instance data.
287
299
  #
288
300
  # @return [Google::Cloud::Bigtable::Instance]
289
301
  #
@@ -293,7 +305,7 @@ module Google
293
305
  end
294
306
 
295
307
  ##
296
- # Permanently deletes the instance from a project.
308
+ # Permanently deletes the instance from the project.
297
309
  #
298
310
  # @return [Boolean] Returns `true` if the instance was deleted.
299
311
  #
@@ -312,16 +324,16 @@ module Google
312
324
  end
313
325
 
314
326
  ##
315
- # Lists information about clusters in an instance.
327
+ # Lists the clusters in the instance.
316
328
  #
317
- # See to delete {Google::Cloud::Bigtable::Cluster#delete} and update
318
- # cluster {Google::Cloud::Bigtable::Cluster#save}.
329
+ # See {Google::Cloud::Bigtable::Cluster#delete} and
330
+ # {Google::Cloud::Bigtable::Cluster#save}.
319
331
  #
320
332
  # @param token [String] The `token` value returned by the last call to
321
333
  # `clusters`; indicates that this is a continuation of a call
322
334
  # and that the system should return the next page of data.
323
335
  # @return [Array<Google::Cloud::Bigtable::Cluster>]
324
- # See({Google::Cloud::Bigtable::Cluster::List})
336
+ # See({Google::Cloud::Bigtable::Cluster::List})
325
337
  #
326
338
  # @example
327
339
  # require "google/cloud/bigtable"
@@ -341,10 +353,10 @@ module Google
341
353
  end
342
354
 
343
355
  ##
344
- # Gets cluster information.
356
+ # Gets a cluster in the instance.
345
357
  #
346
- # See to delete {Google::Cloud::Bigtable::Cluster#delete} and update
347
- # cluster {Google::Cloud::Bigtable::Cluster#save}.
358
+ # See {Google::Cloud::Bigtable::Cluster#delete} and
359
+ # {Google::Cloud::Bigtable::Cluster#save}.
348
360
  #
349
361
  # @param cluster_id [String] The unique ID of the requested cluster.
350
362
  # @return [Google::Cloud::Bigtable::Cluster, nil]
@@ -368,11 +380,10 @@ module Google
368
380
  end
369
381
 
370
382
  ##
371
- # Creates a cluster within an instance.
383
+ # Creates a cluster in the instance.
372
384
  #
373
385
  # @param cluster_id [String]
374
- # The ID to be used when referring to the new cluster within its instance,
375
- # e.g., just `mycluster`
386
+ # The ID to be used when referring to the new cluster within its instance.
376
387
  # @param location [String]
377
388
  # The location where this cluster's nodes and storage reside. For best
378
389
  # performance, clients should be located as close as possible to this
@@ -426,10 +437,10 @@ module Google
426
437
  end
427
438
 
428
439
  ##
429
- # List all tables.
440
+ # Lists all tables in the instance.
430
441
  #
431
- # See to delete table {Google::Cloud::Bigtable::Table#delete} and update
432
- # table {Google::Cloud::Bigtable::Table#save}.
442
+ # See {Google::Cloud::Bigtable::Table#delete} and
443
+ # {Google::Cloud::Bigtable::Table#save}.
433
444
  #
434
445
  # @return [Array<Google::Cloud::Bigtable::Table>]
435
446
  # (See {Google::Cloud::Bigtable::Table::List})
@@ -453,10 +464,10 @@ module Google
453
464
  end
454
465
 
455
466
  ##
456
- # Get metadata information of table.
467
+ # Gets metadata information of a table in the instance.
457
468
  #
458
469
  # @param view [Symbol]
459
- # The view to be applied to the returned tables' fields
470
+ # The view to be applied to the returned tables' fields.
460
471
  # Defaults to `SCHEMA_VIEW` if unspecified.
461
472
  # Valid view types are.
462
473
  # * `:NAME_ONLY` - Only populates `name`
@@ -481,7 +492,6 @@ module Google
481
492
  #
482
493
  # instance = bigtable.instance("my-instance")
483
494
  #
484
- # # Default view is full view
485
495
  # table = instance.table("my-table", perform_lookup: true)
486
496
  # puts table.name
487
497
  # puts table.column_families
@@ -490,7 +500,7 @@ module Google
490
500
  # table = instance.table("my-table", view: :NAME_ONLY, perform_lookup: true)
491
501
  # puts table.name
492
502
  #
493
- # @example Mutate rows
503
+ # @example Mutate rows.
494
504
  # require "google/cloud/bigtable"
495
505
  #
496
506
  # bigtable = Google::Cloud::Bigtable.new
@@ -524,14 +534,14 @@ module Google
524
534
  end
525
535
 
526
536
  ##
527
- # Creates a new table.
537
+ # Creates a new table in the instance.
528
538
  #
529
539
  # The table can be created with a full set of initial column families,
530
540
  # specified in the request.
531
541
  #
532
542
  # @param name [String]
533
543
  # The name by which the new table should be referred to within the parent
534
- # instance, e.g., `foobar`
544
+ # instance.
535
545
  # @param column_families [Google::Cloud::Bigtable::ColumnFamilyMap]
536
546
  # An object containing the column families for the table, mapped by
537
547
  # column family name.
@@ -610,11 +620,11 @@ module Google
610
620
  end
611
621
 
612
622
  ##
613
- # Create app profile for an instance with a routing policy.
614
- # Only one routing policy can applied to app profile. The policy can be
623
+ # Creates an app profile for the instance with a routing policy.
624
+ # Only one routing policy can applied to the app profile. The policy can be
615
625
  # multi-cluster routing or single cluster routing.
616
626
  #
617
- # @param name [String] Unique Id of the app profile
627
+ # @param name [String] Unique ID of the app profile.
618
628
  # @param routing_policy [Google::Cloud::Bigtable::RoutingPolicy]
619
629
  # The routing policy for all read/write requests that use this app
620
630
  # profile. A value must be explicitly set.
@@ -630,7 +640,7 @@ module Google
630
640
  # preserves read-your-writes consistency but does not improve
631
641
  # availability. Value contains `cluster_id` and optional field
632
642
  # `allow_transactional_writes`.
633
- # @param description [String] Description of the use case for this app profile
643
+ # @param description [String] Description of the use case for this app profile.
634
644
  # @param etag [String]
635
645
  # Strongly validated etag for optimistic concurrency control. Preserve the
636
646
  # value returned from `GetAppProfile` when calling `UpdateAppProfile` to
@@ -641,10 +651,10 @@ module Google
641
651
  # [RFC 7232](https://tools.ietf.org/html/rfc7232#section-2.3) for more details.
642
652
  # @param ignore_warnings [Boolean]
643
653
  # If true, ignore safety checks when creating the app profile.
644
- # Default value is `false`
654
+ # Default value is `false`.
645
655
  # @return [Google::Cloud::Bigtable::AppProfile]
646
656
  #
647
- # @example Create an app profile with a single cluster routing policy
657
+ # @example Create an app profile with a single cluster routing policy.
648
658
  # require "google/cloud/bigtable"
649
659
  #
650
660
  # bigtable = Google::Cloud::Bigtable.new
@@ -663,7 +673,7 @@ module Google
663
673
  # )
664
674
  # puts app_profile.name
665
675
  #
666
- # @example Create an app profile with multi-cluster routing policy
676
+ # @example Create an app profile with multi-cluster routing policy.
667
677
  # require "google/cloud/bigtable"
668
678
  #
669
679
  # bigtable = Google::Cloud::Bigtable.new
@@ -722,10 +732,10 @@ module Google
722
732
  end
723
733
 
724
734
  ##
725
- # Get app profile.
735
+ # Gets an app profile in the instance.
726
736
  #
727
- # See to delete app_profile {Google::Cloud::Bigtable::AppProfile#delete} and update
728
- # app_profile {Google::Cloud::Bigtable::AppProfile#save}.
737
+ # See {Google::Cloud::Bigtable::AppProfile#delete} and
738
+ # {Google::Cloud::Bigtable::AppProfile#save}.
729
739
  #
730
740
  # @param app_profile_id [String] The unique name of the requested app profile.
731
741
  # @return [Google::Cloud::Bigtable::AppProfile, nil]
@@ -752,13 +762,13 @@ module Google
752
762
  end
753
763
 
754
764
  ##
755
- # List all app profiles
765
+ # Lists all app profiles in the instance.
756
766
  #
757
- # See to delete app_profile {Google::Cloud::Bigtable::AppProfile#delete} and update
758
- # app_profile {Google::Cloud::Bigtable::AppProfile#save}.
767
+ # See {Google::Cloud::Bigtable::AppProfile#delete} and
768
+ # {Google::Cloud::Bigtable::AppProfile#save}.
759
769
  #
760
770
  # @return [Array<Google::Cloud::Bigtable::AppProfile>]
761
- # (See {Google::Cloud::Bigtable::AppProfile::List})
771
+ # (See {Google::Cloud::Bigtable::AppProfile::List})
762
772
  #
763
773
  # @example
764
774
  # require "google/cloud/bigtable"
@@ -779,7 +789,7 @@ module Google
779
789
 
780
790
  ##
781
791
  # Gets the [Cloud IAM](https://cloud.google.com/iam/) access control
782
- # policy for this instance.
792
+ # policy for the instance.
783
793
  #
784
794
  # @see https://cloud.google.com/bigtable/docs/access-control
785
795
  #
@@ -788,9 +798,9 @@ module Google
788
798
  # the block completes, the modified policy will be written to the
789
799
  # service.
790
800
  # @yieldparam [Policy] policy the current Cloud IAM Policy for this
791
- # instance
801
+ # instance.
792
802
  #
793
- # @return [Policy] The current Cloud IAM Policy for this instance.
803
+ # @return [Policy] The current Cloud IAM Policy for the instance.
794
804
  #
795
805
  # @example
796
806
  # require "google/cloud/bigtable"
@@ -800,7 +810,7 @@ module Google
800
810
  # instance = bigtable.instance("my-instance")
801
811
  # policy = instance.policy
802
812
  #
803
- # @example Update the policy by passing a block:
813
+ # @example Update the policy by passing a block.
804
814
  # require "google/cloud/bigtable"
805
815
  #
806
816
  # bigtable = Google::Cloud::Bigtable.new
@@ -821,7 +831,7 @@ module Google
821
831
 
822
832
  ##
823
833
  # Updates the [Cloud IAM](https://cloud.google.com/iam/) access control
824
- # policy for this instance. The policy should be read from {#policy}.
834
+ # policy for the instance. The policy should be read from {#policy}.
825
835
  # See {Google::Cloud::Bigtable::Policy} for an explanation of the policy
826
836
  # `etag` property and how to modify policies.
827
837
  #
@@ -857,13 +867,13 @@ module Google
857
867
  # Tests the specified permissions against the [Cloud
858
868
  # IAM](https://cloud.google.com/iam/) access control policy.
859
869
  #
860
- # @see https://cloud.google.com/iam/docs/managing-policies Managing
861
- # Policies
870
+ # @see https://cloud.google.com/iam/docs/managing-policies Managing Policies
871
+ # @see https://cloud.google.com/bigtable/docs/access-control Access Control
862
872
  #
863
873
  # @param permissions [String, Array<String>] permissions The set of permissions to
864
874
  # check access for. Permissions with wildcards (such as `*` or
865
875
  # `bigtable.*`) are not allowed.
866
- # See (https://cloud.google.com/bigtable/docs/access-control)
876
+ # See [Access Control](https://cloud.google.com/bigtable/docs/access-control).
867
877
  #
868
878
  # Some of the permissions that can be checked on a instance are:
869
879
  # * bigtable.instances.create
@@ -20,9 +20,10 @@ module Google
20
20
  module Bigtable
21
21
  class Instance
22
22
  ##
23
- # Instance::ClusterMap is a hash with cluster name and gRPC object.
24
- # It is used to create an instance.
25
- # @example Create
23
+ # Instance::ClusterMap is a hash with cluster ID keys and cluster configuration values.
24
+ # It is used to create a cluster.
25
+ #
26
+ # @example
26
27
  #
27
28
  # clusters = Google::Cloud::Bigtable::Instance::ClusterMap.new
28
29
  #
@@ -41,14 +42,15 @@ module Google
41
42
  end
42
43
 
43
44
  ##
44
- # Adds a cluster to a map
45
+ # Adds a cluster to the cluster map.
45
46
  #
46
- # @param name [String] Cluster name
47
+ # @param name [String] The unique identifier for the cluster.
47
48
  # @param location [String]
48
49
  # The location where this cluster's nodes and storage reside. For best
49
50
  # performance, clients should be located as close as possible to this
50
51
  # cluster. Currently only zones are supported.
51
- # @param nodes [Integer] Number of nodes
52
+ # @param nodes [Integer] Number of nodes for the cluster. When creating
53
+ # an instance of type `:DEVELOPMENT`, `nodes` must not be set.
52
54
  # @param storage_type [Symbol]
53
55
  # Valid values are:
54
56
  # * `:SSD`(Flash (SSD) storage should be used),
@@ -40,7 +40,7 @@ module Google
40
40
  # type: :DEVELOPMENT,
41
41
  # labels: { "env" => "dev"}
42
42
  # ) do |clusters|
43
- # clusters.add("test-cluster", "us-east1-b", nodes: 1)
43
+ # clusters.add("test-cluster", "us-east1-b") # nodes not allowed
44
44
  # end
45
45
  #
46
46
  # # Check and reload.
@@ -76,7 +76,7 @@ module Google
76
76
  # type: :DEVELOPMENT,
77
77
  # labels: { "env" => "dev"}
78
78
  # ) do |clusters|
79
- # clusters.add("test-cluster", "us-east1-b", nodes: 1)
79
+ # clusters.add("test-cluster", "us-east1-b") # nodes not allowed
80
80
  # end
81
81
  #
82
82
  # job.done? #=> false