google-cloud-bigtable 0.8.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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