google-cloud-bigtable 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +10 -0
  3. data/LICENSE +201 -0
  4. data/README.md +65 -0
  5. data/lib/google/bigtable/admin/v2/bigtable_instance_admin_pb.rb +139 -0
  6. data/lib/google/bigtable/admin/v2/bigtable_instance_admin_services_pb.rb +85 -0
  7. data/lib/google/bigtable/admin/v2/bigtable_table_admin_pb.rb +137 -0
  8. data/lib/google/bigtable/admin/v2/bigtable_table_admin_services_pb.rb +117 -0
  9. data/lib/google/bigtable/admin/v2/common_pb.rb +24 -0
  10. data/lib/google/bigtable/admin/v2/instance_pb.rb +72 -0
  11. data/lib/google/bigtable/admin/v2/table_pb.rb +88 -0
  12. data/lib/google/bigtable/v2/bigtable_pb.rb +109 -0
  13. data/lib/google/bigtable/v2/bigtable_services_pb.rb +67 -0
  14. data/lib/google/bigtable/v2/data_pb.rb +155 -0
  15. data/lib/google/cloud/bigtable/admin/credentials.rb +26 -0
  16. data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client.rb +1417 -0
  17. data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client_config.json +123 -0
  18. data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client.rb +1079 -0
  19. data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client_config.json +109 -0
  20. data/lib/google/cloud/bigtable/admin/v2/credentials.rb +50 -0
  21. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_instance_admin.rb +279 -0
  22. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_table_admin.rb +353 -0
  23. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/instance.rb +194 -0
  24. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/table.rb +209 -0
  25. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/iam_policy.rb +62 -0
  26. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/policy.rb +127 -0
  27. data/lib/google/cloud/bigtable/admin/v2/doc/google/longrunning/operations.rb +92 -0
  28. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/any.rb +124 -0
  29. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/duration.rb +90 -0
  30. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/empty.rb +28 -0
  31. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/field_mask.rb +223 -0
  32. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/timestamp.rb +106 -0
  33. data/lib/google/cloud/bigtable/admin/v2/doc/google/rpc/status.rb +83 -0
  34. data/lib/google/cloud/bigtable/admin/v2.rb +200 -0
  35. data/lib/google/cloud/bigtable/admin.rb +196 -0
  36. data/lib/google/cloud/bigtable/app_profile/job.rb +102 -0
  37. data/lib/google/cloud/bigtable/app_profile/list.rb +159 -0
  38. data/lib/google/cloud/bigtable/app_profile.rb +373 -0
  39. data/lib/google/cloud/bigtable/chunk_processor.rb +253 -0
  40. data/lib/google/cloud/bigtable/cluster/job.rb +92 -0
  41. data/lib/google/cloud/bigtable/cluster/list.rb +169 -0
  42. data/lib/google/cloud/bigtable/cluster.rb +264 -0
  43. data/lib/google/cloud/bigtable/column_family.rb +280 -0
  44. data/lib/google/cloud/bigtable/column_range.rb +186 -0
  45. data/lib/google/cloud/bigtable/convert.rb +75 -0
  46. data/lib/google/cloud/bigtable/credentials.rb +24 -0
  47. data/lib/google/cloud/bigtable/errors.rb +35 -0
  48. data/lib/google/cloud/bigtable/gc_rule.rb +215 -0
  49. data/lib/google/cloud/bigtable/instance/cluster_map.rb +70 -0
  50. data/lib/google/cloud/bigtable/instance/job.rb +97 -0
  51. data/lib/google/cloud/bigtable/instance/list.rb +159 -0
  52. data/lib/google/cloud/bigtable/instance.rb +921 -0
  53. data/lib/google/cloud/bigtable/longrunning_job.rb +105 -0
  54. data/lib/google/cloud/bigtable/mutation_entry.rb +244 -0
  55. data/lib/google/cloud/bigtable/mutation_operations.rb +338 -0
  56. data/lib/google/cloud/bigtable/policy.rb +163 -0
  57. data/lib/google/cloud/bigtable/project.rb +580 -0
  58. data/lib/google/cloud/bigtable/read_modify_write_rule.rb +129 -0
  59. data/lib/google/cloud/bigtable/read_operations.rb +345 -0
  60. data/lib/google/cloud/bigtable/row.rb +125 -0
  61. data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +539 -0
  62. data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +108 -0
  63. data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +570 -0
  64. data/lib/google/cloud/bigtable/row_filter/simple_filter.rb +273 -0
  65. data/lib/google/cloud/bigtable/row_filter.rb +593 -0
  66. data/lib/google/cloud/bigtable/row_range.rb +174 -0
  67. data/lib/google/cloud/bigtable/rows_mutator.rb +120 -0
  68. data/lib/google/cloud/bigtable/rows_reader.rb +196 -0
  69. data/lib/google/cloud/bigtable/sample_row_key.rb +82 -0
  70. data/lib/google/cloud/bigtable/service.rb +817 -0
  71. data/lib/google/cloud/bigtable/table/cluster_state.rb +93 -0
  72. data/lib/google/cloud/bigtable/table/column_family_map.rb +68 -0
  73. data/lib/google/cloud/bigtable/table/list.rb +147 -0
  74. data/lib/google/cloud/bigtable/table.rb +676 -0
  75. data/lib/google/cloud/bigtable/v2/bigtable_client.rb +579 -0
  76. data/lib/google/cloud/bigtable/v2/bigtable_client_config.json +65 -0
  77. data/lib/google/cloud/bigtable/v2/credentials.rb +45 -0
  78. data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/bigtable.rb +286 -0
  79. data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/data.rb +492 -0
  80. data/lib/google/cloud/bigtable/v2/doc/google/protobuf/any.rb +124 -0
  81. data/lib/google/cloud/bigtable/v2/doc/google/protobuf/wrappers.rb +89 -0
  82. data/lib/google/cloud/bigtable/v2/doc/google/rpc/status.rb +83 -0
  83. data/lib/google/cloud/bigtable/v2.rb +132 -0
  84. data/lib/google/cloud/bigtable/value_range.rb +175 -0
  85. data/lib/google/cloud/bigtable/version.rb +22 -0
  86. data/lib/google/cloud/bigtable.rb +223 -0
  87. data/lib/google-cloud-bigtable.rb +167 -0
  88. metadata +283 -0
@@ -0,0 +1,194 @@
1
+ # Copyright 2018 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
+ module Google
16
+ module Bigtable
17
+ module Admin
18
+ module V2
19
+ # A collection of Bigtable {Google::Bigtable::Admin::V2::Table Tables} and
20
+ # the resources that serve them.
21
+ # All tables in an instance are served from a single
22
+ # {Google::Bigtable::Admin::V2::Cluster Cluster}.
23
+ # @!attribute [rw] name
24
+ # @return [String]
25
+ # (+OutputOnly+)
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
+ # 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
+ # (+OutputOnly+)
96
+ # The unique name of the cluster. Values are of the form
97
+ # +projects/<project>/instances/<instance>/clusters/[a-z][-a-z0-9]*+.
98
+ # @!attribute [rw] location
99
+ # @return [String]
100
+ # (+CreationOnly+)
101
+ # The location where this cluster's nodes and storage reside. For best
102
+ # performance, clients should be located as close as possible to this
103
+ # cluster. Currently only zones are supported, so values should be of the
104
+ # form +projects/<project>/locations/<zone>+.
105
+ # @!attribute [rw] state
106
+ # @return [Google::Bigtable::Admin::V2::Cluster::State]
107
+ # (+OutputOnly+)
108
+ # The current state of the cluster.
109
+ # @!attribute [rw] serve_nodes
110
+ # @return [Integer]
111
+ # The number of nodes allocated to this cluster. More nodes enable higher
112
+ # throughput and more consistent performance.
113
+ # @!attribute [rw] default_storage_type
114
+ # @return [Google::Bigtable::Admin::V2::StorageType]
115
+ # (+CreationOnly+)
116
+ # The type of storage used by this cluster to serve its
117
+ # parent instance's tables, unless explicitly overridden.
118
+ class Cluster
119
+ # Possible states of a cluster.
120
+ module State
121
+ # The state of the cluster could not be determined.
122
+ STATE_NOT_KNOWN = 0
123
+
124
+ # The cluster has been successfully created and is ready to serve requests.
125
+ READY = 1
126
+
127
+ # The cluster is currently being created, and may be destroyed
128
+ # if the creation process encounters an error.
129
+ # A cluster may not be able to serve requests while being created.
130
+ CREATING = 2
131
+
132
+ # The cluster is currently being resized, and may revert to its previous
133
+ # node count if the process encounters an error.
134
+ # A cluster is still capable of serving requests while being resized,
135
+ # but may exhibit performance as if its number of allocated nodes is
136
+ # between the starting and requested states.
137
+ RESIZING = 3
138
+
139
+ # The cluster has no backing nodes. The data (tables) still
140
+ # exist, but no operations can be performed on the cluster.
141
+ DISABLED = 4
142
+ end
143
+ end
144
+
145
+ # A configuration object describing how Cloud Bigtable should treat traffic
146
+ # from a particular end user application.
147
+ # @!attribute [rw] name
148
+ # @return [String]
149
+ # (+OutputOnly+)
150
+ # The unique name of the app profile. Values are of the form
151
+ # +projects/<project>/instances/<instance>/appProfiles/[_a-zA-Z0-9][-_.a-zA-Z0-9]*+.
152
+ # @!attribute [rw] etag
153
+ # @return [String]
154
+ # Strongly validated etag for optimistic concurrency control. Preserve the
155
+ # value returned from +GetAppProfile+ when calling +UpdateAppProfile+ to
156
+ # fail the request if there has been a modification in the mean time. The
157
+ # +update_mask+ of the request need not include +etag+ for this protection
158
+ # to apply.
159
+ # See [Wikipedia](https://en.wikipedia.org/wiki/HTTP_ETag) and
160
+ # [RFC 7232](https://tools.ietf.org/html/rfc7232#section-2.3) for more
161
+ # details.
162
+ # @!attribute [rw] description
163
+ # @return [String]
164
+ # Optional long form description of the use case for this AppProfile.
165
+ # @!attribute [rw] multi_cluster_routing_use_any
166
+ # @return [Google::Bigtable::Admin::V2::AppProfile::MultiClusterRoutingUseAny]
167
+ # Use a multi-cluster routing policy that may pick any cluster.
168
+ # @!attribute [rw] single_cluster_routing
169
+ # @return [Google::Bigtable::Admin::V2::AppProfile::SingleClusterRouting]
170
+ # Use a single-cluster routing policy.
171
+ class AppProfile
172
+ # Read/write requests may be routed to any cluster in the instance, and will
173
+ # fail over to another cluster in the event of transient errors or delays.
174
+ # Choosing this option sacrifices read-your-writes consistency to improve
175
+ # availability.
176
+ class MultiClusterRoutingUseAny; end
177
+
178
+ # Unconditionally routes all read/write requests to a specific cluster.
179
+ # This option preserves read-your-writes consistency, but does not improve
180
+ # availability.
181
+ # @!attribute [rw] cluster_id
182
+ # @return [String]
183
+ # The cluster to which read/write requests should be routed.
184
+ # @!attribute [rw] allow_transactional_writes
185
+ # @return [true, false]
186
+ # Whether or not +CheckAndMutateRow+ and +ReadModifyWriteRow+ requests are
187
+ # allowed by this app profile. It is unsafe to send these requests to
188
+ # the same table/row/column in multiple clusters.
189
+ class SingleClusterRouting; end
190
+ end
191
+ end
192
+ end
193
+ end
194
+ end
@@ -0,0 +1,209 @@
1
+ # Copyright 2018 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
+ module Google
16
+ module Bigtable
17
+ module Admin
18
+ module V2
19
+ # A collection of user data indexed by row, column, and timestamp.
20
+ # Each table is served using the resources of its parent cluster.
21
+ # @!attribute [rw] name
22
+ # @return [String]
23
+ # (+OutputOnly+)
24
+ # The unique name of the table. Values are of the form
25
+ # +projects/<project>/instances/<instance>/tables/[_a-zA-Z0-9][-_.a-zA-Z0-9]*+.
26
+ # Views: +NAME_ONLY+, +SCHEMA_VIEW+, +REPLICATION_VIEW+, +FULL+
27
+ # @!attribute [rw] cluster_states
28
+ # @return [Hash{String => Google::Bigtable::Admin::V2::Table::ClusterState}]
29
+ # (+OutputOnly+)
30
+ # Map from cluster ID to per-cluster table state.
31
+ # If it could not be determined whether or not the table has data in a
32
+ # particular cluster (for example, if its zone is unavailable), then
33
+ # there will be an entry for the cluster with UNKNOWN +replication_status+.
34
+ # Views: +REPLICATION_VIEW+, +FULL+
35
+ # @!attribute [rw] column_families
36
+ # @return [Hash{String => Google::Bigtable::Admin::V2::ColumnFamily}]
37
+ # (+CreationOnly+)
38
+ # The column families configured for this table, mapped by column family ID.
39
+ # Views: +SCHEMA_VIEW+, +FULL+
40
+ # @!attribute [rw] granularity
41
+ # @return [Google::Bigtable::Admin::V2::Table::TimestampGranularity]
42
+ # (+CreationOnly+)
43
+ # The granularity (i.e. +MILLIS+) at which timestamps are stored in
44
+ # this table. Timestamps not matching the granularity will be rejected.
45
+ # If unspecified at creation time, the value will be set to +MILLIS+.
46
+ # Views: +SCHEMA_VIEW+, +FULL+
47
+ class Table
48
+ # The state of a table's data in a particular cluster.
49
+ # @!attribute [rw] replication_state
50
+ # @return [Google::Bigtable::Admin::V2::Table::ClusterState::ReplicationState]
51
+ # (+OutputOnly+)
52
+ # The state of replication for the table in this cluster.
53
+ class ClusterState
54
+ # Table replication states.
55
+ module ReplicationState
56
+ # The replication state of the table is unknown in this cluster.
57
+ STATE_NOT_KNOWN = 0
58
+
59
+ # The cluster was recently created, and the table must finish copying
60
+ # over pre-existing data from other clusters before it can begin
61
+ # receiving live replication updates and serving Data API requests.
62
+ INITIALIZING = 1
63
+
64
+ # The table is temporarily unable to serve Data API requests from this
65
+ # cluster due to planned internal maintenance.
66
+ PLANNED_MAINTENANCE = 2
67
+
68
+ # The table is temporarily unable to serve Data API requests from this
69
+ # cluster due to unplanned or emergency maintenance.
70
+ UNPLANNED_MAINTENANCE = 3
71
+
72
+ # The table can serve Data API requests from this cluster. Depending on
73
+ # replication delay, reads may not immediately reflect the state of the
74
+ # table in other clusters.
75
+ READY = 4
76
+ end
77
+ end
78
+
79
+ # Possible timestamp granularities to use when keeping multiple versions
80
+ # of data in a table.
81
+ module TimestampGranularity
82
+ # The user did not specify a granularity. Should not be returned.
83
+ # When specified during table creation, MILLIS will be used.
84
+ TIMESTAMP_GRANULARITY_UNSPECIFIED = 0
85
+
86
+ # The table keeps data versioned at a granularity of 1ms.
87
+ MILLIS = 1
88
+ end
89
+
90
+ # Defines a view over a table's fields.
91
+ module View
92
+ # Uses the default view for each method as documented in its request.
93
+ VIEW_UNSPECIFIED = 0
94
+
95
+ # Only populates +name+.
96
+ NAME_ONLY = 1
97
+
98
+ # Only populates +name+ and fields related to the table's schema.
99
+ SCHEMA_VIEW = 2
100
+
101
+ # Only populates +name+ and fields related to the table's
102
+ # replication state.
103
+ REPLICATION_VIEW = 3
104
+
105
+ # Populates all fields.
106
+ FULL = 4
107
+ end
108
+ end
109
+
110
+ # A set of columns within a table which share a common configuration.
111
+ # @!attribute [rw] gc_rule
112
+ # @return [Google::Bigtable::Admin::V2::GcRule]
113
+ # Garbage collection rule specified as a protobuf.
114
+ # Must serialize to at most 500 bytes.
115
+ #
116
+ # NOTE: Garbage collection executes opportunistically in the background, and
117
+ # so it's possible for reads to return a cell even if it matches the active
118
+ # GC expression for its family.
119
+ class ColumnFamily; end
120
+
121
+ # Rule for determining which cells to delete during garbage collection.
122
+ # @!attribute [rw] max_num_versions
123
+ # @return [Integer]
124
+ # Delete all cells in a column except the most recent N.
125
+ # @!attribute [rw] max_age
126
+ # @return [Google::Protobuf::Duration]
127
+ # Delete cells in a column older than the given age.
128
+ # Values must be at least one millisecond, and will be truncated to
129
+ # microsecond granularity.
130
+ # @!attribute [rw] intersection
131
+ # @return [Google::Bigtable::Admin::V2::GcRule::Intersection]
132
+ # Delete cells that would be deleted by every nested rule.
133
+ # @!attribute [rw] union
134
+ # @return [Google::Bigtable::Admin::V2::GcRule::Union]
135
+ # Delete cells that would be deleted by any nested rule.
136
+ class GcRule
137
+ # A GcRule which deletes cells matching all of the given rules.
138
+ # @!attribute [rw] rules
139
+ # @return [Array<Google::Bigtable::Admin::V2::GcRule>]
140
+ # Only delete cells which would be deleted by every element of +rules+.
141
+ class Intersection; end
142
+
143
+ # A GcRule which deletes cells matching any of the given rules.
144
+ # @!attribute [rw] rules
145
+ # @return [Array<Google::Bigtable::Admin::V2::GcRule>]
146
+ # Delete cells which would be deleted by any element of +rules+.
147
+ class Union; end
148
+ end
149
+
150
+ # A snapshot of a table at a particular time. A snapshot can be used as a
151
+ # checkpoint for data restoration or a data source for a new table.
152
+ #
153
+ # Note: This is a private alpha release of Cloud Bigtable snapshots. This
154
+ # feature is not currently available to most Cloud Bigtable customers. This
155
+ # feature might be changed in backward-incompatible ways and is not recommended
156
+ # for production use. It is not subject to any SLA or deprecation policy.
157
+ # @!attribute [rw] name
158
+ # @return [String]
159
+ # (+OutputOnly+)
160
+ # The unique name of the snapshot.
161
+ # Values are of the form
162
+ # +projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/<snapshot>+.
163
+ # @!attribute [rw] source_table
164
+ # @return [Google::Bigtable::Admin::V2::Table]
165
+ # (+OutputOnly+)
166
+ # The source table at the time the snapshot was taken.
167
+ # @!attribute [rw] data_size_bytes
168
+ # @return [Integer]
169
+ # (+OutputOnly+)
170
+ # The size of the data in the source table at the time the snapshot was
171
+ # taken. In some cases, this value may be computed asynchronously via a
172
+ # background process and a placeholder of 0 will be used in the meantime.
173
+ # @!attribute [rw] create_time
174
+ # @return [Google::Protobuf::Timestamp]
175
+ # (+OutputOnly+)
176
+ # The time when the snapshot is created.
177
+ # @!attribute [rw] delete_time
178
+ # @return [Google::Protobuf::Timestamp]
179
+ # (+OutputOnly+)
180
+ # The time when the snapshot will be deleted. The maximum amount of time a
181
+ # snapshot can stay active is 365 days. If 'ttl' is not specified,
182
+ # the default maximum of 365 days will be used.
183
+ # @!attribute [rw] state
184
+ # @return [Google::Bigtable::Admin::V2::Snapshot::State]
185
+ # (+OutputOnly+)
186
+ # The current state of the snapshot.
187
+ # @!attribute [rw] description
188
+ # @return [String]
189
+ # (+OutputOnly+)
190
+ # Description of the snapshot.
191
+ class Snapshot
192
+ # Possible states of a snapshot.
193
+ module State
194
+ # The state of the snapshot could not be determined.
195
+ STATE_NOT_KNOWN = 0
196
+
197
+ # The snapshot has been successfully created and can serve all requests.
198
+ READY = 1
199
+
200
+ # The snapshot is currently being created, and may be destroyed if the
201
+ # creation process encounters an error. A snapshot may not be restored to a
202
+ # table while it is being created.
203
+ CREATING = 2
204
+ end
205
+ end
206
+ end
207
+ end
208
+ end
209
+ end
@@ -0,0 +1,62 @@
1
+ # Copyright 2018 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
+ module Google
16
+ module Iam
17
+ module V1
18
+ # Request message for +SetIamPolicy+ method.
19
+ # @!attribute [rw] resource
20
+ # @return [String]
21
+ # REQUIRED: The resource for which the policy is being specified.
22
+ # +resource+ is usually specified as a path. For example, a Project
23
+ # resource is specified as +projects/{project}+.
24
+ # @!attribute [rw] policy
25
+ # @return [Google::Iam::V1::Policy]
26
+ # REQUIRED: The complete policy to be applied to the +resource+. The size of
27
+ # the policy is limited to a few 10s of KB. An empty policy is a
28
+ # valid policy but certain Cloud Platform services (such as Projects)
29
+ # might reject them.
30
+ class SetIamPolicyRequest; end
31
+
32
+ # Request message for +GetIamPolicy+ method.
33
+ # @!attribute [rw] resource
34
+ # @return [String]
35
+ # REQUIRED: The resource for which the policy is being requested.
36
+ # +resource+ is usually specified as a path. For example, a Project
37
+ # resource is specified as +projects/{project}+.
38
+ class GetIamPolicyRequest; end
39
+
40
+ # Request message for +TestIamPermissions+ method.
41
+ # @!attribute [rw] resource
42
+ # @return [String]
43
+ # REQUIRED: The resource for which the policy detail is being requested.
44
+ # +resource+ is usually specified as a path. For example, a Project
45
+ # resource is specified as +projects/{project}+.
46
+ # @!attribute [rw] permissions
47
+ # @return [Array<String>]
48
+ # The set of permissions to check for the +resource+. Permissions with
49
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
50
+ # information see
51
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
52
+ class TestIamPermissionsRequest; end
53
+
54
+ # Response message for +TestIamPermissions+ method.
55
+ # @!attribute [rw] permissions
56
+ # @return [Array<String>]
57
+ # A subset of +TestPermissionsRequest.permissions+ that the caller is
58
+ # allowed.
59
+ class TestIamPermissionsResponse; end
60
+ end
61
+ end
62
+ end