google-cloud-bigtable 1.3.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 (103) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +19 -0
  3. data/AUTHENTICATION.md +177 -0
  4. data/CHANGELOG.md +223 -0
  5. data/CODE_OF_CONDUCT.md +40 -0
  6. data/CONTRIBUTING.md +188 -0
  7. data/EMULATOR.md +30 -0
  8. data/LICENSE +201 -0
  9. data/LOGGING.md +32 -0
  10. data/OVERVIEW.md +400 -0
  11. data/TROUBLESHOOTING.md +31 -0
  12. data/lib/google-cloud-bigtable.rb +171 -0
  13. data/lib/google/bigtable/admin/v2/bigtable_instance_admin_pb.rb +145 -0
  14. data/lib/google/bigtable/admin/v2/bigtable_instance_admin_services_pb.rb +90 -0
  15. data/lib/google/bigtable/admin/v2/bigtable_table_admin_pb.rb +208 -0
  16. data/lib/google/bigtable/admin/v2/bigtable_table_admin_services_pb.rb +154 -0
  17. data/lib/google/bigtable/admin/v2/common_pb.rb +30 -0
  18. data/lib/google/bigtable/admin/v2/instance_pb.rb +74 -0
  19. data/lib/google/bigtable/admin/v2/table_pb.rb +127 -0
  20. data/lib/google/bigtable/v2/bigtable_pb.rb +113 -0
  21. data/lib/google/bigtable/v2/bigtable_services_pb.rb +68 -0
  22. data/lib/google/bigtable/v2/data_pb.rb +156 -0
  23. data/lib/google/cloud/bigtable.rb +184 -0
  24. data/lib/google/cloud/bigtable/admin.rb +202 -0
  25. data/lib/google/cloud/bigtable/admin/credentials.rb +27 -0
  26. data/lib/google/cloud/bigtable/admin/v2.rb +223 -0
  27. data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client.rb +1451 -0
  28. data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client_config.json +139 -0
  29. data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client.rb +1734 -0
  30. data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client_config.json +163 -0
  31. data/lib/google/cloud/bigtable/admin/v2/credentials.rb +51 -0
  32. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_instance_admin.rb +297 -0
  33. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_table_admin.rb +587 -0
  34. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/instance.rb +193 -0
  35. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/table.rb +303 -0
  36. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/iam_policy.rb +64 -0
  37. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/options.rb +33 -0
  38. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/policy.rb +151 -0
  39. data/lib/google/cloud/bigtable/admin/v2/doc/google/longrunning/operations.rb +51 -0
  40. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/any.rb +131 -0
  41. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/duration.rb +91 -0
  42. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/empty.rb +29 -0
  43. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/field_mask.rb +222 -0
  44. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/timestamp.rb +113 -0
  45. data/lib/google/cloud/bigtable/admin/v2/doc/google/rpc/status.rb +39 -0
  46. data/lib/google/cloud/bigtable/admin/v2/doc/google/type/expr.rb +45 -0
  47. data/lib/google/cloud/bigtable/app_profile.rb +439 -0
  48. data/lib/google/cloud/bigtable/app_profile/job.rb +99 -0
  49. data/lib/google/cloud/bigtable/app_profile/list.rb +165 -0
  50. data/lib/google/cloud/bigtable/backup.rb +324 -0
  51. data/lib/google/cloud/bigtable/backup/job.rb +87 -0
  52. data/lib/google/cloud/bigtable/backup/list.rb +167 -0
  53. data/lib/google/cloud/bigtable/chunk_processor.rb +241 -0
  54. data/lib/google/cloud/bigtable/cluster.rb +390 -0
  55. data/lib/google/cloud/bigtable/cluster/job.rb +88 -0
  56. data/lib/google/cloud/bigtable/cluster/list.rb +171 -0
  57. data/lib/google/cloud/bigtable/column_family.rb +73 -0
  58. data/lib/google/cloud/bigtable/column_family_map.rb +426 -0
  59. data/lib/google/cloud/bigtable/column_range.rb +194 -0
  60. data/lib/google/cloud/bigtable/convert.rb +83 -0
  61. data/lib/google/cloud/bigtable/credentials.rb +25 -0
  62. data/lib/google/cloud/bigtable/errors.rb +38 -0
  63. data/lib/google/cloud/bigtable/gc_rule.rb +334 -0
  64. data/lib/google/cloud/bigtable/instance.rb +935 -0
  65. data/lib/google/cloud/bigtable/instance/cluster_map.rb +74 -0
  66. data/lib/google/cloud/bigtable/instance/job.rb +98 -0
  67. data/lib/google/cloud/bigtable/instance/list.rb +164 -0
  68. data/lib/google/cloud/bigtable/longrunning_job.rb +122 -0
  69. data/lib/google/cloud/bigtable/mutation_entry.rb +256 -0
  70. data/lib/google/cloud/bigtable/mutation_operations.rb +357 -0
  71. data/lib/google/cloud/bigtable/policy.rb +167 -0
  72. data/lib/google/cloud/bigtable/project.rb +471 -0
  73. data/lib/google/cloud/bigtable/read_modify_write_rule.rb +134 -0
  74. data/lib/google/cloud/bigtable/read_operations.rb +328 -0
  75. data/lib/google/cloud/bigtable/routing_policy.rb +172 -0
  76. data/lib/google/cloud/bigtable/row.rb +136 -0
  77. data/lib/google/cloud/bigtable/row_filter.rb +639 -0
  78. data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +590 -0
  79. data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +114 -0
  80. data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +621 -0
  81. data/lib/google/cloud/bigtable/row_filter/simple_filter.rb +287 -0
  82. data/lib/google/cloud/bigtable/row_range.rb +179 -0
  83. data/lib/google/cloud/bigtable/rows_mutator.rb +113 -0
  84. data/lib/google/cloud/bigtable/rows_reader.rb +200 -0
  85. data/lib/google/cloud/bigtable/sample_row_key.rb +85 -0
  86. data/lib/google/cloud/bigtable/service.rb +913 -0
  87. data/lib/google/cloud/bigtable/status.rb +76 -0
  88. data/lib/google/cloud/bigtable/table.rb +686 -0
  89. data/lib/google/cloud/bigtable/table/cluster_state.rb +125 -0
  90. data/lib/google/cloud/bigtable/table/list.rb +154 -0
  91. data/lib/google/cloud/bigtable/table/restore_job.rb +117 -0
  92. data/lib/google/cloud/bigtable/v2.rb +146 -0
  93. data/lib/google/cloud/bigtable/v2/bigtable_client.rb +591 -0
  94. data/lib/google/cloud/bigtable/v2/bigtable_client_config.json +83 -0
  95. data/lib/google/cloud/bigtable/v2/credentials.rb +46 -0
  96. data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/bigtable.rb +290 -0
  97. data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/data.rb +493 -0
  98. data/lib/google/cloud/bigtable/v2/doc/google/protobuf/any.rb +131 -0
  99. data/lib/google/cloud/bigtable/v2/doc/google/protobuf/wrappers.rb +34 -0
  100. data/lib/google/cloud/bigtable/v2/doc/google/rpc/status.rb +39 -0
  101. data/lib/google/cloud/bigtable/value_range.rb +181 -0
  102. data/lib/google/cloud/bigtable/version.rb +22 -0
  103. metadata +337 -0
@@ -0,0 +1,193 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ module Google
17
+ module Bigtable
18
+ module Admin
19
+ module V2
20
+ # A collection of Bigtable {Google::Bigtable::Admin::V2::Table Tables} and
21
+ # the resources that serve them.
22
+ # All tables in an instance are served from all
23
+ # {Google::Bigtable::Admin::V2::Cluster Clusters} in the instance.
24
+ # @!attribute [rw] name
25
+ # @return [String]
26
+ # The unique name of the instance. Values are of the form
27
+ # `projects/{project}/instances/[a-z][a-z0-9\\-]+[a-z0-9]`.
28
+ # @!attribute [rw] display_name
29
+ # @return [String]
30
+ # Required. The descriptive name for this instance as it appears in UIs.
31
+ # Can be changed at any time, but should be kept globally unique
32
+ # to avoid confusion.
33
+ # @!attribute [rw] state
34
+ # @return [Google::Bigtable::Admin::V2::Instance::State]
35
+ # (`OutputOnly`)
36
+ # The current state of the instance.
37
+ # @!attribute [rw] type
38
+ # @return [Google::Bigtable::Admin::V2::Instance::Type]
39
+ # The type of the instance. Defaults to `PRODUCTION`.
40
+ # @!attribute [rw] labels
41
+ # @return [Hash{String => String}]
42
+ # Labels are a flexible and lightweight mechanism for organizing cloud
43
+ # resources into groups that reflect a customer's organizational needs and
44
+ # deployment strategies. They can be used to filter resources and aggregate
45
+ # metrics.
46
+ #
47
+ # * Label keys must be between 1 and 63 characters long and must conform to
48
+ # the regular expression: `[\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}`.
49
+ # * Label values must be between 0 and 63 characters long and must conform to
50
+ # the regular expression: `[\p{Ll}\p{Lo}\p{N}_-]{0,63}`.
51
+ # * No more than 64 labels can be associated with a given resource.
52
+ # * Keys and values must both be under 128 bytes.
53
+ class Instance
54
+ # Possible states of an instance.
55
+ module State
56
+ # The state of the instance could not be determined.
57
+ STATE_NOT_KNOWN = 0
58
+
59
+ # The instance has been successfully created and can serve requests
60
+ # to its tables.
61
+ READY = 1
62
+
63
+ # The instance is currently being created, and may be destroyed
64
+ # if the creation process encounters an error.
65
+ CREATING = 2
66
+ end
67
+
68
+ # The type of the instance.
69
+ module Type
70
+ # The type of the instance is unspecified. If set when creating an
71
+ # instance, a `PRODUCTION` instance will be created. If set when updating
72
+ # an instance, the type will be left unchanged.
73
+ TYPE_UNSPECIFIED = 0
74
+
75
+ # An instance meant for production use. `serve_nodes` must be set
76
+ # on the cluster.
77
+ PRODUCTION = 1
78
+
79
+ # The instance is meant for development and testing purposes only; it has
80
+ # no performance or uptime guarantees and is not covered by SLA.
81
+ # After a development instance is created, it can be upgraded by
82
+ # updating the instance to type `PRODUCTION`. An instance created
83
+ # as a production instance cannot be changed to a development instance.
84
+ # When creating a development instance, `serve_nodes` on the cluster must
85
+ # not be set.
86
+ DEVELOPMENT = 2
87
+ end
88
+ end
89
+
90
+ # A resizable group of nodes in a particular cloud location, capable
91
+ # of serving all {Google::Bigtable::Admin::V2::Table Tables} in the parent
92
+ # {Google::Bigtable::Admin::V2::Instance Instance}.
93
+ # @!attribute [rw] name
94
+ # @return [String]
95
+ # The unique name of the cluster. Values are of the form
96
+ # `projects/{project}/instances/{instance}/clusters/[a-z][-a-z0-9]*`.
97
+ # @!attribute [rw] location
98
+ # @return [String]
99
+ # (`CreationOnly`)
100
+ # The location where this cluster's nodes and storage reside. For best
101
+ # performance, clients should be located as close as possible to this
102
+ # cluster. Currently only zones are supported, so values should be of the
103
+ # form `projects/{project}/locations/{zone}`.
104
+ # @!attribute [rw] state
105
+ # @return [Google::Bigtable::Admin::V2::Cluster::State]
106
+ # The current state of the cluster.
107
+ # @!attribute [rw] serve_nodes
108
+ # @return [Integer]
109
+ # Required. The number of nodes allocated to this cluster. More nodes enable
110
+ # higher throughput and more consistent performance.
111
+ # @!attribute [rw] default_storage_type
112
+ # @return [Google::Bigtable::Admin::V2::StorageType]
113
+ # (`CreationOnly`)
114
+ # The type of storage used by this cluster to serve its
115
+ # parent instance's tables, unless explicitly overridden.
116
+ class Cluster
117
+ # Possible states of a cluster.
118
+ module State
119
+ # The state of the cluster could not be determined.
120
+ STATE_NOT_KNOWN = 0
121
+
122
+ # The cluster has been successfully created and is ready to serve requests.
123
+ READY = 1
124
+
125
+ # The cluster is currently being created, and may be destroyed
126
+ # if the creation process encounters an error.
127
+ # A cluster may not be able to serve requests while being created.
128
+ CREATING = 2
129
+
130
+ # The cluster is currently being resized, and may revert to its previous
131
+ # node count if the process encounters an error.
132
+ # A cluster is still capable of serving requests while being resized,
133
+ # but may exhibit performance as if its number of allocated nodes is
134
+ # between the starting and requested states.
135
+ RESIZING = 3
136
+
137
+ # The cluster has no backing nodes. The data (tables) still
138
+ # exist, but no operations can be performed on the cluster.
139
+ DISABLED = 4
140
+ end
141
+ end
142
+
143
+ # A configuration object describing how Cloud Bigtable should treat traffic
144
+ # from a particular end user application.
145
+ # @!attribute [rw] name
146
+ # @return [String]
147
+ # (`OutputOnly`)
148
+ # The unique name of the app profile. Values are of the form
149
+ # `projects/<project>/instances/<instance>/appProfiles/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
150
+ # @!attribute [rw] etag
151
+ # @return [String]
152
+ # Strongly validated etag for optimistic concurrency control. Preserve the
153
+ # value returned from `GetAppProfile` when calling `UpdateAppProfile` to
154
+ # fail the request if there has been a modification in the mean time. The
155
+ # `update_mask` of the request need not include `etag` for this protection
156
+ # to apply.
157
+ # See [Wikipedia](https://en.wikipedia.org/wiki/HTTP_ETag) and
158
+ # [RFC 7232](https://tools.ietf.org/html/rfc7232#section-2.3) for more
159
+ # details.
160
+ # @!attribute [rw] description
161
+ # @return [String]
162
+ # Optional long form description of the use case for this AppProfile.
163
+ # @!attribute [rw] multi_cluster_routing_use_any
164
+ # @return [Google::Bigtable::Admin::V2::AppProfile::MultiClusterRoutingUseAny]
165
+ # Use a multi-cluster routing policy.
166
+ # @!attribute [rw] single_cluster_routing
167
+ # @return [Google::Bigtable::Admin::V2::AppProfile::SingleClusterRouting]
168
+ # Use a single-cluster routing policy.
169
+ class AppProfile
170
+ # Read/write requests are routed to the nearest cluster in the instance, and
171
+ # will fail over to the nearest cluster that is available in the event of
172
+ # transient errors or delays. Clusters in a region are considered
173
+ # equidistant. Choosing this option sacrifices read-your-writes consistency
174
+ # to improve availability.
175
+ class MultiClusterRoutingUseAny; end
176
+
177
+ # Unconditionally routes all read/write requests to a specific cluster.
178
+ # This option preserves read-your-writes consistency but does not improve
179
+ # availability.
180
+ # @!attribute [rw] cluster_id
181
+ # @return [String]
182
+ # The cluster to which read/write requests should be routed.
183
+ # @!attribute [rw] allow_transactional_writes
184
+ # @return [true, false]
185
+ # Whether or not `CheckAndMutateRow` and `ReadModifyWriteRow` requests are
186
+ # allowed by this app profile. It is unsafe to send these requests to
187
+ # the same table/row/column in multiple clusters.
188
+ class SingleClusterRouting; end
189
+ end
190
+ end
191
+ end
192
+ end
193
+ end
@@ -0,0 +1,303 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ module Google
17
+ module Bigtable
18
+ module Admin
19
+ module V2
20
+ # Information about a table restore.
21
+ # @!attribute [rw] source_type
22
+ # @return [Google::Bigtable::Admin::V2::RestoreSourceType]
23
+ # The type of the restore source.
24
+ # @!attribute [rw] backup_info
25
+ # @return [Google::Bigtable::Admin::V2::BackupInfo]
26
+ # Information about the backup used to restore the table. The backup
27
+ # may no longer exist.
28
+ class RestoreInfo; end
29
+
30
+ # A collection of user data indexed by row, column, and timestamp.
31
+ # Each table is served using the resources of its parent cluster.
32
+ # @!attribute [rw] name
33
+ # @return [String]
34
+ # Output only. The unique name of the table. Values are of the form
35
+ # `projects/<project>/instances/<instance>/tables/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
36
+ # Views: `NAME_ONLY`, `SCHEMA_VIEW`, `REPLICATION_VIEW`, `FULL`
37
+ # @!attribute [rw] cluster_states
38
+ # @return [Hash{String => Google::Bigtable::Admin::V2::Table::ClusterState}]
39
+ # Output only. Map from cluster ID to per-cluster table state.
40
+ # If it could not be determined whether or not the table has data in a
41
+ # particular cluster (for example, if its zone is unavailable), then
42
+ # there will be an entry for the cluster with UNKNOWN `replication_status`.
43
+ # Views: `REPLICATION_VIEW`, `FULL`
44
+ # @!attribute [rw] column_families
45
+ # @return [Hash{String => Google::Bigtable::Admin::V2::ColumnFamily}]
46
+ # (`CreationOnly`)
47
+ # The column families configured for this table, mapped by column family ID.
48
+ # Views: `SCHEMA_VIEW`, `FULL`
49
+ # @!attribute [rw] granularity
50
+ # @return [Google::Bigtable::Admin::V2::Table::TimestampGranularity]
51
+ # (`CreationOnly`)
52
+ # The granularity (i.e. `MILLIS`) at which timestamps are stored in
53
+ # this table. Timestamps not matching the granularity will be rejected.
54
+ # If unspecified at creation time, the value will be set to `MILLIS`.
55
+ # Views: `SCHEMA_VIEW`, `FULL`.
56
+ # @!attribute [rw] restore_info
57
+ # @return [Google::Bigtable::Admin::V2::RestoreInfo]
58
+ # Output only. If this table was restored from another data source (e.g. a
59
+ # backup), this field will be populated with information about the restore.
60
+ class Table
61
+ # The state of a table's data in a particular cluster.
62
+ # @!attribute [rw] replication_state
63
+ # @return [Google::Bigtable::Admin::V2::Table::ClusterState::ReplicationState]
64
+ # Output only. The state of replication for the table in this cluster.
65
+ class ClusterState
66
+ # Table replication states.
67
+ module ReplicationState
68
+ # The replication state of the table is unknown in this cluster.
69
+ STATE_NOT_KNOWN = 0
70
+
71
+ # The cluster was recently created, and the table must finish copying
72
+ # over pre-existing data from other clusters before it can begin
73
+ # receiving live replication updates and serving Data API requests.
74
+ INITIALIZING = 1
75
+
76
+ # The table is temporarily unable to serve Data API requests from this
77
+ # cluster due to planned internal maintenance.
78
+ PLANNED_MAINTENANCE = 2
79
+
80
+ # The table is temporarily unable to serve Data API requests from this
81
+ # cluster due to unplanned or emergency maintenance.
82
+ UNPLANNED_MAINTENANCE = 3
83
+
84
+ # The table can serve Data API requests from this cluster. Depending on
85
+ # replication delay, reads may not immediately reflect the state of the
86
+ # table in other clusters.
87
+ READY = 4
88
+
89
+ # The table is fully created and ready for use after a restore, and is
90
+ # being optimized for performance. When optimizations are complete, the
91
+ # table will transition to `READY` state.
92
+ READY_OPTIMIZING = 5
93
+ end
94
+ end
95
+
96
+ # Possible timestamp granularities to use when keeping multiple versions
97
+ # of data in a table.
98
+ module TimestampGranularity
99
+ # The user did not specify a granularity. Should not be returned.
100
+ # When specified during table creation, MILLIS will be used.
101
+ TIMESTAMP_GRANULARITY_UNSPECIFIED = 0
102
+
103
+ # The table keeps data versioned at a granularity of 1ms.
104
+ MILLIS = 1
105
+ end
106
+
107
+ # Defines a view over a table's fields.
108
+ module View
109
+ # Uses the default view for each method as documented in its request.
110
+ VIEW_UNSPECIFIED = 0
111
+
112
+ # Only populates `name`.
113
+ NAME_ONLY = 1
114
+
115
+ # Only populates `name` and fields related to the table's schema.
116
+ SCHEMA_VIEW = 2
117
+
118
+ # Only populates `name` and fields related to the table's replication
119
+ # state.
120
+ REPLICATION_VIEW = 3
121
+
122
+ # Populates all fields.
123
+ FULL = 4
124
+ end
125
+ end
126
+
127
+ # A set of columns within a table which share a common configuration.
128
+ # @!attribute [rw] gc_rule
129
+ # @return [Google::Bigtable::Admin::V2::GcRule]
130
+ # Garbage collection rule specified as a protobuf.
131
+ # Must serialize to at most 500 bytes.
132
+ #
133
+ # NOTE: Garbage collection executes opportunistically in the background, and
134
+ # so it's possible for reads to return a cell even if it matches the active
135
+ # GC expression for its family.
136
+ class ColumnFamily; end
137
+
138
+ # Rule for determining which cells to delete during garbage collection.
139
+ # @!attribute [rw] max_num_versions
140
+ # @return [Integer]
141
+ # Delete all cells in a column except the most recent N.
142
+ # @!attribute [rw] max_age
143
+ # @return [Google::Protobuf::Duration]
144
+ # Delete cells in a column older than the given age.
145
+ # Values must be at least one millisecond, and will be truncated to
146
+ # microsecond granularity.
147
+ # @!attribute [rw] intersection
148
+ # @return [Google::Bigtable::Admin::V2::GcRule::Intersection]
149
+ # Delete cells that would be deleted by every nested rule.
150
+ # @!attribute [rw] union
151
+ # @return [Google::Bigtable::Admin::V2::GcRule::Union]
152
+ # Delete cells that would be deleted by any nested rule.
153
+ class GcRule
154
+ # A GcRule which deletes cells matching all of the given rules.
155
+ # @!attribute [rw] rules
156
+ # @return [Array<Google::Bigtable::Admin::V2::GcRule>]
157
+ # Only delete cells which would be deleted by every element of `rules`.
158
+ class Intersection; end
159
+
160
+ # A GcRule which deletes cells matching any of the given rules.
161
+ # @!attribute [rw] rules
162
+ # @return [Array<Google::Bigtable::Admin::V2::GcRule>]
163
+ # Delete cells which would be deleted by any element of `rules`.
164
+ class Union; end
165
+ end
166
+
167
+ # A snapshot of a table at a particular time. A snapshot can be used as a
168
+ # checkpoint for data restoration or a data source for a new table.
169
+ #
170
+ # Note: This is a private alpha release of Cloud Bigtable snapshots. This
171
+ # feature is not currently available to most Cloud Bigtable customers. This
172
+ # feature might be changed in backward-incompatible ways and is not recommended
173
+ # for production use. It is not subject to any SLA or deprecation policy.
174
+ # @!attribute [rw] name
175
+ # @return [String]
176
+ # Output only. The unique name of the snapshot.
177
+ # Values are of the form
178
+ # `projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/<snapshot>`.
179
+ # @!attribute [rw] source_table
180
+ # @return [Google::Bigtable::Admin::V2::Table]
181
+ # Output only. The source table at the time the snapshot was taken.
182
+ # @!attribute [rw] data_size_bytes
183
+ # @return [Integer]
184
+ # Output only. The size of the data in the source table at the time the
185
+ # snapshot was taken. In some cases, this value may be computed
186
+ # asynchronously via a background process and a placeholder of 0 will be used
187
+ # in the meantime.
188
+ # @!attribute [rw] create_time
189
+ # @return [Google::Protobuf::Timestamp]
190
+ # Output only. The time when the snapshot is created.
191
+ # @!attribute [rw] delete_time
192
+ # @return [Google::Protobuf::Timestamp]
193
+ # Output only. The time when the snapshot will be deleted. The maximum amount
194
+ # of time a snapshot can stay active is 365 days. If 'ttl' is not specified,
195
+ # the default maximum of 365 days will be used.
196
+ # @!attribute [rw] state
197
+ # @return [Google::Bigtable::Admin::V2::Snapshot::State]
198
+ # Output only. The current state of the snapshot.
199
+ # @!attribute [rw] description
200
+ # @return [String]
201
+ # Output only. Description of the snapshot.
202
+ class Snapshot
203
+ # Possible states of a snapshot.
204
+ module State
205
+ # The state of the snapshot could not be determined.
206
+ STATE_NOT_KNOWN = 0
207
+
208
+ # The snapshot has been successfully created and can serve all requests.
209
+ READY = 1
210
+
211
+ # The snapshot is currently being created, and may be destroyed if the
212
+ # creation process encounters an error. A snapshot may not be restored to a
213
+ # table while it is being created.
214
+ CREATING = 2
215
+ end
216
+ end
217
+
218
+ # A backup of a Cloud Bigtable table.
219
+ # @!attribute [rw] name
220
+ # @return [String]
221
+ # Output only. A globally unique identifier for the backup which cannot be
222
+ # changed. Values are of the form
223
+ # `projects/{project}/instances/{instance}/clusters/{cluster}/
224
+ # backups/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`
225
+ # The final segment of the name must be between 1 and 50 characters
226
+ # in length.
227
+ #
228
+ # The backup is stored in the cluster identified by the prefix of the backup
229
+ # name of the form
230
+ # `projects/{project}/instances/{instance}/clusters/{cluster}`.
231
+ # @!attribute [rw] source_table
232
+ # @return [String]
233
+ # Required. Immutable. Name of the table from which this backup was created.
234
+ # This needs to be in the same instance as the backup. Values are of the form
235
+ # `projects/{project}/instances/{instance}/tables/{source_table}`.
236
+ # @!attribute [rw] expire_time
237
+ # @return [Google::Protobuf::Timestamp]
238
+ # Required. The expiration time of the backup, with microseconds
239
+ # granularity that must be at least 6 hours and at most 30 days
240
+ # from the time the request is received. Once the `expire_time`
241
+ # has passed, Cloud Bigtable will delete the backup and free the
242
+ # resources used by the backup.
243
+ # @!attribute [rw] start_time
244
+ # @return [Google::Protobuf::Timestamp]
245
+ # Output only. `start_time` is the time that the backup was started
246
+ # (i.e. approximately the time the
247
+ # {Google::Bigtable::Admin::V2::BigtableTableAdmin::CreateBackup CreateBackup}
248
+ # request is received). The row data in this backup will be no older than
249
+ # this timestamp.
250
+ # @!attribute [rw] end_time
251
+ # @return [Google::Protobuf::Timestamp]
252
+ # Output only. `end_time` is the time that the backup was finished. The row
253
+ # data in the backup will be no newer than this timestamp.
254
+ # @!attribute [rw] size_bytes
255
+ # @return [Integer]
256
+ # Output only. Size of the backup in bytes.
257
+ # @!attribute [rw] state
258
+ # @return [Google::Bigtable::Admin::V2::Backup::State]
259
+ # Output only. The current state of the backup.
260
+ class Backup
261
+ # Indicates the current state of the backup.
262
+ module State
263
+ # Not specified.
264
+ STATE_UNSPECIFIED = 0
265
+
266
+ # The pending backup is still being created. Operations on the
267
+ # backup may fail with `FAILED_PRECONDITION` in this state.
268
+ CREATING = 1
269
+
270
+ # The backup is complete and ready for use.
271
+ READY = 2
272
+ end
273
+ end
274
+
275
+ # Information about a backup.
276
+ # @!attribute [rw] backup
277
+ # @return [String]
278
+ # Output only. Name of the backup.
279
+ # @!attribute [rw] start_time
280
+ # @return [Google::Protobuf::Timestamp]
281
+ # Output only. The time that the backup was started. Row data in the backup
282
+ # will be no older than this timestamp.
283
+ # @!attribute [rw] end_time
284
+ # @return [Google::Protobuf::Timestamp]
285
+ # Output only. This time that the backup was finished. Row data in the
286
+ # backup will be no newer than this timestamp.
287
+ # @!attribute [rw] source_table
288
+ # @return [String]
289
+ # Output only. Name of the table the backup was created from.
290
+ class BackupInfo; end
291
+
292
+ # Indicates the type of the restore source.
293
+ module RestoreSourceType
294
+ # No restore associated.
295
+ RESTORE_SOURCE_TYPE_UNSPECIFIED = 0
296
+
297
+ # A backup was used as the source of the restore.
298
+ BACKUP = 1
299
+ end
300
+ end
301
+ end
302
+ end
303
+ end