google-cloud-bigtable 2.4.1 → 2.6.2

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +2 -1
  3. data/CHANGELOG.md +32 -0
  4. data/CONTRIBUTING.md +2 -3
  5. data/OVERVIEW.md +1 -1
  6. data/lib/google/cloud/bigtable/app_profile.rb +20 -21
  7. data/lib/google/cloud/bigtable/app_profile/job.rb +4 -4
  8. data/lib/google/cloud/bigtable/app_profile/list.rb +5 -7
  9. data/lib/google/cloud/bigtable/backup.rb +83 -32
  10. data/lib/google/cloud/bigtable/backup/job.rb +8 -8
  11. data/lib/google/cloud/bigtable/backup/list.rb +9 -11
  12. data/lib/google/cloud/bigtable/cluster.rb +37 -17
  13. data/lib/google/cloud/bigtable/cluster/job.rb +2 -2
  14. data/lib/google/cloud/bigtable/column_family.rb +2 -2
  15. data/lib/google/cloud/bigtable/column_family_map.rb +14 -14
  16. data/lib/google/cloud/bigtable/column_range.rb +7 -7
  17. data/lib/google/cloud/bigtable/encryption_info.rb +118 -0
  18. data/lib/google/cloud/bigtable/gc_rule.rb +20 -20
  19. data/lib/google/cloud/bigtable/instance.rb +40 -40
  20. data/lib/google/cloud/bigtable/instance/cluster_map.rb +61 -21
  21. data/lib/google/cloud/bigtable/instance/job.rb +4 -4
  22. data/lib/google/cloud/bigtable/mutation_entry.rb +21 -21
  23. data/lib/google/cloud/bigtable/mutation_operations.rb +34 -34
  24. data/lib/google/cloud/bigtable/policy.rb +4 -4
  25. data/lib/google/cloud/bigtable/project.rb +15 -15
  26. data/lib/google/cloud/bigtable/read_operations.rb +31 -31
  27. data/lib/google/cloud/bigtable/routing_policy.rb +6 -6
  28. data/lib/google/cloud/bigtable/row_filter.rb +28 -28
  29. data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +30 -29
  30. data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +6 -6
  31. data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +27 -26
  32. data/lib/google/cloud/bigtable/row_range.rb +18 -18
  33. data/lib/google/cloud/bigtable/sample_row_key.rb +1 -1
  34. data/lib/google/cloud/bigtable/service.rb +6 -3
  35. data/lib/google/cloud/bigtable/status.rb +2 -2
  36. data/lib/google/cloud/bigtable/table.rb +66 -43
  37. data/lib/google/cloud/bigtable/table/cluster_state.rb +43 -9
  38. data/lib/google/cloud/bigtable/table/list.rb +2 -2
  39. data/lib/google/cloud/bigtable/table/restore_job.rb +12 -12
  40. data/lib/google/cloud/bigtable/value_range.rb +18 -18
  41. data/lib/google/cloud/bigtable/version.rb +1 -1
  42. metadata +4 -3
@@ -34,12 +34,12 @@ module Google
34
34
  # require "google/cloud/bigtable"
35
35
  #
36
36
  # bigtable = Google::Cloud::Bigtable.new
37
- # instance = bigtable.instance("my-instance")
38
- # cluster = instance.cluster("my-cluster")
39
- # table = instance.table("my-table")
37
+ # instance = bigtable.instance "my-instance"
38
+ # cluster = instance.cluster "my-cluster"
39
+ # table = instance.table "my-table"
40
40
  #
41
41
  # expire_time = Time.now + 60 * 60 * 7
42
- # job = cluster.create_backup(table, "my-backup", expire_time)
42
+ # job = cluster.create_backup table, "my-backup", expire_time
43
43
  #
44
44
  # job.wait_until_done!
45
45
  # job.done? #=> true
@@ -61,12 +61,12 @@ module Google
61
61
  # require "google/cloud/bigtable"
62
62
  #
63
63
  # bigtable = Google::Cloud::Bigtable.new
64
- # instance = bigtable.instance("my-instance")
65
- # cluster = instance.cluster("my-cluster")
66
- # table = instance.table("my-table")
64
+ # instance = bigtable.instance "my-instance"
65
+ # cluster = instance.cluster "my-cluster"
66
+ # table = instance.table "my-table"
67
67
  #
68
68
  # expire_time = Time.now + 60 * 60 * 7
69
- # job = cluster.create_backup(table, "my-backup", expire_time)
69
+ # job = cluster.create_backup table, "my-backup", expire_time
70
70
  #
71
71
  # job.wait_until_done!
72
72
  # job.done? #=> true
@@ -46,8 +46,8 @@ module Google
46
46
  #
47
47
  # bigtable = Google::Cloud::Bigtable.new
48
48
  #
49
- # instance = bigtable.instance("my-instance")
50
- # cluster = instance.cluster("my-cluster")
49
+ # instance = bigtable.instance "my-instance"
50
+ # cluster = instance.cluster "my-cluster"
51
51
  #
52
52
  # backups = cluster.backups
53
53
  #
@@ -69,8 +69,8 @@ module Google
69
69
  #
70
70
  # bigtable = Google::Cloud::Bigtable.new
71
71
  #
72
- # instance = bigtable.instance("my-instance")
73
- # cluster = instance.cluster("my-cluster")
72
+ # instance = bigtable.instance "my-instance"
73
+ # cluster = instance.cluster "my-cluster"
74
74
  #
75
75
  # backups = cluster.backups
76
76
  #
@@ -105,8 +105,8 @@ module Google
105
105
  #
106
106
  # bigtable = Google::Cloud::Bigtable.new
107
107
  #
108
- # instance = bigtable.instance("my-instance")
109
- # cluster = instance.cluster("my-cluster")
108
+ # instance = bigtable.instance "my-instance"
109
+ # cluster = instance.cluster "my-cluster"
110
110
  #
111
111
  # cluster.backups.all do |backup|
112
112
  # puts backup.backup_id
@@ -117,12 +117,10 @@ module Google
117
117
  #
118
118
  # bigtable = Google::Cloud::Bigtable.new
119
119
  #
120
- # instance = bigtable.instance("my-instance")
121
- # cluster = instance.cluster("my-cluster")
120
+ # instance = bigtable.instance "my-instance"
121
+ # cluster = instance.cluster "my-cluster"
122
122
  #
123
- # all_backup_ids = cluster.backups.all.map do |backup|
124
- # backup.backup_id
125
- # end
123
+ # all_backup_ids = cluster.backups.all.map(&:backup_id)
126
124
  #
127
125
  def all &block
128
126
  return enum_for :all unless block_given?
@@ -33,8 +33,8 @@ module Google
33
33
  #
34
34
  # bigtable = Google::Cloud::Bigtable.new
35
35
  #
36
- # instance = bigtable.instance("my-instance")
37
- # cluster = instance.cluster("my-cluster")
36
+ # instance = bigtable.instance "my-instance"
37
+ # cluster = instance.cluster "my-cluster"
38
38
  #
39
39
  # # Update
40
40
  # cluster.nodes = 3
@@ -168,8 +168,10 @@ module Google
168
168
  ##
169
169
  # The type of storage used by this cluster to serve its
170
170
  # parent instance's tables, unless explicitly overridden.
171
- # Valid values are `:SSD`(Flash (SSD) storage should be used),
172
- # `:HDD`(Magnetic drive (HDD) storage should be used)
171
+ # Valid values are:
172
+ #
173
+ # * `:SSD` - Flash (SSD) storage should be used.
174
+ # * `:HDD` - Magnetic drive (HDD) storage should be used.
173
175
  #
174
176
  # @return [Symbol]
175
177
  #
@@ -197,6 +199,24 @@ module Google
197
199
  @grpc.location
198
200
  end
199
201
 
202
+ ##
203
+ # The full name of the Cloud KMS encryption key for the cluster, if it is CMEK-protected, in the format
204
+ # `projects/{key_project_id}/locations/{location}/keyRings/{ring_name}/cryptoKeys/{key_name}`.
205
+ #
206
+ # The requirements for this key are:
207
+ #
208
+ # 1. The Cloud Bigtable service account associated with the project that contains this cluster must be granted
209
+ # the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key.
210
+ # 2. Only regional keys can be used and the region of the CMEK key must match the region of the cluster.
211
+ # 3. All clusters within an instance must use the same CMEK key.
212
+ #
213
+ # @return [String, nil] The full name of the Cloud KMS encryption key, or `nil` if the cluster is not
214
+ # CMEK-protected.
215
+ #
216
+ def kms_key
217
+ @grpc.encryption_config&.kms_key_name
218
+ end
219
+
200
220
  ##
201
221
  # Creates a new Cloud Bigtable Backup.
202
222
  #
@@ -219,12 +239,12 @@ module Google
219
239
  # require "google/cloud/bigtable"
220
240
  #
221
241
  # bigtable = Google::Cloud::Bigtable.new
222
- # instance = bigtable.instance("my-instance")
223
- # cluster = instance.cluster("my-cluster")
224
- # table = instance.table("my-table")
242
+ # instance = bigtable.instance "my-instance"
243
+ # cluster = instance.cluster "my-cluster"
244
+ # table = instance.table "my-table"
225
245
  #
226
246
  # expire_time = Time.now + 60 * 60 * 7
227
- # job = cluster.create_backup(table, "my-backup", expire_time)
247
+ # job = cluster.create_backup table, "my-backup", expire_time
228
248
  #
229
249
  # job.wait_until_done!
230
250
  # job.done? #=> true
@@ -257,10 +277,10 @@ module Google
257
277
  #
258
278
  # bigtable = Google::Cloud::Bigtable.new
259
279
  #
260
- # instance = bigtable.instance("my-instance")
261
- # cluster = instance.cluster("my-cluster")
280
+ # instance = bigtable.instance "my-instance"
281
+ # cluster = instance.cluster "my-cluster"
262
282
  #
263
- # backup = cluster.backup("my-backup")
283
+ # backup = cluster.backup "my-backup"
264
284
  #
265
285
  # if backup
266
286
  # puts backup.backup_id
@@ -283,8 +303,8 @@ module Google
283
303
  #
284
304
  # bigtable = Google::Cloud::Bigtable.new
285
305
  #
286
- # instance = bigtable.instance("my-instance")
287
- # cluster = instance.cluster("my-cluster")
306
+ # instance = bigtable.instance "my-instance"
307
+ # cluster = instance.cluster "my-cluster"
288
308
  #
289
309
  # cluster.backups.all do |backup|
290
310
  # puts backup.backup_id
@@ -309,8 +329,8 @@ module Google
309
329
  #
310
330
  # bigtable = Google::Cloud::Bigtable.new
311
331
  #
312
- # instance = bigtable.instance("my-instance")
313
- # cluster = instance.cluster("my-cluster")
332
+ # instance = bigtable.instance "my-instance"
333
+ # cluster = instance.cluster "my-cluster"
314
334
  # cluster.nodes = 3
315
335
  # job = cluster.save
316
336
  #
@@ -353,8 +373,8 @@ module Google
353
373
  #
354
374
  # bigtable = Google::Cloud::Bigtable.new
355
375
  #
356
- # instance = bigtable.instance("my-instance")
357
- # cluster = instance.cluster("my-cluster")
376
+ # instance = bigtable.instance "my-instance"
377
+ # cluster = instance.cluster "my-cluster"
358
378
  # cluster.delete
359
379
  #
360
380
  def delete
@@ -34,7 +34,7 @@ module Google
34
34
  #
35
35
  # bigtable = Google::Cloud::Bigtable.new
36
36
  #
37
- # instance = bigtable.instance("my-instance")
37
+ # instance = bigtable.instance "my-instance"
38
38
  # job = instance.create_cluster(
39
39
  # "my-new-cluster",
40
40
  # "us-east-1b",
@@ -67,7 +67,7 @@ module Google
67
67
  #
68
68
  # bigtable = Google::Cloud::Bigtable.new
69
69
  #
70
- # instance = bigtable.instance("my-instance")
70
+ # instance = bigtable.instance "my-instance"
71
71
  # job = instance.create_cluster(
72
72
  # "my-new-cluster",
73
73
  # "us-east-1b",
@@ -30,8 +30,8 @@ module Google
30
30
  #
31
31
  # bigtable = Google::Cloud::Bigtable.new
32
32
  #
33
- # instance = bigtable.instance("my-instance")
34
- # table = instance.table("my-table")
33
+ # instance = bigtable.instance "my-instance"
34
+ # table = instance.table "my-table"
35
35
  #
36
36
  # column_family = table.column_families["cf2"]
37
37
  # puts column_family.gc_rule
@@ -41,15 +41,15 @@ module Google
41
41
  #
42
42
  # bigtable = Google::Cloud::Bigtable.new
43
43
  #
44
- # table = bigtable.create_table("my-instance", "my-table") do |cfm|
45
- # cfm.add('cf1', gc_rule: Google::Cloud::Bigtable::GcRule.max_versions(5))
46
- # cfm.add('cf2', gc_rule: Google::Cloud::Bigtable::GcRule.max_age(600))
44
+ # table = bigtable.create_table "my-instance", "my-table" do |cfm|
45
+ # cfm.add "cf1", gc_rule: Google::Cloud::Bigtable::GcRule.max_versions(5)
46
+ # cfm.add "cf2", gc_rule: Google::Cloud::Bigtable::GcRule.max_age(600)
47
47
  #
48
48
  # gc_rule = Google::Cloud::Bigtable::GcRule.union(
49
49
  # Google::Cloud::Bigtable::GcRule.max_age(1800),
50
50
  # Google::Cloud::Bigtable::GcRule.max_versions(3)
51
51
  # )
52
- # cfm.add('cf3', gc_rule: gc_rule)
52
+ # cfm.add "cf3", gc_rule: gc_rule
53
53
  # end
54
54
  #
55
55
  # puts table.column_families
@@ -59,15 +59,15 @@ module Google
59
59
  #
60
60
  # bigtable = Google::Cloud::Bigtable.new
61
61
  #
62
- # table = bigtable.table("my-instance", "my-table", perform_lookup: true)
62
+ # table = bigtable.table "my-instance", "my-table", perform_lookup: true
63
63
  #
64
64
  # table.column_families do |cfm|
65
65
  # cfm.add "cf4", gc_rule: Google::Cloud::Bigtable::GcRule.max_age(600)
66
66
  # cfm.add "cf5", gc_rule: Google::Cloud::Bigtable::GcRule.max_versions(5)
67
67
  #
68
- # rule_1 = Google::Cloud::Bigtable::GcRule.max_versions(3)
69
- # rule_2 = Google::Cloud::Bigtable::GcRule.max_age(600)
70
- # rule_union = Google::Cloud::Bigtable::GcRule.union(rule_1, rule_2)
68
+ # rule_1 = Google::Cloud::Bigtable::GcRule.max_versions 3
69
+ # rule_2 = Google::Cloud::Bigtable::GcRule.max_age 600
70
+ # rule_union = Google::Cloud::Bigtable::GcRule.union rule_1, rule_2
71
71
  # cfm.update "cf2", gc_rule: rule_union
72
72
  #
73
73
  # cfm.delete "cf3"
@@ -196,7 +196,7 @@ module Google
196
196
  #
197
197
  # bigtable = Google::Cloud::Bigtable.new
198
198
  #
199
- # table = bigtable.table("my-instance", "my-table", perform_lookup: true)
199
+ # table = bigtable.table "my-instance", "my-table", perform_lookup: true
200
200
  #
201
201
  # table.column_families do |column_families|
202
202
  # column_families.add "cf4", gc_rule: Google::Cloud::Bigtable::GcRule.max_age(600)
@@ -237,12 +237,12 @@ module Google
237
237
  #
238
238
  # bigtable = Google::Cloud::Bigtable.new
239
239
  #
240
- # table = bigtable.table("my-instance", "my-table", perform_lookup: true)
240
+ # table = bigtable.table "my-instance", "my-table", perform_lookup: true
241
241
  #
242
242
  # table.column_families do |column_families|
243
- # rule_1 = Google::Cloud::Bigtable::GcRule.max_versions(3)
244
- # rule_2 = Google::Cloud::Bigtable::GcRule.max_age(600)
245
- # rule_union = Google::Cloud::Bigtable::GcRule.union(rule_1, rule_2)
243
+ # rule_1 = Google::Cloud::Bigtable::GcRule.max_versions 3
244
+ # rule_2 = Google::Cloud::Bigtable::GcRule.max_age 600
245
+ # rule_union = Google::Cloud::Bigtable::GcRule.union rule_1, rule_2
246
246
  #
247
247
  # column_families.update "cf2", gc_rule: rule_union
248
248
  # end
@@ -270,7 +270,7 @@ module Google
270
270
  #
271
271
  # bigtable = Google::Cloud::Bigtable.new
272
272
  #
273
- # table = bigtable.table("my-instance", "my-table", perform_lookup: true)
273
+ # table = bigtable.table "my-instance", "my-table", perform_lookup: true
274
274
  #
275
275
  # table.column_families do |column_families|
276
276
  # column_families.delete "cf3"
@@ -32,7 +32,7 @@ module Google
32
32
  # require "google/cloud/bigtable"
33
33
  #
34
34
  # bigtable = Google::Cloud::Bigtable.new
35
- # table = bigtable.table("my-instance", "my-table")
35
+ # table = bigtable.table "my-instance", "my-table"
36
36
  #
37
37
  # # Range that includes all qualifiers including "user-001" up until "user-010"
38
38
  # table.new_column_range("cf").from("user-001").to("user-010")
@@ -89,7 +89,7 @@ module Google
89
89
  # require "google/cloud/bigtable"
90
90
  #
91
91
  # bigtable = Google::Cloud::Bigtable.new
92
- # table = bigtable.table("my-instance", "my-table")
92
+ # table = bigtable.table "my-instance", "my-table"
93
93
  #
94
94
  # table.new_column_range("cf").from("qualifier-1")
95
95
  #
@@ -97,7 +97,7 @@ module Google
97
97
  # require "google/cloud/bigtable"
98
98
  #
99
99
  # bigtable = Google::Cloud::Bigtable.new
100
- # table = bigtable.table("my-instance", "my-table")
100
+ # table = bigtable.table "my-instance", "my-table"
101
101
  #
102
102
  # table.new_column_range("cf").from("qualifier-1", inclusive: false)
103
103
  #
@@ -122,7 +122,7 @@ module Google
122
122
  # require "google/cloud/bigtable"
123
123
  #
124
124
  # bigtable = Google::Cloud::Bigtable.new
125
- # table = bigtable.table("my-instance", "my-table")
125
+ # table = bigtable.table "my-instance", "my-table"
126
126
  #
127
127
  # table.new_column_range("cf").to("qualifier-10", inclusive: true)
128
128
  #
@@ -130,7 +130,7 @@ module Google
130
130
  # require "google/cloud/bigtable"
131
131
  #
132
132
  # bigtable = Google::Cloud::Bigtable.new
133
- # table = bigtable.table("my-instance", "my-table")
133
+ # table = bigtable.table "my-instance", "my-table"
134
134
  #
135
135
  # table.new_column_range("cf").to("qualifier-10")
136
136
  #
@@ -154,7 +154,7 @@ module Google
154
154
  # require "google/cloud/bigtable"
155
155
  #
156
156
  # bigtable = Google::Cloud::Bigtable.new
157
- # table = bigtable.table("my-instance", "my-table")
157
+ # table = bigtable.table "my-instance", "my-table"
158
158
  #
159
159
  # table.new_column_range("cf").between("qualifier-1", "qualifier-10")
160
160
  #
@@ -173,7 +173,7 @@ module Google
173
173
  # require "google/cloud/bigtable"
174
174
  #
175
175
  # bigtable = Google::Cloud::Bigtable.new
176
- # table = bigtable.table("my-instance", "my-table")
176
+ # table = bigtable.table "my-instance", "my-table"
177
177
  #
178
178
  # table.new_column_range("cf").of("qualifier-1", "qualifier-10")
179
179
  #
@@ -0,0 +1,118 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2021 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+
18
+ require "google/cloud/bigtable/status"
19
+
20
+ module Google
21
+ module Cloud
22
+ module Bigtable
23
+ ##
24
+ # # EncryptionInfo
25
+ #
26
+ # Encryption information for a given resource.
27
+ #
28
+ # See {Backup#encryption_info} and {Table::ClusterState#encryption_infos}.
29
+ #
30
+ # @example
31
+ # require "google/cloud/bigtable"
32
+ #
33
+ # bigtable = Google::Cloud::Bigtable.new
34
+ # instance = bigtable.instance "my-instance"
35
+ # cluster = instance.cluster "my-cluster"
36
+ #
37
+ # backup = cluster.backup "my-backup"
38
+ #
39
+ # encryption_info = backup.encryption_info
40
+ # encryption_info.encryption_type #=> :GOOGLE_DEFAULT_ENCRYPTION
41
+ #
42
+ # @example Retrieve a table with cluster states containing encryption info.
43
+ # require "google/cloud/bigtable"
44
+ #
45
+ # bigtable = Google::Cloud::Bigtable.new
46
+ #
47
+ # table = bigtable.table "my-instance", "my-table", view: :ENCRYPTION_VIEW, perform_lookup: true
48
+ #
49
+ # table.cluster_states.each do |cs|
50
+ # puts cs.cluster_name
51
+ # puts cs.encryption_infos.first.encryption_type
52
+ # end
53
+ #
54
+ class EncryptionInfo
55
+ # @private
56
+ #
57
+ # Creates a new EncryptionInfo instance.
58
+ def initialize grpc
59
+ @grpc = grpc
60
+ end
61
+
62
+ ##
63
+ # The type of encryption used to protect the resource. Possible values:
64
+ #
65
+ # * `ENCRYPTION_TYPE_UNSPECIFIED` - Encryption type was not specified, though data at rest remains encrypted.
66
+ # * `GOOGLE_DEFAULT_ENCRYPTION` - The data backing the resource is encrypted at rest with a key that is
67
+ # fully managed by Google. No key version or status will be populated. This is the default state.
68
+ # * `CUSTOMER_MANAGED_ENCRYPTION` - The data backing the resource is encrypted at rest with a key that is
69
+ # managed by the customer. The in-use version of the key and its status are populated for CMEK-protected
70
+ # tables. CMEK-protected backups are pinned to the key version that was in use at the time the backup was
71
+ # taken. This key version is populated but its status is not tracked and is reported as `UNKNOWN`.
72
+ #
73
+ # See also {#encryption_status}, {#kms_key_version} and {Instance::ClusterMap#add}.
74
+ #
75
+ # @return [Symbol] The encryption type code as an uppercase symbol.
76
+ #
77
+ def encryption_type
78
+ @grpc.encryption_type
79
+ end
80
+
81
+ ##
82
+ # The status of encrypt/decrypt calls on underlying data for the resource. Regardless of status, the existing
83
+ # data is always encrypted at rest.
84
+ #
85
+ # See also {#encryption_type}, {#kms_key_version} and {Instance::ClusterMap#add}.
86
+ #
87
+ # @return [Google::Cloud::Bigtable::Status, nil] The encryption status object, or `nil` if not present.
88
+ #
89
+ def encryption_status
90
+ status_grpc = @grpc.encryption_status
91
+ Status.from_grpc status_grpc if status_grpc
92
+ end
93
+
94
+ ##
95
+ # The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying the
96
+ # table.
97
+ #
98
+ # See also {#encryption_type}, {#encryption_status} and {Instance::ClusterMap#add}.
99
+ #
100
+ # @return [String, nil] The Cloud KMS key version, or `nil` if not present.
101
+ #
102
+ def kms_key_version
103
+ @grpc.kms_key_version unless @grpc.kms_key_version.empty?
104
+ end
105
+
106
+ # @private
107
+ #
108
+ # Creates a new EncryptionInfo instance from a Google::Cloud::Bigtable::Admin::V2::EncryptionInfo.
109
+ #
110
+ # @param grpc [Google::Cloud::Bigtable::Admin::V2::EncryptionInfo]
111
+ # @return [Google::Cloud::Bigtable::EncryptionInfo]
112
+ def self.from_grpc grpc
113
+ new grpc
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end