google-apis-bigtableadmin_v2 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b7775c592d488aff1b53da73e2f31126b9f744f3640a90e7d61cad9d39b1743f
4
+ data.tar.gz: c2cd1a17d06302bb8404f54d4030052178c691cb468c08bca1a2629838022c50
5
+ SHA512:
6
+ metadata.gz: 54923724e466eb706b8a3b93482f93cd24673f8ba8df751f47f2a2bf83861496c7c4c760b22a135b675ecf75b1650d560befae9397d74c42c1411ce0ed7730f8
7
+ data.tar.gz: ed50a90a9836f3f37e3e41dcd39389f3d56b07b12e2a21053192f625765eee937a0ef4803073373efcfc6d220d30261b5008eb4ace3261ea96004e94b667a0a0
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-bigtableadmin_v2
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/bigtableadmin_v2/*.rb
9
+ lib/google/apis/bigtableadmin_v2.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-bigtableadmin_v2
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20200821
7
+
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version V2 of the Cloud Bigtable Admin API
2
+
3
+ This is a simple client library for version V2 of the Cloud Bigtable Admin API. It provides:
4
+
5
+ * A client object that connects to the HTTP/JSON REST endpoint for the service.
6
+ * Ruby objects for data structures related to the service.
7
+ * Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
8
+ * Control of retry, pagination, and timeouts.
9
+
10
+ Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
11
+
12
+ ## Getting started
13
+
14
+ ### Before you begin
15
+
16
+ There are a few setup steps you need to complete before you can use this library:
17
+
18
+ 1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
19
+ 2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
20
+ 3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/bigtableadmin.googleapis.com) in the console.
21
+
22
+ ### Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'google-apis-bigtableadmin_v2', '~> 0.1'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```
33
+ $ bundle
34
+ ```
35
+
36
+ Or install it yourself as:
37
+
38
+ ```
39
+ $ gem install google-apis-bigtableadmin_v2
40
+ ```
41
+
42
+ ### Creating a client object
43
+
44
+ Once the gem is installed, you can load the client code and instantiate a client.
45
+
46
+ ```ruby
47
+ # Load the client
48
+ require "google/apis/bigtableadmin_v2"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::BigtableadminV2::BigtableAdminService.new
52
+
53
+ # Authenticate calls
54
+ client.authentication = # ... use the googleauth gem to create credentials
55
+ ```
56
+
57
+ See the class reference docs for information on the methods you can call from a client.
58
+
59
+ ## Documentation
60
+
61
+ More detailed descriptions of the Google simple REST clients are available in two documents.
62
+
63
+ * The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
64
+ * The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
65
+
66
+ (Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the Bigtableadmin service in particular.)
67
+
68
+ For reference information on specific calls in the Cloud Bigtable Admin API, see the {Google::Apis::BigtableadminV2::BigtableAdminService class reference docs}.
69
+
70
+ ## Which client should I use?
71
+
72
+ Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
73
+
74
+ This library, `google-apis-bigtableadmin_v2`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
75
+
76
+ Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
77
+
78
+ Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
79
+
80
+ **For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
81
+
82
+ The [product documentation](https://cloud.google.com/bigtable/) may provide guidance regarding the preferred client library to use.
83
+
84
+ ## Supported Ruby versions
85
+
86
+ This library is supported on Ruby 2.5+.
87
+
88
+ Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
89
+
90
+ ## License
91
+
92
+ This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
93
+
94
+ ## Support
95
+
96
+ Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
@@ -0,0 +1,15 @@
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
+ # http://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
+ require "google/apis/bigtableadmin_v2"
@@ -0,0 +1,60 @@
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
+ # http://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
+ require 'google/apis/bigtableadmin_v2/service.rb'
16
+ require 'google/apis/bigtableadmin_v2/classes.rb'
17
+ require 'google/apis/bigtableadmin_v2/representations.rb'
18
+ require 'google/apis/bigtableadmin_v2/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Cloud Bigtable Admin API
23
+ #
24
+ # Administer your Cloud Bigtable tables and instances.
25
+ #
26
+ # @see https://cloud.google.com/bigtable/
27
+ module BigtableadminV2
28
+ # Version of the Cloud Bigtable Admin API this client connects to.
29
+ # This is NOT the gem version.
30
+ VERSION = 'V2'
31
+
32
+ # Administer your Cloud Bigtable tables and clusters
33
+ AUTH_BIGTABLE_ADMIN = 'https://www.googleapis.com/auth/bigtable.admin'
34
+
35
+ # Administer your Cloud Bigtable clusters
36
+ AUTH_BIGTABLE_ADMIN_CLUSTER = 'https://www.googleapis.com/auth/bigtable.admin.cluster'
37
+
38
+ # Administer your Cloud Bigtable clusters
39
+ AUTH_BIGTABLE_ADMIN_INSTANCE = 'https://www.googleapis.com/auth/bigtable.admin.instance'
40
+
41
+ # Administer your Cloud Bigtable tables
42
+ AUTH_BIGTABLE_ADMIN_TABLE = 'https://www.googleapis.com/auth/bigtable.admin.table'
43
+
44
+ # Administer your Cloud Bigtable tables and clusters
45
+ AUTH_CLOUD_BIGTABLE_ADMIN = 'https://www.googleapis.com/auth/cloud-bigtable.admin'
46
+
47
+ # Administer your Cloud Bigtable clusters
48
+ AUTH_CLOUD_BIGTABLE_ADMIN_CLUSTER = 'https://www.googleapis.com/auth/cloud-bigtable.admin.cluster'
49
+
50
+ # Administer your Cloud Bigtable tables
51
+ AUTH_CLOUD_BIGTABLE_ADMIN_TABLE = 'https://www.googleapis.com/auth/cloud-bigtable.admin.table'
52
+
53
+ # View and manage your data across Google Cloud Platform services
54
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
55
+
56
+ # View your data across Google Cloud Platform services
57
+ AUTH_CLOUD_PLATFORM_READ_ONLY = 'https://www.googleapis.com/auth/cloud-platform.read-only'
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,2065 @@
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
+ # http://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
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module BigtableadminV2
24
+
25
+ # A configuration object describing how Cloud Bigtable should treat traffic from
26
+ # a particular end user application.
27
+ class AppProfile
28
+ include Google::Apis::Core::Hashable
29
+
30
+ # Long form description of the use case for this AppProfile.
31
+ # Corresponds to the JSON property `description`
32
+ # @return [String]
33
+ attr_accessor :description
34
+
35
+ # Strongly validated etag for optimistic concurrency control. Preserve the value
36
+ # returned from `GetAppProfile` when calling `UpdateAppProfile` to fail the
37
+ # request if there has been a modification in the mean time. The `update_mask`
38
+ # of the request need not include `etag` for this protection to apply. See [
39
+ # Wikipedia](https://en.wikipedia.org/wiki/HTTP_ETag) and [RFC 7232](https://
40
+ # tools.ietf.org/html/rfc7232#section-2.3) for more details.
41
+ # Corresponds to the JSON property `etag`
42
+ # @return [String]
43
+ attr_accessor :etag
44
+
45
+ # Read/write requests are routed to the nearest cluster in the instance, and
46
+ # will fail over to the nearest cluster that is available in the event of
47
+ # transient errors or delays. Clusters in a region are considered equidistant.
48
+ # Choosing this option sacrifices read-your-writes consistency to improve
49
+ # availability.
50
+ # Corresponds to the JSON property `multiClusterRoutingUseAny`
51
+ # @return [Google::Apis::BigtableadminV2::MultiClusterRoutingUseAny]
52
+ attr_accessor :multi_cluster_routing_use_any
53
+
54
+ # The unique name of the app profile. Values are of the form `projects/`project`/
55
+ # instances/`instance`/appProfiles/_a-zA-Z0-9*`.
56
+ # Corresponds to the JSON property `name`
57
+ # @return [String]
58
+ attr_accessor :name
59
+
60
+ # Unconditionally routes all read/write requests to a specific cluster. This
61
+ # option preserves read-your-writes consistency but does not improve
62
+ # availability.
63
+ # Corresponds to the JSON property `singleClusterRouting`
64
+ # @return [Google::Apis::BigtableadminV2::SingleClusterRouting]
65
+ attr_accessor :single_cluster_routing
66
+
67
+ def initialize(**args)
68
+ update!(**args)
69
+ end
70
+
71
+ # Update properties of this object
72
+ def update!(**args)
73
+ @description = args[:description] if args.key?(:description)
74
+ @etag = args[:etag] if args.key?(:etag)
75
+ @multi_cluster_routing_use_any = args[:multi_cluster_routing_use_any] if args.key?(:multi_cluster_routing_use_any)
76
+ @name = args[:name] if args.key?(:name)
77
+ @single_cluster_routing = args[:single_cluster_routing] if args.key?(:single_cluster_routing)
78
+ end
79
+ end
80
+
81
+ # Specifies the audit configuration for a service. The configuration determines
82
+ # which permission types are logged, and what identities, if any, are exempted
83
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
84
+ # are AuditConfigs for both `allServices` and a specific service, the union of
85
+ # the two AuditConfigs is used for that service: the log_types specified in each
86
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
87
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
88
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
89
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
90
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
91
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
92
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
93
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
94
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
95
+ # DATA_WRITE logging.
96
+ class AuditConfig
97
+ include Google::Apis::Core::Hashable
98
+
99
+ # The configuration for logging of each type of permission.
100
+ # Corresponds to the JSON property `auditLogConfigs`
101
+ # @return [Array<Google::Apis::BigtableadminV2::AuditLogConfig>]
102
+ attr_accessor :audit_log_configs
103
+
104
+ # Specifies a service that will be enabled for audit logging. For example, `
105
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
106
+ # value that covers all services.
107
+ # Corresponds to the JSON property `service`
108
+ # @return [String]
109
+ attr_accessor :service
110
+
111
+ def initialize(**args)
112
+ update!(**args)
113
+ end
114
+
115
+ # Update properties of this object
116
+ def update!(**args)
117
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
118
+ @service = args[:service] if args.key?(:service)
119
+ end
120
+ end
121
+
122
+ # Provides the configuration for logging a type of permissions. Example: ` "
123
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
124
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
125
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
126
+ # DATA_READ logging.
127
+ class AuditLogConfig
128
+ include Google::Apis::Core::Hashable
129
+
130
+ # Specifies the identities that do not cause logging for this type of permission.
131
+ # Follows the same format of Binding.members.
132
+ # Corresponds to the JSON property `exemptedMembers`
133
+ # @return [Array<String>]
134
+ attr_accessor :exempted_members
135
+
136
+ # The log type that this config enables.
137
+ # Corresponds to the JSON property `logType`
138
+ # @return [String]
139
+ attr_accessor :log_type
140
+
141
+ def initialize(**args)
142
+ update!(**args)
143
+ end
144
+
145
+ # Update properties of this object
146
+ def update!(**args)
147
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
148
+ @log_type = args[:log_type] if args.key?(:log_type)
149
+ end
150
+ end
151
+
152
+ # A backup of a Cloud Bigtable table.
153
+ class Backup
154
+ include Google::Apis::Core::Hashable
155
+
156
+ # Output only. `end_time` is the time that the backup was finished. The row data
157
+ # in the backup will be no newer than this timestamp.
158
+ # Corresponds to the JSON property `endTime`
159
+ # @return [String]
160
+ attr_accessor :end_time
161
+
162
+ # Required. The expiration time of the backup, with microseconds granularity
163
+ # that must be at least 6 hours and at most 30 days from the time the request is
164
+ # received. Once the `expire_time` has passed, Cloud Bigtable will delete the
165
+ # backup and free the resources used by the backup.
166
+ # Corresponds to the JSON property `expireTime`
167
+ # @return [String]
168
+ attr_accessor :expire_time
169
+
170
+ # A globally unique identifier for the backup which cannot be changed. Values
171
+ # are of the form `projects/`project`/instances/`instance`/clusters/`cluster`/
172
+ # backups/_a-zA-Z0-9*` The final segment of the name must be between 1 and 50
173
+ # characters in length. The backup is stored in the cluster identified by the
174
+ # prefix of the backup name of the form `projects/`project`/instances/`instance`/
175
+ # clusters/`cluster``.
176
+ # Corresponds to the JSON property `name`
177
+ # @return [String]
178
+ attr_accessor :name
179
+
180
+ # Output only. Size of the backup in bytes.
181
+ # Corresponds to the JSON property `sizeBytes`
182
+ # @return [Fixnum]
183
+ attr_accessor :size_bytes
184
+
185
+ # Required. Immutable. Name of the table from which this backup was created.
186
+ # This needs to be in the same instance as the backup. Values are of the form `
187
+ # projects/`project`/instances/`instance`/tables/`source_table``.
188
+ # Corresponds to the JSON property `sourceTable`
189
+ # @return [String]
190
+ attr_accessor :source_table
191
+
192
+ # Output only. `start_time` is the time that the backup was started (i.e.
193
+ # approximately the time the CreateBackup request is received). The row data in
194
+ # this backup will be no older than this timestamp.
195
+ # Corresponds to the JSON property `startTime`
196
+ # @return [String]
197
+ attr_accessor :start_time
198
+
199
+ # Output only. The current state of the backup.
200
+ # Corresponds to the JSON property `state`
201
+ # @return [String]
202
+ attr_accessor :state
203
+
204
+ def initialize(**args)
205
+ update!(**args)
206
+ end
207
+
208
+ # Update properties of this object
209
+ def update!(**args)
210
+ @end_time = args[:end_time] if args.key?(:end_time)
211
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
212
+ @name = args[:name] if args.key?(:name)
213
+ @size_bytes = args[:size_bytes] if args.key?(:size_bytes)
214
+ @source_table = args[:source_table] if args.key?(:source_table)
215
+ @start_time = args[:start_time] if args.key?(:start_time)
216
+ @state = args[:state] if args.key?(:state)
217
+ end
218
+ end
219
+
220
+ # Information about a backup.
221
+ class BackupInfo
222
+ include Google::Apis::Core::Hashable
223
+
224
+ # Output only. Name of the backup.
225
+ # Corresponds to the JSON property `backup`
226
+ # @return [String]
227
+ attr_accessor :backup
228
+
229
+ # Output only. This time that the backup was finished. Row data in the backup
230
+ # will be no newer than this timestamp.
231
+ # Corresponds to the JSON property `endTime`
232
+ # @return [String]
233
+ attr_accessor :end_time
234
+
235
+ # Output only. Name of the table the backup was created from.
236
+ # Corresponds to the JSON property `sourceTable`
237
+ # @return [String]
238
+ attr_accessor :source_table
239
+
240
+ # Output only. The time that the backup was started. Row data in the backup will
241
+ # be no older than this timestamp.
242
+ # Corresponds to the JSON property `startTime`
243
+ # @return [String]
244
+ attr_accessor :start_time
245
+
246
+ def initialize(**args)
247
+ update!(**args)
248
+ end
249
+
250
+ # Update properties of this object
251
+ def update!(**args)
252
+ @backup = args[:backup] if args.key?(:backup)
253
+ @end_time = args[:end_time] if args.key?(:end_time)
254
+ @source_table = args[:source_table] if args.key?(:source_table)
255
+ @start_time = args[:start_time] if args.key?(:start_time)
256
+ end
257
+ end
258
+
259
+ # Associates `members` with a `role`.
260
+ class Binding
261
+ include Google::Apis::Core::Hashable
262
+
263
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
264
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
265
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
266
+ # "Summary size limit" description: "Determines if a summary is less than 100
267
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
268
+ # Requestor is owner" description: "Determines if requestor is the document
269
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
270
+ # Logic): title: "Public documents" description: "Determine whether the document
271
+ # should be publicly visible" expression: "document.type != 'private' &&
272
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
273
+ # string" description: "Create a notification string with a timestamp."
274
+ # expression: "'New message received at ' + string(document.create_time)" The
275
+ # exact variables and functions that may be referenced within an expression are
276
+ # determined by the service that evaluates it. See the service documentation for
277
+ # additional information.
278
+ # Corresponds to the JSON property `condition`
279
+ # @return [Google::Apis::BigtableadminV2::Expr]
280
+ attr_accessor :condition
281
+
282
+ # Specifies the identities requesting access for a Cloud Platform resource. `
283
+ # members` can have the following values: * `allUsers`: A special identifier
284
+ # that represents anyone who is on the internet; with or without a Google
285
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
286
+ # anyone who is authenticated with a Google account or a service account. * `
287
+ # user:`emailid``: An email address that represents a specific Google account.
288
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
289
+ # address that represents a service account. For example, `my-other-app@appspot.
290
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
291
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
292
+ # `uniqueid``: An email address (plus unique identifier) representing a user
293
+ # that has been recently deleted. For example, `alice@example.com?uid=
294
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
295
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
296
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
297
+ # identifier) representing a service account that has been recently deleted. For
298
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
299
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
300
+ # emailid`` and the undeleted service account retains the role in the binding. *
301
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
302
+ # identifier) representing a Google group that has been recently deleted. For
303
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
304
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
305
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
306
+ # primary) that represents all the users of that domain. For example, `google.
307
+ # com` or `example.com`.
308
+ # Corresponds to the JSON property `members`
309
+ # @return [Array<String>]
310
+ attr_accessor :members
311
+
312
+ # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
313
+ # , or `roles/owner`.
314
+ # Corresponds to the JSON property `role`
315
+ # @return [String]
316
+ attr_accessor :role
317
+
318
+ def initialize(**args)
319
+ update!(**args)
320
+ end
321
+
322
+ # Update properties of this object
323
+ def update!(**args)
324
+ @condition = args[:condition] if args.key?(:condition)
325
+ @members = args[:members] if args.key?(:members)
326
+ @role = args[:role] if args.key?(:role)
327
+ end
328
+ end
329
+
330
+ # Request message for google.bigtable.admin.v2.BigtableTableAdmin.
331
+ # CheckConsistency
332
+ class CheckConsistencyRequest
333
+ include Google::Apis::Core::Hashable
334
+
335
+ # Required. The token created using GenerateConsistencyToken for the Table.
336
+ # Corresponds to the JSON property `consistencyToken`
337
+ # @return [String]
338
+ attr_accessor :consistency_token
339
+
340
+ def initialize(**args)
341
+ update!(**args)
342
+ end
343
+
344
+ # Update properties of this object
345
+ def update!(**args)
346
+ @consistency_token = args[:consistency_token] if args.key?(:consistency_token)
347
+ end
348
+ end
349
+
350
+ # Response message for google.bigtable.admin.v2.BigtableTableAdmin.
351
+ # CheckConsistency
352
+ class CheckConsistencyResponse
353
+ include Google::Apis::Core::Hashable
354
+
355
+ # True only if the token is consistent. A token is consistent if replication has
356
+ # caught up with the restrictions specified in the request.
357
+ # Corresponds to the JSON property `consistent`
358
+ # @return [Boolean]
359
+ attr_accessor :consistent
360
+ alias_method :consistent?, :consistent
361
+
362
+ def initialize(**args)
363
+ update!(**args)
364
+ end
365
+
366
+ # Update properties of this object
367
+ def update!(**args)
368
+ @consistent = args[:consistent] if args.key?(:consistent)
369
+ end
370
+ end
371
+
372
+ # A resizable group of nodes in a particular cloud location, capable of serving
373
+ # all Tables in the parent Instance.
374
+ class Cluster
375
+ include Google::Apis::Core::Hashable
376
+
377
+ # Immutable. The type of storage used by this cluster to serve its parent
378
+ # instance's tables, unless explicitly overridden.
379
+ # Corresponds to the JSON property `defaultStorageType`
380
+ # @return [String]
381
+ attr_accessor :default_storage_type
382
+
383
+ # Immutable. The location where this cluster's nodes and storage reside. For
384
+ # best performance, clients should be located as close as possible to this
385
+ # cluster. Currently only zones are supported, so values should be of the form `
386
+ # projects/`project`/locations/`zone``.
387
+ # Corresponds to the JSON property `location`
388
+ # @return [String]
389
+ attr_accessor :location
390
+
391
+ # The unique name of the cluster. Values are of the form `projects/`project`/
392
+ # instances/`instance`/clusters/a-z*`.
393
+ # Corresponds to the JSON property `name`
394
+ # @return [String]
395
+ attr_accessor :name
396
+
397
+ # Required. The number of nodes allocated to this cluster. More nodes enable
398
+ # higher throughput and more consistent performance.
399
+ # Corresponds to the JSON property `serveNodes`
400
+ # @return [Fixnum]
401
+ attr_accessor :serve_nodes
402
+
403
+ # Output only. The current state of the cluster.
404
+ # Corresponds to the JSON property `state`
405
+ # @return [String]
406
+ attr_accessor :state
407
+
408
+ def initialize(**args)
409
+ update!(**args)
410
+ end
411
+
412
+ # Update properties of this object
413
+ def update!(**args)
414
+ @default_storage_type = args[:default_storage_type] if args.key?(:default_storage_type)
415
+ @location = args[:location] if args.key?(:location)
416
+ @name = args[:name] if args.key?(:name)
417
+ @serve_nodes = args[:serve_nodes] if args.key?(:serve_nodes)
418
+ @state = args[:state] if args.key?(:state)
419
+ end
420
+ end
421
+
422
+ # The state of a table's data in a particular cluster.
423
+ class ClusterState
424
+ include Google::Apis::Core::Hashable
425
+
426
+ # Output only. The state of replication for the table in this cluster.
427
+ # Corresponds to the JSON property `replicationState`
428
+ # @return [String]
429
+ attr_accessor :replication_state
430
+
431
+ def initialize(**args)
432
+ update!(**args)
433
+ end
434
+
435
+ # Update properties of this object
436
+ def update!(**args)
437
+ @replication_state = args[:replication_state] if args.key?(:replication_state)
438
+ end
439
+ end
440
+
441
+ # A set of columns within a table which share a common configuration.
442
+ class ColumnFamily
443
+ include Google::Apis::Core::Hashable
444
+
445
+ # Rule for determining which cells to delete during garbage collection.
446
+ # Corresponds to the JSON property `gcRule`
447
+ # @return [Google::Apis::BigtableadminV2::GcRule]
448
+ attr_accessor :gc_rule
449
+
450
+ def initialize(**args)
451
+ update!(**args)
452
+ end
453
+
454
+ # Update properties of this object
455
+ def update!(**args)
456
+ @gc_rule = args[:gc_rule] if args.key?(:gc_rule)
457
+ end
458
+ end
459
+
460
+ # Metadata type for the operation returned by CreateBackup.
461
+ class CreateBackupMetadata
462
+ include Google::Apis::Core::Hashable
463
+
464
+ # If set, the time at which this operation finished or was cancelled.
465
+ # Corresponds to the JSON property `endTime`
466
+ # @return [String]
467
+ attr_accessor :end_time
468
+
469
+ # The name of the backup being created.
470
+ # Corresponds to the JSON property `name`
471
+ # @return [String]
472
+ attr_accessor :name
473
+
474
+ # The name of the table the backup is created from.
475
+ # Corresponds to the JSON property `sourceTable`
476
+ # @return [String]
477
+ attr_accessor :source_table
478
+
479
+ # The time at which this operation started.
480
+ # Corresponds to the JSON property `startTime`
481
+ # @return [String]
482
+ attr_accessor :start_time
483
+
484
+ def initialize(**args)
485
+ update!(**args)
486
+ end
487
+
488
+ # Update properties of this object
489
+ def update!(**args)
490
+ @end_time = args[:end_time] if args.key?(:end_time)
491
+ @name = args[:name] if args.key?(:name)
492
+ @source_table = args[:source_table] if args.key?(:source_table)
493
+ @start_time = args[:start_time] if args.key?(:start_time)
494
+ end
495
+ end
496
+
497
+ # The metadata for the Operation returned by CreateCluster.
498
+ class CreateClusterMetadata
499
+ include Google::Apis::Core::Hashable
500
+
501
+ # The time at which the operation failed or was completed successfully.
502
+ # Corresponds to the JSON property `finishTime`
503
+ # @return [String]
504
+ attr_accessor :finish_time
505
+
506
+ # Request message for BigtableInstanceAdmin.CreateCluster.
507
+ # Corresponds to the JSON property `originalRequest`
508
+ # @return [Google::Apis::BigtableadminV2::CreateClusterRequest]
509
+ attr_accessor :original_request
510
+
511
+ # The time at which the original request was received.
512
+ # Corresponds to the JSON property `requestTime`
513
+ # @return [String]
514
+ attr_accessor :request_time
515
+
516
+ # Keys: the full `name` of each table that existed in the instance when
517
+ # CreateCluster was first called, i.e. `projects//instances//tables/`. Any table
518
+ # added to the instance by a later API call will be created in the new cluster
519
+ # by that API call, not this one. Values: information on how much of a table's
520
+ # data has been copied to the newly-created cluster so far.
521
+ # Corresponds to the JSON property `tables`
522
+ # @return [Hash<String,Google::Apis::BigtableadminV2::TableProgress>]
523
+ attr_accessor :tables
524
+
525
+ def initialize(**args)
526
+ update!(**args)
527
+ end
528
+
529
+ # Update properties of this object
530
+ def update!(**args)
531
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
532
+ @original_request = args[:original_request] if args.key?(:original_request)
533
+ @request_time = args[:request_time] if args.key?(:request_time)
534
+ @tables = args[:tables] if args.key?(:tables)
535
+ end
536
+ end
537
+
538
+ # Request message for BigtableInstanceAdmin.CreateCluster.
539
+ class CreateClusterRequest
540
+ include Google::Apis::Core::Hashable
541
+
542
+ # A resizable group of nodes in a particular cloud location, capable of serving
543
+ # all Tables in the parent Instance.
544
+ # Corresponds to the JSON property `cluster`
545
+ # @return [Google::Apis::BigtableadminV2::Cluster]
546
+ attr_accessor :cluster
547
+
548
+ # Required. The ID to be used when referring to the new cluster within its
549
+ # instance, e.g., just `mycluster` rather than `projects/myproject/instances/
550
+ # myinstance/clusters/mycluster`.
551
+ # Corresponds to the JSON property `clusterId`
552
+ # @return [String]
553
+ attr_accessor :cluster_id
554
+
555
+ # Required. The unique name of the instance in which to create the new cluster.
556
+ # Values are of the form `projects/`project`/instances/`instance``.
557
+ # Corresponds to the JSON property `parent`
558
+ # @return [String]
559
+ attr_accessor :parent
560
+
561
+ def initialize(**args)
562
+ update!(**args)
563
+ end
564
+
565
+ # Update properties of this object
566
+ def update!(**args)
567
+ @cluster = args[:cluster] if args.key?(:cluster)
568
+ @cluster_id = args[:cluster_id] if args.key?(:cluster_id)
569
+ @parent = args[:parent] if args.key?(:parent)
570
+ end
571
+ end
572
+
573
+ # The metadata for the Operation returned by CreateInstance.
574
+ class CreateInstanceMetadata
575
+ include Google::Apis::Core::Hashable
576
+
577
+ # The time at which the operation failed or was completed successfully.
578
+ # Corresponds to the JSON property `finishTime`
579
+ # @return [String]
580
+ attr_accessor :finish_time
581
+
582
+ # Request message for BigtableInstanceAdmin.CreateInstance.
583
+ # Corresponds to the JSON property `originalRequest`
584
+ # @return [Google::Apis::BigtableadminV2::CreateInstanceRequest]
585
+ attr_accessor :original_request
586
+
587
+ # The time at which the original request was received.
588
+ # Corresponds to the JSON property `requestTime`
589
+ # @return [String]
590
+ attr_accessor :request_time
591
+
592
+ def initialize(**args)
593
+ update!(**args)
594
+ end
595
+
596
+ # Update properties of this object
597
+ def update!(**args)
598
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
599
+ @original_request = args[:original_request] if args.key?(:original_request)
600
+ @request_time = args[:request_time] if args.key?(:request_time)
601
+ end
602
+ end
603
+
604
+ # Request message for BigtableInstanceAdmin.CreateInstance.
605
+ class CreateInstanceRequest
606
+ include Google::Apis::Core::Hashable
607
+
608
+ # Required. The clusters to be created within the instance, mapped by desired
609
+ # cluster ID, e.g., just `mycluster` rather than `projects/myproject/instances/
610
+ # myinstance/clusters/mycluster`. Fields marked `OutputOnly` must be left blank.
611
+ # Currently, at most four clusters can be specified.
612
+ # Corresponds to the JSON property `clusters`
613
+ # @return [Hash<String,Google::Apis::BigtableadminV2::Cluster>]
614
+ attr_accessor :clusters
615
+
616
+ # A collection of Bigtable Tables and the resources that serve them. All tables
617
+ # in an instance are served from all Clusters in the instance.
618
+ # Corresponds to the JSON property `instance`
619
+ # @return [Google::Apis::BigtableadminV2::Instance]
620
+ attr_accessor :instance
621
+
622
+ # Required. The ID to be used when referring to the new instance within its
623
+ # project, e.g., just `myinstance` rather than `projects/myproject/instances/
624
+ # myinstance`.
625
+ # Corresponds to the JSON property `instanceId`
626
+ # @return [String]
627
+ attr_accessor :instance_id
628
+
629
+ # Required. The unique name of the project in which to create the new instance.
630
+ # Values are of the form `projects/`project``.
631
+ # Corresponds to the JSON property `parent`
632
+ # @return [String]
633
+ attr_accessor :parent
634
+
635
+ def initialize(**args)
636
+ update!(**args)
637
+ end
638
+
639
+ # Update properties of this object
640
+ def update!(**args)
641
+ @clusters = args[:clusters] if args.key?(:clusters)
642
+ @instance = args[:instance] if args.key?(:instance)
643
+ @instance_id = args[:instance_id] if args.key?(:instance_id)
644
+ @parent = args[:parent] if args.key?(:parent)
645
+ end
646
+ end
647
+
648
+ # Request message for google.bigtable.admin.v2.BigtableTableAdmin.CreateTable
649
+ class CreateTableRequest
650
+ include Google::Apis::Core::Hashable
651
+
652
+ # The optional list of row keys that will be used to initially split the table
653
+ # into several tablets (tablets are similar to HBase regions). Given two split
654
+ # keys, `s1` and `s2`, three tablets will be created, spanning the key ranges: `[
655
+ # , s1), [s1, s2), [s2, )`. Example: * Row keys := `["a", "apple", "custom", "
656
+ # customer_1", "customer_2",` `"other", "zz"]` * initial_split_keys := `["apple",
657
+ # "customer_1", "customer_2", "other"]` * Key assignment: - Tablet 1 `[, apple)
658
+ # => `"a"`.` - Tablet 2 `[apple, customer_1) => `"apple", "custom"`.` - Tablet 3
659
+ # `[customer_1, customer_2) => `"customer_1"`.` - Tablet 4 `[customer_2, other) =
660
+ # > `"customer_2"`.` - Tablet 5 `[other, ) => `"other", "zz"`.`
661
+ # Corresponds to the JSON property `initialSplits`
662
+ # @return [Array<Google::Apis::BigtableadminV2::Split>]
663
+ attr_accessor :initial_splits
664
+
665
+ # A collection of user data indexed by row, column, and timestamp. Each table is
666
+ # served using the resources of its parent cluster.
667
+ # Corresponds to the JSON property `table`
668
+ # @return [Google::Apis::BigtableadminV2::Table]
669
+ attr_accessor :table
670
+
671
+ # Required. The name by which the new table should be referred to within the
672
+ # parent instance, e.g., `foobar` rather than ``parent`/tables/foobar`. Maximum
673
+ # 50 characters.
674
+ # Corresponds to the JSON property `tableId`
675
+ # @return [String]
676
+ attr_accessor :table_id
677
+
678
+ def initialize(**args)
679
+ update!(**args)
680
+ end
681
+
682
+ # Update properties of this object
683
+ def update!(**args)
684
+ @initial_splits = args[:initial_splits] if args.key?(:initial_splits)
685
+ @table = args[:table] if args.key?(:table)
686
+ @table_id = args[:table_id] if args.key?(:table_id)
687
+ end
688
+ end
689
+
690
+ # Request message for google.bigtable.admin.v2.BigtableTableAdmin.DropRowRange
691
+ class DropRowRangeRequest
692
+ include Google::Apis::Core::Hashable
693
+
694
+ # Delete all rows in the table. Setting this to false is a no-op.
695
+ # Corresponds to the JSON property `deleteAllDataFromTable`
696
+ # @return [Boolean]
697
+ attr_accessor :delete_all_data_from_table
698
+ alias_method :delete_all_data_from_table?, :delete_all_data_from_table
699
+
700
+ # Delete all rows that start with this row key prefix. Prefix cannot be zero
701
+ # length.
702
+ # Corresponds to the JSON property `rowKeyPrefix`
703
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
704
+ # @return [String]
705
+ attr_accessor :row_key_prefix
706
+
707
+ def initialize(**args)
708
+ update!(**args)
709
+ end
710
+
711
+ # Update properties of this object
712
+ def update!(**args)
713
+ @delete_all_data_from_table = args[:delete_all_data_from_table] if args.key?(:delete_all_data_from_table)
714
+ @row_key_prefix = args[:row_key_prefix] if args.key?(:row_key_prefix)
715
+ end
716
+ end
717
+
718
+ # A generic empty message that you can re-use to avoid defining duplicated empty
719
+ # messages in your APIs. A typical example is to use it as the request or the
720
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
721
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
722
+ # `Empty` is empty JSON object ````.
723
+ class Empty
724
+ include Google::Apis::Core::Hashable
725
+
726
+ def initialize(**args)
727
+ update!(**args)
728
+ end
729
+
730
+ # Update properties of this object
731
+ def update!(**args)
732
+ end
733
+ end
734
+
735
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
736
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
737
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
738
+ # "Summary size limit" description: "Determines if a summary is less than 100
739
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
740
+ # Requestor is owner" description: "Determines if requestor is the document
741
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
742
+ # Logic): title: "Public documents" description: "Determine whether the document
743
+ # should be publicly visible" expression: "document.type != 'private' &&
744
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
745
+ # string" description: "Create a notification string with a timestamp."
746
+ # expression: "'New message received at ' + string(document.create_time)" The
747
+ # exact variables and functions that may be referenced within an expression are
748
+ # determined by the service that evaluates it. See the service documentation for
749
+ # additional information.
750
+ class Expr
751
+ include Google::Apis::Core::Hashable
752
+
753
+ # Optional. Description of the expression. This is a longer text which describes
754
+ # the expression, e.g. when hovered over it in a UI.
755
+ # Corresponds to the JSON property `description`
756
+ # @return [String]
757
+ attr_accessor :description
758
+
759
+ # Textual representation of an expression in Common Expression Language syntax.
760
+ # Corresponds to the JSON property `expression`
761
+ # @return [String]
762
+ attr_accessor :expression
763
+
764
+ # Optional. String indicating the location of the expression for error reporting,
765
+ # e.g. a file name and a position in the file.
766
+ # Corresponds to the JSON property `location`
767
+ # @return [String]
768
+ attr_accessor :location
769
+
770
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
771
+ # This can be used e.g. in UIs which allow to enter the expression.
772
+ # Corresponds to the JSON property `title`
773
+ # @return [String]
774
+ attr_accessor :title
775
+
776
+ def initialize(**args)
777
+ update!(**args)
778
+ end
779
+
780
+ # Update properties of this object
781
+ def update!(**args)
782
+ @description = args[:description] if args.key?(:description)
783
+ @expression = args[:expression] if args.key?(:expression)
784
+ @location = args[:location] if args.key?(:location)
785
+ @title = args[:title] if args.key?(:title)
786
+ end
787
+ end
788
+
789
+ # Added to the error payload.
790
+ class FailureTrace
791
+ include Google::Apis::Core::Hashable
792
+
793
+ #
794
+ # Corresponds to the JSON property `frames`
795
+ # @return [Array<Google::Apis::BigtableadminV2::Frame>]
796
+ attr_accessor :frames
797
+
798
+ def initialize(**args)
799
+ update!(**args)
800
+ end
801
+
802
+ # Update properties of this object
803
+ def update!(**args)
804
+ @frames = args[:frames] if args.key?(:frames)
805
+ end
806
+ end
807
+
808
+ #
809
+ class Frame
810
+ include Google::Apis::Core::Hashable
811
+
812
+ #
813
+ # Corresponds to the JSON property `targetName`
814
+ # @return [String]
815
+ attr_accessor :target_name
816
+
817
+ #
818
+ # Corresponds to the JSON property `workflowGuid`
819
+ # @return [String]
820
+ attr_accessor :workflow_guid
821
+
822
+ #
823
+ # Corresponds to the JSON property `zoneId`
824
+ # @return [String]
825
+ attr_accessor :zone_id
826
+
827
+ def initialize(**args)
828
+ update!(**args)
829
+ end
830
+
831
+ # Update properties of this object
832
+ def update!(**args)
833
+ @target_name = args[:target_name] if args.key?(:target_name)
834
+ @workflow_guid = args[:workflow_guid] if args.key?(:workflow_guid)
835
+ @zone_id = args[:zone_id] if args.key?(:zone_id)
836
+ end
837
+ end
838
+
839
+ # Rule for determining which cells to delete during garbage collection.
840
+ class GcRule
841
+ include Google::Apis::Core::Hashable
842
+
843
+ # A GcRule which deletes cells matching all of the given rules.
844
+ # Corresponds to the JSON property `intersection`
845
+ # @return [Google::Apis::BigtableadminV2::Intersection]
846
+ attr_accessor :intersection
847
+
848
+ # Delete cells in a column older than the given age. Values must be at least one
849
+ # millisecond, and will be truncated to microsecond granularity.
850
+ # Corresponds to the JSON property `maxAge`
851
+ # @return [String]
852
+ attr_accessor :max_age
853
+
854
+ # Delete all cells in a column except the most recent N.
855
+ # Corresponds to the JSON property `maxNumVersions`
856
+ # @return [Fixnum]
857
+ attr_accessor :max_num_versions
858
+
859
+ # A GcRule which deletes cells matching any of the given rules.
860
+ # Corresponds to the JSON property `union`
861
+ # @return [Google::Apis::BigtableadminV2::Union]
862
+ attr_accessor :union
863
+
864
+ def initialize(**args)
865
+ update!(**args)
866
+ end
867
+
868
+ # Update properties of this object
869
+ def update!(**args)
870
+ @intersection = args[:intersection] if args.key?(:intersection)
871
+ @max_age = args[:max_age] if args.key?(:max_age)
872
+ @max_num_versions = args[:max_num_versions] if args.key?(:max_num_versions)
873
+ @union = args[:union] if args.key?(:union)
874
+ end
875
+ end
876
+
877
+ # Request message for google.bigtable.admin.v2.BigtableTableAdmin.
878
+ # GenerateConsistencyToken
879
+ class GenerateConsistencyTokenRequest
880
+ include Google::Apis::Core::Hashable
881
+
882
+ def initialize(**args)
883
+ update!(**args)
884
+ end
885
+
886
+ # Update properties of this object
887
+ def update!(**args)
888
+ end
889
+ end
890
+
891
+ # Response message for google.bigtable.admin.v2.BigtableTableAdmin.
892
+ # GenerateConsistencyToken
893
+ class GenerateConsistencyTokenResponse
894
+ include Google::Apis::Core::Hashable
895
+
896
+ # The generated consistency token.
897
+ # Corresponds to the JSON property `consistencyToken`
898
+ # @return [String]
899
+ attr_accessor :consistency_token
900
+
901
+ def initialize(**args)
902
+ update!(**args)
903
+ end
904
+
905
+ # Update properties of this object
906
+ def update!(**args)
907
+ @consistency_token = args[:consistency_token] if args.key?(:consistency_token)
908
+ end
909
+ end
910
+
911
+ # Request message for `GetIamPolicy` method.
912
+ class GetIamPolicyRequest
913
+ include Google::Apis::Core::Hashable
914
+
915
+ # Encapsulates settings provided to GetIamPolicy.
916
+ # Corresponds to the JSON property `options`
917
+ # @return [Google::Apis::BigtableadminV2::GetPolicyOptions]
918
+ attr_accessor :options
919
+
920
+ def initialize(**args)
921
+ update!(**args)
922
+ end
923
+
924
+ # Update properties of this object
925
+ def update!(**args)
926
+ @options = args[:options] if args.key?(:options)
927
+ end
928
+ end
929
+
930
+ # Encapsulates settings provided to GetIamPolicy.
931
+ class GetPolicyOptions
932
+ include Google::Apis::Core::Hashable
933
+
934
+ # Optional. The policy format version to be returned. Valid values are 0, 1, and
935
+ # 3. Requests specifying an invalid value will be rejected. Requests for
936
+ # policies with any conditional bindings must specify version 3. Policies
937
+ # without any conditional bindings may specify any valid value or leave the
938
+ # field unset. To learn which resources support conditions in their IAM policies,
939
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
940
+ # resource-policies).
941
+ # Corresponds to the JSON property `requestedPolicyVersion`
942
+ # @return [Fixnum]
943
+ attr_accessor :requested_policy_version
944
+
945
+ def initialize(**args)
946
+ update!(**args)
947
+ end
948
+
949
+ # Update properties of this object
950
+ def update!(**args)
951
+ @requested_policy_version = args[:requested_policy_version] if args.key?(:requested_policy_version)
952
+ end
953
+ end
954
+
955
+ # A collection of Bigtable Tables and the resources that serve them. All tables
956
+ # in an instance are served from all Clusters in the instance.
957
+ class Instance
958
+ include Google::Apis::Core::Hashable
959
+
960
+ # Required. The descriptive name for this instance as it appears in UIs. Can be
961
+ # changed at any time, but should be kept globally unique to avoid confusion.
962
+ # Corresponds to the JSON property `displayName`
963
+ # @return [String]
964
+ attr_accessor :display_name
965
+
966
+ # Required. Labels are a flexible and lightweight mechanism for organizing cloud
967
+ # resources into groups that reflect a customer's organizational needs and
968
+ # deployment strategies. They can be used to filter resources and aggregate
969
+ # metrics. * Label keys must be between 1 and 63 characters long and must
970
+ # conform to the regular expression: `\p`Ll`\p`Lo``0,62``. * Label values must
971
+ # be between 0 and 63 characters long and must conform to the regular expression:
972
+ # `[\p`Ll`\p`Lo`\p`N`_-]`0,63``. * No more than 64 labels can be associated
973
+ # with a given resource. * Keys and values must both be under 128 bytes.
974
+ # Corresponds to the JSON property `labels`
975
+ # @return [Hash<String,String>]
976
+ attr_accessor :labels
977
+
978
+ # The unique name of the instance. Values are of the form `projects/`project`/
979
+ # instances/a-z+[a-z0-9]`.
980
+ # Corresponds to the JSON property `name`
981
+ # @return [String]
982
+ attr_accessor :name
983
+
984
+ # Output only. The current state of the instance.
985
+ # Corresponds to the JSON property `state`
986
+ # @return [String]
987
+ attr_accessor :state
988
+
989
+ # Required. The type of the instance. Defaults to `PRODUCTION`.
990
+ # Corresponds to the JSON property `type`
991
+ # @return [String]
992
+ attr_accessor :type
993
+
994
+ def initialize(**args)
995
+ update!(**args)
996
+ end
997
+
998
+ # Update properties of this object
999
+ def update!(**args)
1000
+ @display_name = args[:display_name] if args.key?(:display_name)
1001
+ @labels = args[:labels] if args.key?(:labels)
1002
+ @name = args[:name] if args.key?(:name)
1003
+ @state = args[:state] if args.key?(:state)
1004
+ @type = args[:type] if args.key?(:type)
1005
+ end
1006
+ end
1007
+
1008
+ # A GcRule which deletes cells matching all of the given rules.
1009
+ class Intersection
1010
+ include Google::Apis::Core::Hashable
1011
+
1012
+ # Only delete cells which would be deleted by every element of `rules`.
1013
+ # Corresponds to the JSON property `rules`
1014
+ # @return [Array<Google::Apis::BigtableadminV2::GcRule>]
1015
+ attr_accessor :rules
1016
+
1017
+ def initialize(**args)
1018
+ update!(**args)
1019
+ end
1020
+
1021
+ # Update properties of this object
1022
+ def update!(**args)
1023
+ @rules = args[:rules] if args.key?(:rules)
1024
+ end
1025
+ end
1026
+
1027
+ # Response message for BigtableInstanceAdmin.ListAppProfiles.
1028
+ class ListAppProfilesResponse
1029
+ include Google::Apis::Core::Hashable
1030
+
1031
+ # The list of requested app profiles.
1032
+ # Corresponds to the JSON property `appProfiles`
1033
+ # @return [Array<Google::Apis::BigtableadminV2::AppProfile>]
1034
+ attr_accessor :app_profiles
1035
+
1036
+ # Locations from which AppProfile information could not be retrieved, due to an
1037
+ # outage or some other transient condition. AppProfiles from these locations may
1038
+ # be missing from `app_profiles`. Values are of the form `projects//locations/`
1039
+ # Corresponds to the JSON property `failedLocations`
1040
+ # @return [Array<String>]
1041
+ attr_accessor :failed_locations
1042
+
1043
+ # Set if not all app profiles could be returned in a single response. Pass this
1044
+ # value to `page_token` in another request to get the next page of results.
1045
+ # Corresponds to the JSON property `nextPageToken`
1046
+ # @return [String]
1047
+ attr_accessor :next_page_token
1048
+
1049
+ def initialize(**args)
1050
+ update!(**args)
1051
+ end
1052
+
1053
+ # Update properties of this object
1054
+ def update!(**args)
1055
+ @app_profiles = args[:app_profiles] if args.key?(:app_profiles)
1056
+ @failed_locations = args[:failed_locations] if args.key?(:failed_locations)
1057
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1058
+ end
1059
+ end
1060
+
1061
+ # The response for ListBackups.
1062
+ class ListBackupsResponse
1063
+ include Google::Apis::Core::Hashable
1064
+
1065
+ # The list of matching backups.
1066
+ # Corresponds to the JSON property `backups`
1067
+ # @return [Array<Google::Apis::BigtableadminV2::Backup>]
1068
+ attr_accessor :backups
1069
+
1070
+ # `next_page_token` can be sent in a subsequent ListBackups call to fetch more
1071
+ # of the matching backups.
1072
+ # Corresponds to the JSON property `nextPageToken`
1073
+ # @return [String]
1074
+ attr_accessor :next_page_token
1075
+
1076
+ def initialize(**args)
1077
+ update!(**args)
1078
+ end
1079
+
1080
+ # Update properties of this object
1081
+ def update!(**args)
1082
+ @backups = args[:backups] if args.key?(:backups)
1083
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1084
+ end
1085
+ end
1086
+
1087
+ # Response message for BigtableInstanceAdmin.ListClusters.
1088
+ class ListClustersResponse
1089
+ include Google::Apis::Core::Hashable
1090
+
1091
+ # The list of requested clusters.
1092
+ # Corresponds to the JSON property `clusters`
1093
+ # @return [Array<Google::Apis::BigtableadminV2::Cluster>]
1094
+ attr_accessor :clusters
1095
+
1096
+ # Locations from which Cluster information could not be retrieved, due to an
1097
+ # outage or some other transient condition. Clusters from these locations may be
1098
+ # missing from `clusters`, or may only have partial information returned. Values
1099
+ # are of the form `projects//locations/`
1100
+ # Corresponds to the JSON property `failedLocations`
1101
+ # @return [Array<String>]
1102
+ attr_accessor :failed_locations
1103
+
1104
+ # DEPRECATED: This field is unused and ignored.
1105
+ # Corresponds to the JSON property `nextPageToken`
1106
+ # @return [String]
1107
+ attr_accessor :next_page_token
1108
+
1109
+ def initialize(**args)
1110
+ update!(**args)
1111
+ end
1112
+
1113
+ # Update properties of this object
1114
+ def update!(**args)
1115
+ @clusters = args[:clusters] if args.key?(:clusters)
1116
+ @failed_locations = args[:failed_locations] if args.key?(:failed_locations)
1117
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1118
+ end
1119
+ end
1120
+
1121
+ # Response message for BigtableInstanceAdmin.ListInstances.
1122
+ class ListInstancesResponse
1123
+ include Google::Apis::Core::Hashable
1124
+
1125
+ # Locations from which Instance information could not be retrieved, due to an
1126
+ # outage or some other transient condition. Instances whose Clusters are all in
1127
+ # one of the failed locations may be missing from `instances`, and Instances
1128
+ # with at least one Cluster in a failed location may only have partial
1129
+ # information returned. Values are of the form `projects//locations/`
1130
+ # Corresponds to the JSON property `failedLocations`
1131
+ # @return [Array<String>]
1132
+ attr_accessor :failed_locations
1133
+
1134
+ # The list of requested instances.
1135
+ # Corresponds to the JSON property `instances`
1136
+ # @return [Array<Google::Apis::BigtableadminV2::Instance>]
1137
+ attr_accessor :instances
1138
+
1139
+ # DEPRECATED: This field is unused and ignored.
1140
+ # Corresponds to the JSON property `nextPageToken`
1141
+ # @return [String]
1142
+ attr_accessor :next_page_token
1143
+
1144
+ def initialize(**args)
1145
+ update!(**args)
1146
+ end
1147
+
1148
+ # Update properties of this object
1149
+ def update!(**args)
1150
+ @failed_locations = args[:failed_locations] if args.key?(:failed_locations)
1151
+ @instances = args[:instances] if args.key?(:instances)
1152
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1153
+ end
1154
+ end
1155
+
1156
+ # The response message for Locations.ListLocations.
1157
+ class ListLocationsResponse
1158
+ include Google::Apis::Core::Hashable
1159
+
1160
+ # A list of locations that matches the specified filter in the request.
1161
+ # Corresponds to the JSON property `locations`
1162
+ # @return [Array<Google::Apis::BigtableadminV2::Location>]
1163
+ attr_accessor :locations
1164
+
1165
+ # The standard List next-page token.
1166
+ # Corresponds to the JSON property `nextPageToken`
1167
+ # @return [String]
1168
+ attr_accessor :next_page_token
1169
+
1170
+ def initialize(**args)
1171
+ update!(**args)
1172
+ end
1173
+
1174
+ # Update properties of this object
1175
+ def update!(**args)
1176
+ @locations = args[:locations] if args.key?(:locations)
1177
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1178
+ end
1179
+ end
1180
+
1181
+ # The response message for Operations.ListOperations.
1182
+ class ListOperationsResponse
1183
+ include Google::Apis::Core::Hashable
1184
+
1185
+ # The standard List next-page token.
1186
+ # Corresponds to the JSON property `nextPageToken`
1187
+ # @return [String]
1188
+ attr_accessor :next_page_token
1189
+
1190
+ # A list of operations that matches the specified filter in the request.
1191
+ # Corresponds to the JSON property `operations`
1192
+ # @return [Array<Google::Apis::BigtableadminV2::Operation>]
1193
+ attr_accessor :operations
1194
+
1195
+ def initialize(**args)
1196
+ update!(**args)
1197
+ end
1198
+
1199
+ # Update properties of this object
1200
+ def update!(**args)
1201
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1202
+ @operations = args[:operations] if args.key?(:operations)
1203
+ end
1204
+ end
1205
+
1206
+ # Response message for google.bigtable.admin.v2.BigtableTableAdmin.ListTables
1207
+ class ListTablesResponse
1208
+ include Google::Apis::Core::Hashable
1209
+
1210
+ # Set if not all tables could be returned in a single response. Pass this value
1211
+ # to `page_token` in another request to get the next page of results.
1212
+ # Corresponds to the JSON property `nextPageToken`
1213
+ # @return [String]
1214
+ attr_accessor :next_page_token
1215
+
1216
+ # The tables present in the requested instance.
1217
+ # Corresponds to the JSON property `tables`
1218
+ # @return [Array<Google::Apis::BigtableadminV2::Table>]
1219
+ attr_accessor :tables
1220
+
1221
+ def initialize(**args)
1222
+ update!(**args)
1223
+ end
1224
+
1225
+ # Update properties of this object
1226
+ def update!(**args)
1227
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1228
+ @tables = args[:tables] if args.key?(:tables)
1229
+ end
1230
+ end
1231
+
1232
+ # A resource that represents Google Cloud Platform location.
1233
+ class Location
1234
+ include Google::Apis::Core::Hashable
1235
+
1236
+ # The friendly name for this location, typically a nearby city name. For example,
1237
+ # "Tokyo".
1238
+ # Corresponds to the JSON property `displayName`
1239
+ # @return [String]
1240
+ attr_accessor :display_name
1241
+
1242
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
1243
+ # region": "us-east1"`
1244
+ # Corresponds to the JSON property `labels`
1245
+ # @return [Hash<String,String>]
1246
+ attr_accessor :labels
1247
+
1248
+ # The canonical id for this location. For example: `"us-east1"`.
1249
+ # Corresponds to the JSON property `locationId`
1250
+ # @return [String]
1251
+ attr_accessor :location_id
1252
+
1253
+ # Service-specific metadata. For example the available capacity at the given
1254
+ # location.
1255
+ # Corresponds to the JSON property `metadata`
1256
+ # @return [Hash<String,Object>]
1257
+ attr_accessor :metadata
1258
+
1259
+ # Resource name for the location, which may vary between implementations. For
1260
+ # example: `"projects/example-project/locations/us-east1"`
1261
+ # Corresponds to the JSON property `name`
1262
+ # @return [String]
1263
+ attr_accessor :name
1264
+
1265
+ def initialize(**args)
1266
+ update!(**args)
1267
+ end
1268
+
1269
+ # Update properties of this object
1270
+ def update!(**args)
1271
+ @display_name = args[:display_name] if args.key?(:display_name)
1272
+ @labels = args[:labels] if args.key?(:labels)
1273
+ @location_id = args[:location_id] if args.key?(:location_id)
1274
+ @metadata = args[:metadata] if args.key?(:metadata)
1275
+ @name = args[:name] if args.key?(:name)
1276
+ end
1277
+ end
1278
+
1279
+ # A create, update, or delete of a particular column family.
1280
+ class Modification
1281
+ include Google::Apis::Core::Hashable
1282
+
1283
+ # A set of columns within a table which share a common configuration.
1284
+ # Corresponds to the JSON property `create`
1285
+ # @return [Google::Apis::BigtableadminV2::ColumnFamily]
1286
+ attr_accessor :create
1287
+
1288
+ # Drop (delete) the column family with the given ID, or fail if no such family
1289
+ # exists.
1290
+ # Corresponds to the JSON property `drop`
1291
+ # @return [Boolean]
1292
+ attr_accessor :drop
1293
+ alias_method :drop?, :drop
1294
+
1295
+ # The ID of the column family to be modified.
1296
+ # Corresponds to the JSON property `id`
1297
+ # @return [String]
1298
+ attr_accessor :id
1299
+
1300
+ # A set of columns within a table which share a common configuration.
1301
+ # Corresponds to the JSON property `update`
1302
+ # @return [Google::Apis::BigtableadminV2::ColumnFamily]
1303
+ attr_accessor :update
1304
+
1305
+ def initialize(**args)
1306
+ update!(**args)
1307
+ end
1308
+
1309
+ # Update properties of this object
1310
+ def update!(**args)
1311
+ @create = args[:create] if args.key?(:create)
1312
+ @drop = args[:drop] if args.key?(:drop)
1313
+ @id = args[:id] if args.key?(:id)
1314
+ @update = args[:update] if args.key?(:update)
1315
+ end
1316
+ end
1317
+
1318
+ # Request message for google.bigtable.admin.v2.BigtableTableAdmin.
1319
+ # ModifyColumnFamilies
1320
+ class ModifyColumnFamiliesRequest
1321
+ include Google::Apis::Core::Hashable
1322
+
1323
+ # Required. Modifications to be atomically applied to the specified table's
1324
+ # families. Entries are applied in order, meaning that earlier modifications can
1325
+ # be masked by later ones (in the case of repeated updates to the same family,
1326
+ # for example).
1327
+ # Corresponds to the JSON property `modifications`
1328
+ # @return [Array<Google::Apis::BigtableadminV2::Modification>]
1329
+ attr_accessor :modifications
1330
+
1331
+ def initialize(**args)
1332
+ update!(**args)
1333
+ end
1334
+
1335
+ # Update properties of this object
1336
+ def update!(**args)
1337
+ @modifications = args[:modifications] if args.key?(:modifications)
1338
+ end
1339
+ end
1340
+
1341
+ # Read/write requests are routed to the nearest cluster in the instance, and
1342
+ # will fail over to the nearest cluster that is available in the event of
1343
+ # transient errors or delays. Clusters in a region are considered equidistant.
1344
+ # Choosing this option sacrifices read-your-writes consistency to improve
1345
+ # availability.
1346
+ class MultiClusterRoutingUseAny
1347
+ include Google::Apis::Core::Hashable
1348
+
1349
+ def initialize(**args)
1350
+ update!(**args)
1351
+ end
1352
+
1353
+ # Update properties of this object
1354
+ def update!(**args)
1355
+ end
1356
+ end
1357
+
1358
+ # This resource represents a long-running operation that is the result of a
1359
+ # network API call.
1360
+ class Operation
1361
+ include Google::Apis::Core::Hashable
1362
+
1363
+ # If the value is `false`, it means the operation is still in progress. If `true`
1364
+ # , the operation is completed, and either `error` or `response` is available.
1365
+ # Corresponds to the JSON property `done`
1366
+ # @return [Boolean]
1367
+ attr_accessor :done
1368
+ alias_method :done?, :done
1369
+
1370
+ # The `Status` type defines a logical error model that is suitable for different
1371
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1372
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1373
+ # data: error code, error message, and error details. You can find out more
1374
+ # about this error model and how to work with it in the [API Design Guide](https:
1375
+ # //cloud.google.com/apis/design/errors).
1376
+ # Corresponds to the JSON property `error`
1377
+ # @return [Google::Apis::BigtableadminV2::Status]
1378
+ attr_accessor :error
1379
+
1380
+ # Service-specific metadata associated with the operation. It typically contains
1381
+ # progress information and common metadata such as create time. Some services
1382
+ # might not provide such metadata. Any method that returns a long-running
1383
+ # operation should document the metadata type, if any.
1384
+ # Corresponds to the JSON property `metadata`
1385
+ # @return [Hash<String,Object>]
1386
+ attr_accessor :metadata
1387
+
1388
+ # The server-assigned name, which is only unique within the same service that
1389
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1390
+ # be a resource name ending with `operations/`unique_id``.
1391
+ # Corresponds to the JSON property `name`
1392
+ # @return [String]
1393
+ attr_accessor :name
1394
+
1395
+ # The normal response of the operation in case of success. If the original
1396
+ # method returns no data on success, such as `Delete`, the response is `google.
1397
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1398
+ # the response should be the resource. For other methods, the response should
1399
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1400
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1401
+ # response type is `TakeSnapshotResponse`.
1402
+ # Corresponds to the JSON property `response`
1403
+ # @return [Hash<String,Object>]
1404
+ attr_accessor :response
1405
+
1406
+ def initialize(**args)
1407
+ update!(**args)
1408
+ end
1409
+
1410
+ # Update properties of this object
1411
+ def update!(**args)
1412
+ @done = args[:done] if args.key?(:done)
1413
+ @error = args[:error] if args.key?(:error)
1414
+ @metadata = args[:metadata] if args.key?(:metadata)
1415
+ @name = args[:name] if args.key?(:name)
1416
+ @response = args[:response] if args.key?(:response)
1417
+ end
1418
+ end
1419
+
1420
+ # Encapsulates progress related information for a Cloud Bigtable long running
1421
+ # operation.
1422
+ class OperationProgress
1423
+ include Google::Apis::Core::Hashable
1424
+
1425
+ # If set, the time at which this operation failed or was completed successfully.
1426
+ # Corresponds to the JSON property `endTime`
1427
+ # @return [String]
1428
+ attr_accessor :end_time
1429
+
1430
+ # Percent completion of the operation. Values are between 0 and 100 inclusive.
1431
+ # Corresponds to the JSON property `progressPercent`
1432
+ # @return [Fixnum]
1433
+ attr_accessor :progress_percent
1434
+
1435
+ # Time the request was received.
1436
+ # Corresponds to the JSON property `startTime`
1437
+ # @return [String]
1438
+ attr_accessor :start_time
1439
+
1440
+ def initialize(**args)
1441
+ update!(**args)
1442
+ end
1443
+
1444
+ # Update properties of this object
1445
+ def update!(**args)
1446
+ @end_time = args[:end_time] if args.key?(:end_time)
1447
+ @progress_percent = args[:progress_percent] if args.key?(:progress_percent)
1448
+ @start_time = args[:start_time] if args.key?(:start_time)
1449
+ end
1450
+ end
1451
+
1452
+ # Metadata type for the long-running operation used to track the progress of
1453
+ # optimizations performed on a newly restored table. This long-running operation
1454
+ # is automatically created by the system after the successful completion of a
1455
+ # table restore, and cannot be cancelled.
1456
+ class OptimizeRestoredTableMetadata
1457
+ include Google::Apis::Core::Hashable
1458
+
1459
+ # Name of the restored table being optimized.
1460
+ # Corresponds to the JSON property `name`
1461
+ # @return [String]
1462
+ attr_accessor :name
1463
+
1464
+ # Encapsulates progress related information for a Cloud Bigtable long running
1465
+ # operation.
1466
+ # Corresponds to the JSON property `progress`
1467
+ # @return [Google::Apis::BigtableadminV2::OperationProgress]
1468
+ attr_accessor :progress
1469
+
1470
+ def initialize(**args)
1471
+ update!(**args)
1472
+ end
1473
+
1474
+ # Update properties of this object
1475
+ def update!(**args)
1476
+ @name = args[:name] if args.key?(:name)
1477
+ @progress = args[:progress] if args.key?(:progress)
1478
+ end
1479
+ end
1480
+
1481
+ # Request message for BigtableInstanceAdmin.PartialUpdateInstance.
1482
+ class PartialUpdateInstanceRequest
1483
+ include Google::Apis::Core::Hashable
1484
+
1485
+ # A collection of Bigtable Tables and the resources that serve them. All tables
1486
+ # in an instance are served from all Clusters in the instance.
1487
+ # Corresponds to the JSON property `instance`
1488
+ # @return [Google::Apis::BigtableadminV2::Instance]
1489
+ attr_accessor :instance
1490
+
1491
+ # Required. The subset of Instance fields which should be replaced. Must be
1492
+ # explicitly set.
1493
+ # Corresponds to the JSON property `updateMask`
1494
+ # @return [String]
1495
+ attr_accessor :update_mask
1496
+
1497
+ def initialize(**args)
1498
+ update!(**args)
1499
+ end
1500
+
1501
+ # Update properties of this object
1502
+ def update!(**args)
1503
+ @instance = args[:instance] if args.key?(:instance)
1504
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1505
+ end
1506
+ end
1507
+
1508
+ # An Identity and Access Management (IAM) policy, which specifies access
1509
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1510
+ # A `binding` binds one or more `members` to a single `role`. Members can be
1511
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
1512
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
1513
+ # role or a user-created custom role. For some types of Google Cloud resources,
1514
+ # a `binding` can also specify a `condition`, which is a logical expression that
1515
+ # allows access to a resource only if the expression evaluates to `true`. A
1516
+ # condition can add constraints based on attributes of the request, the resource,
1517
+ # or both. To learn which resources support conditions in their IAM policies,
1518
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1519
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1520
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1521
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1522
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1523
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1524
+ # title": "expirable access", "description": "Does not grant access after Sep
1525
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1526
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1527
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
1528
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1529
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1530
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1531
+ # description: Does not grant access after Sep 2020 expression: request.time <
1532
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
1533
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
1534
+ # google.com/iam/docs/).
1535
+ class Policy
1536
+ include Google::Apis::Core::Hashable
1537
+
1538
+ # Specifies cloud audit logging configuration for this policy.
1539
+ # Corresponds to the JSON property `auditConfigs`
1540
+ # @return [Array<Google::Apis::BigtableadminV2::AuditConfig>]
1541
+ attr_accessor :audit_configs
1542
+
1543
+ # Associates a list of `members` to a `role`. Optionally, may specify a `
1544
+ # condition` that determines how and when the `bindings` are applied. Each of
1545
+ # the `bindings` must contain at least one member.
1546
+ # Corresponds to the JSON property `bindings`
1547
+ # @return [Array<Google::Apis::BigtableadminV2::Binding>]
1548
+ attr_accessor :bindings
1549
+
1550
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1551
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1552
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1553
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1554
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1555
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1556
+ # applied to the same version of the policy. **Important:** If you use IAM
1557
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1558
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1559
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1560
+ # are lost.
1561
+ # Corresponds to the JSON property `etag`
1562
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1563
+ # @return [String]
1564
+ attr_accessor :etag
1565
+
1566
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1567
+ # Requests that specify an invalid value are rejected. Any operation that
1568
+ # affects conditional role bindings must specify version `3`. This requirement
1569
+ # applies to the following operations: * Getting a policy that includes a
1570
+ # conditional role binding * Adding a conditional role binding to a policy *
1571
+ # Changing a conditional role binding in a policy * Removing any role binding,
1572
+ # with or without a condition, from a policy that includes conditions **
1573
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1574
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1575
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1576
+ # conditions in the version `3` policy are lost. If a policy does not include
1577
+ # any conditions, operations on that policy may specify any valid version or
1578
+ # leave the field unset. To learn which resources support conditions in their
1579
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1580
+ # conditions/resource-policies).
1581
+ # Corresponds to the JSON property `version`
1582
+ # @return [Fixnum]
1583
+ attr_accessor :version
1584
+
1585
+ def initialize(**args)
1586
+ update!(**args)
1587
+ end
1588
+
1589
+ # Update properties of this object
1590
+ def update!(**args)
1591
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1592
+ @bindings = args[:bindings] if args.key?(:bindings)
1593
+ @etag = args[:etag] if args.key?(:etag)
1594
+ @version = args[:version] if args.key?(:version)
1595
+ end
1596
+ end
1597
+
1598
+ # Information about a table restore.
1599
+ class RestoreInfo
1600
+ include Google::Apis::Core::Hashable
1601
+
1602
+ # Information about a backup.
1603
+ # Corresponds to the JSON property `backupInfo`
1604
+ # @return [Google::Apis::BigtableadminV2::BackupInfo]
1605
+ attr_accessor :backup_info
1606
+
1607
+ # The type of the restore source.
1608
+ # Corresponds to the JSON property `sourceType`
1609
+ # @return [String]
1610
+ attr_accessor :source_type
1611
+
1612
+ def initialize(**args)
1613
+ update!(**args)
1614
+ end
1615
+
1616
+ # Update properties of this object
1617
+ def update!(**args)
1618
+ @backup_info = args[:backup_info] if args.key?(:backup_info)
1619
+ @source_type = args[:source_type] if args.key?(:source_type)
1620
+ end
1621
+ end
1622
+
1623
+ # Metadata type for the long-running operation returned by RestoreTable.
1624
+ class RestoreTableMetadata
1625
+ include Google::Apis::Core::Hashable
1626
+
1627
+ # Information about a backup.
1628
+ # Corresponds to the JSON property `backupInfo`
1629
+ # @return [Google::Apis::BigtableadminV2::BackupInfo]
1630
+ attr_accessor :backup_info
1631
+
1632
+ # Name of the table being created and restored to.
1633
+ # Corresponds to the JSON property `name`
1634
+ # @return [String]
1635
+ attr_accessor :name
1636
+
1637
+ # If exists, the name of the long-running operation that will be used to track
1638
+ # the post-restore optimization process to optimize the performance of the
1639
+ # restored table. The metadata type of the long-running operation is
1640
+ # OptimizeRestoreTableMetadata. The response type is Empty. This long-running
1641
+ # operation may be automatically created by the system if applicable after the
1642
+ # RestoreTable long-running operation completes successfully. This operation may
1643
+ # not be created if the table is already optimized or the restore was not
1644
+ # successful.
1645
+ # Corresponds to the JSON property `optimizeTableOperationName`
1646
+ # @return [String]
1647
+ attr_accessor :optimize_table_operation_name
1648
+
1649
+ # Encapsulates progress related information for a Cloud Bigtable long running
1650
+ # operation.
1651
+ # Corresponds to the JSON property `progress`
1652
+ # @return [Google::Apis::BigtableadminV2::OperationProgress]
1653
+ attr_accessor :progress
1654
+
1655
+ # The type of the restore source.
1656
+ # Corresponds to the JSON property `sourceType`
1657
+ # @return [String]
1658
+ attr_accessor :source_type
1659
+
1660
+ def initialize(**args)
1661
+ update!(**args)
1662
+ end
1663
+
1664
+ # Update properties of this object
1665
+ def update!(**args)
1666
+ @backup_info = args[:backup_info] if args.key?(:backup_info)
1667
+ @name = args[:name] if args.key?(:name)
1668
+ @optimize_table_operation_name = args[:optimize_table_operation_name] if args.key?(:optimize_table_operation_name)
1669
+ @progress = args[:progress] if args.key?(:progress)
1670
+ @source_type = args[:source_type] if args.key?(:source_type)
1671
+ end
1672
+ end
1673
+
1674
+ # The request for RestoreTable.
1675
+ class RestoreTableRequest
1676
+ include Google::Apis::Core::Hashable
1677
+
1678
+ # Name of the backup from which to restore. Values are of the form `projects//
1679
+ # instances//clusters//backups/`.
1680
+ # Corresponds to the JSON property `backup`
1681
+ # @return [String]
1682
+ attr_accessor :backup
1683
+
1684
+ # Required. The id of the table to create and restore to. This table must not
1685
+ # already exist. The `table_id` appended to `parent` forms the full table name
1686
+ # of the form `projects//instances//tables/`.
1687
+ # Corresponds to the JSON property `tableId`
1688
+ # @return [String]
1689
+ attr_accessor :table_id
1690
+
1691
+ def initialize(**args)
1692
+ update!(**args)
1693
+ end
1694
+
1695
+ # Update properties of this object
1696
+ def update!(**args)
1697
+ @backup = args[:backup] if args.key?(:backup)
1698
+ @table_id = args[:table_id] if args.key?(:table_id)
1699
+ end
1700
+ end
1701
+
1702
+ # Request message for `SetIamPolicy` method.
1703
+ class SetIamPolicyRequest
1704
+ include Google::Apis::Core::Hashable
1705
+
1706
+ # An Identity and Access Management (IAM) policy, which specifies access
1707
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1708
+ # A `binding` binds one or more `members` to a single `role`. Members can be
1709
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
1710
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
1711
+ # role or a user-created custom role. For some types of Google Cloud resources,
1712
+ # a `binding` can also specify a `condition`, which is a logical expression that
1713
+ # allows access to a resource only if the expression evaluates to `true`. A
1714
+ # condition can add constraints based on attributes of the request, the resource,
1715
+ # or both. To learn which resources support conditions in their IAM policies,
1716
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1717
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1718
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1719
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1720
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1721
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1722
+ # title": "expirable access", "description": "Does not grant access after Sep
1723
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1724
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1725
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
1726
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1727
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1728
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1729
+ # description: Does not grant access after Sep 2020 expression: request.time <
1730
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
1731
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
1732
+ # google.com/iam/docs/).
1733
+ # Corresponds to the JSON property `policy`
1734
+ # @return [Google::Apis::BigtableadminV2::Policy]
1735
+ attr_accessor :policy
1736
+
1737
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1738
+ # the fields in the mask will be modified. If no mask is provided, the following
1739
+ # default mask is used: `paths: "bindings, etag"`
1740
+ # Corresponds to the JSON property `updateMask`
1741
+ # @return [String]
1742
+ attr_accessor :update_mask
1743
+
1744
+ def initialize(**args)
1745
+ update!(**args)
1746
+ end
1747
+
1748
+ # Update properties of this object
1749
+ def update!(**args)
1750
+ @policy = args[:policy] if args.key?(:policy)
1751
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1752
+ end
1753
+ end
1754
+
1755
+ # Unconditionally routes all read/write requests to a specific cluster. This
1756
+ # option preserves read-your-writes consistency but does not improve
1757
+ # availability.
1758
+ class SingleClusterRouting
1759
+ include Google::Apis::Core::Hashable
1760
+
1761
+ # Whether or not `CheckAndMutateRow` and `ReadModifyWriteRow` requests are
1762
+ # allowed by this app profile. It is unsafe to send these requests to the same
1763
+ # table/row/column in multiple clusters.
1764
+ # Corresponds to the JSON property `allowTransactionalWrites`
1765
+ # @return [Boolean]
1766
+ attr_accessor :allow_transactional_writes
1767
+ alias_method :allow_transactional_writes?, :allow_transactional_writes
1768
+
1769
+ # The cluster to which read/write requests should be routed.
1770
+ # Corresponds to the JSON property `clusterId`
1771
+ # @return [String]
1772
+ attr_accessor :cluster_id
1773
+
1774
+ def initialize(**args)
1775
+ update!(**args)
1776
+ end
1777
+
1778
+ # Update properties of this object
1779
+ def update!(**args)
1780
+ @allow_transactional_writes = args[:allow_transactional_writes] if args.key?(:allow_transactional_writes)
1781
+ @cluster_id = args[:cluster_id] if args.key?(:cluster_id)
1782
+ end
1783
+ end
1784
+
1785
+ # An initial split point for a newly created table.
1786
+ class Split
1787
+ include Google::Apis::Core::Hashable
1788
+
1789
+ # Row key to use as an initial tablet boundary.
1790
+ # Corresponds to the JSON property `key`
1791
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1792
+ # @return [String]
1793
+ attr_accessor :key
1794
+
1795
+ def initialize(**args)
1796
+ update!(**args)
1797
+ end
1798
+
1799
+ # Update properties of this object
1800
+ def update!(**args)
1801
+ @key = args[:key] if args.key?(:key)
1802
+ end
1803
+ end
1804
+
1805
+ # The `Status` type defines a logical error model that is suitable for different
1806
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1807
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1808
+ # data: error code, error message, and error details. You can find out more
1809
+ # about this error model and how to work with it in the [API Design Guide](https:
1810
+ # //cloud.google.com/apis/design/errors).
1811
+ class Status
1812
+ include Google::Apis::Core::Hashable
1813
+
1814
+ # The status code, which should be an enum value of google.rpc.Code.
1815
+ # Corresponds to the JSON property `code`
1816
+ # @return [Fixnum]
1817
+ attr_accessor :code
1818
+
1819
+ # A list of messages that carry the error details. There is a common set of
1820
+ # message types for APIs to use.
1821
+ # Corresponds to the JSON property `details`
1822
+ # @return [Array<Hash<String,Object>>]
1823
+ attr_accessor :details
1824
+
1825
+ # A developer-facing error message, which should be in English. Any user-facing
1826
+ # error message should be localized and sent in the google.rpc.Status.details
1827
+ # field, or localized by the client.
1828
+ # Corresponds to the JSON property `message`
1829
+ # @return [String]
1830
+ attr_accessor :message
1831
+
1832
+ def initialize(**args)
1833
+ update!(**args)
1834
+ end
1835
+
1836
+ # Update properties of this object
1837
+ def update!(**args)
1838
+ @code = args[:code] if args.key?(:code)
1839
+ @details = args[:details] if args.key?(:details)
1840
+ @message = args[:message] if args.key?(:message)
1841
+ end
1842
+ end
1843
+
1844
+ # A collection of user data indexed by row, column, and timestamp. Each table is
1845
+ # served using the resources of its parent cluster.
1846
+ class Table
1847
+ include Google::Apis::Core::Hashable
1848
+
1849
+ # Output only. Map from cluster ID to per-cluster table state. If it could not
1850
+ # be determined whether or not the table has data in a particular cluster (for
1851
+ # example, if its zone is unavailable), then there will be an entry for the
1852
+ # cluster with UNKNOWN `replication_status`. Views: `REPLICATION_VIEW`, `FULL`
1853
+ # Corresponds to the JSON property `clusterStates`
1854
+ # @return [Hash<String,Google::Apis::BigtableadminV2::ClusterState>]
1855
+ attr_accessor :cluster_states
1856
+
1857
+ # The column families configured for this table, mapped by column family ID.
1858
+ # Views: `SCHEMA_VIEW`, `FULL`
1859
+ # Corresponds to the JSON property `columnFamilies`
1860
+ # @return [Hash<String,Google::Apis::BigtableadminV2::ColumnFamily>]
1861
+ attr_accessor :column_families
1862
+
1863
+ # Immutable. The granularity (i.e. `MILLIS`) at which timestamps are stored in
1864
+ # this table. Timestamps not matching the granularity will be rejected. If
1865
+ # unspecified at creation time, the value will be set to `MILLIS`. Views: `
1866
+ # SCHEMA_VIEW`, `FULL`.
1867
+ # Corresponds to the JSON property `granularity`
1868
+ # @return [String]
1869
+ attr_accessor :granularity
1870
+
1871
+ # The unique name of the table. Values are of the form `projects/`project`/
1872
+ # instances/`instance`/tables/_a-zA-Z0-9*`. Views: `NAME_ONLY`, `SCHEMA_VIEW`, `
1873
+ # REPLICATION_VIEW`, `FULL`
1874
+ # Corresponds to the JSON property `name`
1875
+ # @return [String]
1876
+ attr_accessor :name
1877
+
1878
+ # Information about a table restore.
1879
+ # Corresponds to the JSON property `restoreInfo`
1880
+ # @return [Google::Apis::BigtableadminV2::RestoreInfo]
1881
+ attr_accessor :restore_info
1882
+
1883
+ def initialize(**args)
1884
+ update!(**args)
1885
+ end
1886
+
1887
+ # Update properties of this object
1888
+ def update!(**args)
1889
+ @cluster_states = args[:cluster_states] if args.key?(:cluster_states)
1890
+ @column_families = args[:column_families] if args.key?(:column_families)
1891
+ @granularity = args[:granularity] if args.key?(:granularity)
1892
+ @name = args[:name] if args.key?(:name)
1893
+ @restore_info = args[:restore_info] if args.key?(:restore_info)
1894
+ end
1895
+ end
1896
+
1897
+ # Progress info for copying a table's data to the new cluster.
1898
+ class TableProgress
1899
+ include Google::Apis::Core::Hashable
1900
+
1901
+ # Estimate of the number of bytes copied so far for this table. This will
1902
+ # eventually reach 'estimated_size_bytes' unless the table copy is CANCELLED.
1903
+ # Corresponds to the JSON property `estimatedCopiedBytes`
1904
+ # @return [Fixnum]
1905
+ attr_accessor :estimated_copied_bytes
1906
+
1907
+ # Estimate of the size of the table to be copied.
1908
+ # Corresponds to the JSON property `estimatedSizeBytes`
1909
+ # @return [Fixnum]
1910
+ attr_accessor :estimated_size_bytes
1911
+
1912
+ #
1913
+ # Corresponds to the JSON property `state`
1914
+ # @return [String]
1915
+ attr_accessor :state
1916
+
1917
+ def initialize(**args)
1918
+ update!(**args)
1919
+ end
1920
+
1921
+ # Update properties of this object
1922
+ def update!(**args)
1923
+ @estimated_copied_bytes = args[:estimated_copied_bytes] if args.key?(:estimated_copied_bytes)
1924
+ @estimated_size_bytes = args[:estimated_size_bytes] if args.key?(:estimated_size_bytes)
1925
+ @state = args[:state] if args.key?(:state)
1926
+ end
1927
+ end
1928
+
1929
+ # Request message for `TestIamPermissions` method.
1930
+ class TestIamPermissionsRequest
1931
+ include Google::Apis::Core::Hashable
1932
+
1933
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1934
+ # (such as '*' or 'storage.*') are not allowed. For more information see [IAM
1935
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1936
+ # Corresponds to the JSON property `permissions`
1937
+ # @return [Array<String>]
1938
+ attr_accessor :permissions
1939
+
1940
+ def initialize(**args)
1941
+ update!(**args)
1942
+ end
1943
+
1944
+ # Update properties of this object
1945
+ def update!(**args)
1946
+ @permissions = args[:permissions] if args.key?(:permissions)
1947
+ end
1948
+ end
1949
+
1950
+ # Response message for `TestIamPermissions` method.
1951
+ class TestIamPermissionsResponse
1952
+ include Google::Apis::Core::Hashable
1953
+
1954
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1955
+ # Corresponds to the JSON property `permissions`
1956
+ # @return [Array<String>]
1957
+ attr_accessor :permissions
1958
+
1959
+ def initialize(**args)
1960
+ update!(**args)
1961
+ end
1962
+
1963
+ # Update properties of this object
1964
+ def update!(**args)
1965
+ @permissions = args[:permissions] if args.key?(:permissions)
1966
+ end
1967
+ end
1968
+
1969
+ # A GcRule which deletes cells matching any of the given rules.
1970
+ class Union
1971
+ include Google::Apis::Core::Hashable
1972
+
1973
+ # Delete cells which would be deleted by any element of `rules`.
1974
+ # Corresponds to the JSON property `rules`
1975
+ # @return [Array<Google::Apis::BigtableadminV2::GcRule>]
1976
+ attr_accessor :rules
1977
+
1978
+ def initialize(**args)
1979
+ update!(**args)
1980
+ end
1981
+
1982
+ # Update properties of this object
1983
+ def update!(**args)
1984
+ @rules = args[:rules] if args.key?(:rules)
1985
+ end
1986
+ end
1987
+
1988
+ # The metadata for the Operation returned by UpdateAppProfile.
1989
+ class UpdateAppProfileMetadata
1990
+ include Google::Apis::Core::Hashable
1991
+
1992
+ def initialize(**args)
1993
+ update!(**args)
1994
+ end
1995
+
1996
+ # Update properties of this object
1997
+ def update!(**args)
1998
+ end
1999
+ end
2000
+
2001
+ # The metadata for the Operation returned by UpdateCluster.
2002
+ class UpdateClusterMetadata
2003
+ include Google::Apis::Core::Hashable
2004
+
2005
+ # The time at which the operation failed or was completed successfully.
2006
+ # Corresponds to the JSON property `finishTime`
2007
+ # @return [String]
2008
+ attr_accessor :finish_time
2009
+
2010
+ # A resizable group of nodes in a particular cloud location, capable of serving
2011
+ # all Tables in the parent Instance.
2012
+ # Corresponds to the JSON property `originalRequest`
2013
+ # @return [Google::Apis::BigtableadminV2::Cluster]
2014
+ attr_accessor :original_request
2015
+
2016
+ # The time at which the original request was received.
2017
+ # Corresponds to the JSON property `requestTime`
2018
+ # @return [String]
2019
+ attr_accessor :request_time
2020
+
2021
+ def initialize(**args)
2022
+ update!(**args)
2023
+ end
2024
+
2025
+ # Update properties of this object
2026
+ def update!(**args)
2027
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
2028
+ @original_request = args[:original_request] if args.key?(:original_request)
2029
+ @request_time = args[:request_time] if args.key?(:request_time)
2030
+ end
2031
+ end
2032
+
2033
+ # The metadata for the Operation returned by UpdateInstance.
2034
+ class UpdateInstanceMetadata
2035
+ include Google::Apis::Core::Hashable
2036
+
2037
+ # The time at which the operation failed or was completed successfully.
2038
+ # Corresponds to the JSON property `finishTime`
2039
+ # @return [String]
2040
+ attr_accessor :finish_time
2041
+
2042
+ # Request message for BigtableInstanceAdmin.PartialUpdateInstance.
2043
+ # Corresponds to the JSON property `originalRequest`
2044
+ # @return [Google::Apis::BigtableadminV2::PartialUpdateInstanceRequest]
2045
+ attr_accessor :original_request
2046
+
2047
+ # The time at which the original request was received.
2048
+ # Corresponds to the JSON property `requestTime`
2049
+ # @return [String]
2050
+ attr_accessor :request_time
2051
+
2052
+ def initialize(**args)
2053
+ update!(**args)
2054
+ end
2055
+
2056
+ # Update properties of this object
2057
+ def update!(**args)
2058
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
2059
+ @original_request = args[:original_request] if args.key?(:original_request)
2060
+ @request_time = args[:request_time] if args.key?(:request_time)
2061
+ end
2062
+ end
2063
+ end
2064
+ end
2065
+ end