google-cloud-bigtable 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +19 -0
  3. data/AUTHENTICATION.md +177 -0
  4. data/CHANGELOG.md +223 -0
  5. data/CODE_OF_CONDUCT.md +40 -0
  6. data/CONTRIBUTING.md +188 -0
  7. data/EMULATOR.md +30 -0
  8. data/LICENSE +201 -0
  9. data/LOGGING.md +32 -0
  10. data/OVERVIEW.md +400 -0
  11. data/TROUBLESHOOTING.md +31 -0
  12. data/lib/google-cloud-bigtable.rb +171 -0
  13. data/lib/google/bigtable/admin/v2/bigtable_instance_admin_pb.rb +145 -0
  14. data/lib/google/bigtable/admin/v2/bigtable_instance_admin_services_pb.rb +90 -0
  15. data/lib/google/bigtable/admin/v2/bigtable_table_admin_pb.rb +208 -0
  16. data/lib/google/bigtable/admin/v2/bigtable_table_admin_services_pb.rb +154 -0
  17. data/lib/google/bigtable/admin/v2/common_pb.rb +30 -0
  18. data/lib/google/bigtable/admin/v2/instance_pb.rb +74 -0
  19. data/lib/google/bigtable/admin/v2/table_pb.rb +127 -0
  20. data/lib/google/bigtable/v2/bigtable_pb.rb +113 -0
  21. data/lib/google/bigtable/v2/bigtable_services_pb.rb +68 -0
  22. data/lib/google/bigtable/v2/data_pb.rb +156 -0
  23. data/lib/google/cloud/bigtable.rb +184 -0
  24. data/lib/google/cloud/bigtable/admin.rb +202 -0
  25. data/lib/google/cloud/bigtable/admin/credentials.rb +27 -0
  26. data/lib/google/cloud/bigtable/admin/v2.rb +223 -0
  27. data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client.rb +1451 -0
  28. data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client_config.json +139 -0
  29. data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client.rb +1734 -0
  30. data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client_config.json +163 -0
  31. data/lib/google/cloud/bigtable/admin/v2/credentials.rb +51 -0
  32. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_instance_admin.rb +297 -0
  33. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_table_admin.rb +587 -0
  34. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/instance.rb +193 -0
  35. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/table.rb +303 -0
  36. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/iam_policy.rb +64 -0
  37. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/options.rb +33 -0
  38. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/policy.rb +151 -0
  39. data/lib/google/cloud/bigtable/admin/v2/doc/google/longrunning/operations.rb +51 -0
  40. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/any.rb +131 -0
  41. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/duration.rb +91 -0
  42. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/empty.rb +29 -0
  43. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/field_mask.rb +222 -0
  44. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/timestamp.rb +113 -0
  45. data/lib/google/cloud/bigtable/admin/v2/doc/google/rpc/status.rb +39 -0
  46. data/lib/google/cloud/bigtable/admin/v2/doc/google/type/expr.rb +45 -0
  47. data/lib/google/cloud/bigtable/app_profile.rb +439 -0
  48. data/lib/google/cloud/bigtable/app_profile/job.rb +99 -0
  49. data/lib/google/cloud/bigtable/app_profile/list.rb +165 -0
  50. data/lib/google/cloud/bigtable/backup.rb +324 -0
  51. data/lib/google/cloud/bigtable/backup/job.rb +87 -0
  52. data/lib/google/cloud/bigtable/backup/list.rb +167 -0
  53. data/lib/google/cloud/bigtable/chunk_processor.rb +241 -0
  54. data/lib/google/cloud/bigtable/cluster.rb +390 -0
  55. data/lib/google/cloud/bigtable/cluster/job.rb +88 -0
  56. data/lib/google/cloud/bigtable/cluster/list.rb +171 -0
  57. data/lib/google/cloud/bigtable/column_family.rb +73 -0
  58. data/lib/google/cloud/bigtable/column_family_map.rb +426 -0
  59. data/lib/google/cloud/bigtable/column_range.rb +194 -0
  60. data/lib/google/cloud/bigtable/convert.rb +83 -0
  61. data/lib/google/cloud/bigtable/credentials.rb +25 -0
  62. data/lib/google/cloud/bigtable/errors.rb +38 -0
  63. data/lib/google/cloud/bigtable/gc_rule.rb +334 -0
  64. data/lib/google/cloud/bigtable/instance.rb +935 -0
  65. data/lib/google/cloud/bigtable/instance/cluster_map.rb +74 -0
  66. data/lib/google/cloud/bigtable/instance/job.rb +98 -0
  67. data/lib/google/cloud/bigtable/instance/list.rb +164 -0
  68. data/lib/google/cloud/bigtable/longrunning_job.rb +122 -0
  69. data/lib/google/cloud/bigtable/mutation_entry.rb +256 -0
  70. data/lib/google/cloud/bigtable/mutation_operations.rb +357 -0
  71. data/lib/google/cloud/bigtable/policy.rb +167 -0
  72. data/lib/google/cloud/bigtable/project.rb +471 -0
  73. data/lib/google/cloud/bigtable/read_modify_write_rule.rb +134 -0
  74. data/lib/google/cloud/bigtable/read_operations.rb +328 -0
  75. data/lib/google/cloud/bigtable/routing_policy.rb +172 -0
  76. data/lib/google/cloud/bigtable/row.rb +136 -0
  77. data/lib/google/cloud/bigtable/row_filter.rb +639 -0
  78. data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +590 -0
  79. data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +114 -0
  80. data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +621 -0
  81. data/lib/google/cloud/bigtable/row_filter/simple_filter.rb +287 -0
  82. data/lib/google/cloud/bigtable/row_range.rb +179 -0
  83. data/lib/google/cloud/bigtable/rows_mutator.rb +113 -0
  84. data/lib/google/cloud/bigtable/rows_reader.rb +200 -0
  85. data/lib/google/cloud/bigtable/sample_row_key.rb +85 -0
  86. data/lib/google/cloud/bigtable/service.rb +913 -0
  87. data/lib/google/cloud/bigtable/status.rb +76 -0
  88. data/lib/google/cloud/bigtable/table.rb +686 -0
  89. data/lib/google/cloud/bigtable/table/cluster_state.rb +125 -0
  90. data/lib/google/cloud/bigtable/table/list.rb +154 -0
  91. data/lib/google/cloud/bigtable/table/restore_job.rb +117 -0
  92. data/lib/google/cloud/bigtable/v2.rb +146 -0
  93. data/lib/google/cloud/bigtable/v2/bigtable_client.rb +591 -0
  94. data/lib/google/cloud/bigtable/v2/bigtable_client_config.json +83 -0
  95. data/lib/google/cloud/bigtable/v2/credentials.rb +46 -0
  96. data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/bigtable.rb +290 -0
  97. data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/data.rb +493 -0
  98. data/lib/google/cloud/bigtable/v2/doc/google/protobuf/any.rb +131 -0
  99. data/lib/google/cloud/bigtable/v2/doc/google/protobuf/wrappers.rb +34 -0
  100. data/lib/google/cloud/bigtable/v2/doc/google/rpc/status.rb +39 -0
  101. data/lib/google/cloud/bigtable/value_range.rb +181 -0
  102. data/lib/google/cloud/bigtable/version.rb +22 -0
  103. metadata +337 -0
@@ -0,0 +1,184 @@
1
+ # Copyright 2018 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ require "google-cloud-bigtable"
17
+ require "google/cloud/env"
18
+ require "google/cloud/errors"
19
+ require "google/cloud/bigtable/credentials"
20
+ require "google/cloud/bigtable/project"
21
+
22
+ module Google
23
+ module Cloud
24
+ ##
25
+ # Cloud Bigtable
26
+ #
27
+ # See {file:OVERVIEW.md Bigtable Overview}.
28
+ #
29
+ module Bigtable
30
+ ##
31
+ # Service for managing Cloud Bigtable instances and tables and for reading from and
32
+ # writing to Bigtable tables.
33
+ #
34
+ # @param project_id [String]
35
+ # Project identifier for the Bigtable service you are connecting to.
36
+ # If not present, the default project for the credentials is used.
37
+ # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel,
38
+ # GRPC::Core::ChannelCredentials, Proc]
39
+ # Provides the means for authenticating requests made by the client. This parameter can
40
+ # be one of the following types:
41
+ # `Google::Auth::Credentials` uses the properties of its represented keyfile for
42
+ # authenticating requests made by this client.
43
+ # `String` will be treated as the path to the keyfile to use to construct
44
+ # credentials for this client.
45
+ # `Hash` will be treated as the contents of a keyfile to use to construct
46
+ # credentials for this client.
47
+ # `GRPC::Core::Channel` will be used to make calls through.
48
+ # `GRPC::Core::ChannelCredentials` for the setting up the gRPC client. The channel credentials
49
+ # should already be composed with a `GRPC::Core::CallCredentials` object.
50
+ # `Proc` will be used as an updater_proc for the gRPC channel. The proc transforms the
51
+ # metadata for requests, generally, to give OAuth credentials.
52
+ # @param [String] endpoint Override of the endpoint host name. Optional.
53
+ # If the param is nil, uses the default endpoint.
54
+ # @param [String] emulator_host Bigtable emulator host. Optional.
55
+ # If the parameter is nil, uses the value of the `emulator_host` config.
56
+ # @param scope [Array<String>]
57
+ # The OAuth 2.0 scopes controlling the set of resources and operations
58
+ # that the connection can access. See [Using OAuth 2.0 to Access Google
59
+ # APIs](https://developers.google.com/identity/protocols/OAuth2).
60
+ # The OAuth scopes for this service. This parameter is ignored if an
61
+ # updater_proc is supplied.
62
+ # @param client_config [Hash]
63
+ # A hash for call options for each method.
64
+ # See Google::Gax#construct_settings for the structure of
65
+ # this data. Falls back to the default config if not specified
66
+ # or the specified config is missing data points.
67
+ # @param timeout [Integer]
68
+ # The default timeout, in seconds, for calls made through this client. Optional.
69
+ # @return [Google::Cloud::Bigtable::Project]
70
+ #
71
+ # @example
72
+ # require "google/cloud/bigtable"
73
+ #
74
+ # client = Google::Cloud::Bigtable.new
75
+ #
76
+ def self.new project_id: nil, credentials: nil, emulator_host: nil, scope: nil, client_config: nil, endpoint: nil,
77
+ timeout: nil
78
+ project_id ||= default_project_id
79
+ scope ||= configure.scope
80
+ timeout ||= configure.timeout
81
+ client_config ||= configure.client_config
82
+ emulator_host ||= configure.emulator_host
83
+ endpoint ||= configure.endpoint
84
+
85
+ if emulator_host
86
+ return new_with_emulator project_id, emulator_host, timeout,
87
+ client_config
88
+ end
89
+
90
+ credentials = resolve_credentials credentials, scope
91
+ project_id = resolve_project_id project_id, credentials
92
+ raise ArgumentError, "project_id is missing" if project_id.empty?
93
+
94
+ service = Bigtable::Service.new(
95
+ project_id, credentials,
96
+ host: endpoint, timeout: timeout, client_config: client_config
97
+ )
98
+ Bigtable::Project.new service
99
+ end
100
+
101
+ ##
102
+ # Configure the Google Cloud Bigtable library.
103
+ #
104
+ # The following Bigtable configuration parameters are supported:
105
+ #
106
+ # * `project_id` - (String) Identifier for a Bigtable project. (The
107
+ # parameter `project` is considered deprecated, but may also be used.)
108
+ # * `credentials` - (String, Hash, Google::Auth::Credentials,
109
+ # GRPC::Core::Channel, GRPC::Core::ChannelCredentials) The path to
110
+ # the keyfile as a String, the contents of the keyfile as a Hash, or a
111
+ # Google::Auth::Credentials object. (See {Bigtable::Credentials}) (The
112
+ # parameter `keyfile` is considered deprecated, but may also be used.)
113
+ # * `scope` - (String, Array<String>) The OAuth 2.0 scopes controlling
114
+ # the set of resources and operations that the connection can access.
115
+ # * `timeout` - (Integer) Default timeout to use in requests.
116
+ # * `client_config` - (Hash) A hash of values to override the default
117
+ # behavior of the API client.
118
+ # * `endpoint` - (String) Override of the endpoint host name, or `nil`
119
+ # to use the default endpoint.
120
+ #
121
+ # @return [Google::Cloud::Config] The configuration object the
122
+ # Google::Cloud::Bigtable library uses.
123
+ #
124
+ def self.configure
125
+ yield Google::Cloud.configure.bigtable if block_given?
126
+
127
+ Google::Cloud.configure.bigtable
128
+ end
129
+
130
+ # @private
131
+ # New client given an emulator host.
132
+ #
133
+ def self.new_with_emulator project_id, emulator_host, timeout,
134
+ client_config
135
+ project_id = project_id.to_s # Always cast to a string
136
+ raise ArgumentError, "project_id is missing" if project_id.empty?
137
+
138
+ Bigtable::Project.new(
139
+ Bigtable::Service.new(
140
+ project_id, :this_channel_is_insecure,
141
+ host: emulator_host, timeout: timeout,
142
+ client_config: client_config
143
+ )
144
+ )
145
+ end
146
+
147
+ # @private
148
+ # Resolve credentials
149
+ #
150
+ def self.resolve_credentials given_credentials, scope
151
+ credentials = given_credentials || default_credentials(scope: scope)
152
+ return credentials if credentials.is_a? Google::Auth::Credentials
153
+ Bigtable::Credentials.new credentials, scope: scope
154
+ end
155
+
156
+ # @private
157
+ # Resolve project.
158
+ #
159
+ def self.resolve_project_id given_project_id, credentials
160
+ project_id = given_project_id || default_project_id
161
+ project_id ||= credentials.project_id if credentials.respond_to? :project_id
162
+ project_id.to_s # Always cast to a string
163
+ end
164
+
165
+ # @private
166
+ # Default project.
167
+ #
168
+ def self.default_project_id
169
+ Google::Cloud.configure.bigtable.project_id ||
170
+ Google::Cloud.configure.project_id ||
171
+ Google::Cloud.env.project_id
172
+ end
173
+
174
+ # @private
175
+ # Default credentials.
176
+ #
177
+ def self.default_credentials scope: nil
178
+ Google::Cloud.configure.bigtable.credentials ||
179
+ Google::Cloud.configure.credentials ||
180
+ Bigtable::Credentials.default(scope: scope)
181
+ end
182
+ end
183
+ end
184
+ end
@@ -0,0 +1,202 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ require "google/gax"
17
+ require "pathname"
18
+
19
+ module Google
20
+ module Cloud
21
+ module Bigtable
22
+ # rubocop:disable LineLength
23
+
24
+ ##
25
+ # # Ruby Client for Cloud Bigtable Admin API
26
+ #
27
+ # [Cloud Bigtable Admin API][Product Documentation]:
28
+ # Administer your Cloud Bigtable tables and instances.
29
+ # - [Product Documentation][]
30
+ #
31
+ # ## Quick Start
32
+ # In order to use this library, you first need to go through the following
33
+ # steps:
34
+ #
35
+ # 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
36
+ # 2. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
37
+ # 3. [Enable the Cloud Bigtable Admin API.](https://console.cloud.google.com/apis/library/bigtableadmin.googleapis.com)
38
+ # 4. [Setup Authentication.](https://googleapis.dev/ruby/google-cloud-bigtable/latest/file.AUTHENTICATION.html)
39
+ #
40
+ # ### Installation
41
+ # ```
42
+ # $ gem install google-cloud-bigtable
43
+ # ```
44
+ #
45
+ # ### Next Steps
46
+ # - Read the [Cloud Bigtable Admin API Product documentation][Product Documentation]
47
+ # to learn more about the product and see How-to Guides.
48
+ # - View this [repository's main README](https://github.com/googleapis/google-cloud-ruby/blob/master/README.md)
49
+ # to see the full list of Cloud APIs that we cover.
50
+ #
51
+ # [Product Documentation]: https://cloud.google.com/bigtable/docs/reference/admin/rpc
52
+ #
53
+ # ## Enabling Logging
54
+ #
55
+ # To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library.
56
+ # The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/stdlib-2.5.0/libdoc/logger/rdoc/Logger.html) as shown below,
57
+ # or a [`Google::Cloud::Logging::Logger`](https://googleapis.dev/ruby/google-cloud-logging/latest)
58
+ # that will write logs to [Stackdriver Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
59
+ # and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
60
+ #
61
+ # Configuring a Ruby stdlib logger:
62
+ #
63
+ # ```ruby
64
+ # require "logger"
65
+ #
66
+ # module MyLogger
67
+ # LOGGER = Logger.new $stderr, level: Logger::WARN
68
+ # def logger
69
+ # LOGGER
70
+ # end
71
+ # end
72
+ #
73
+ # # Define a gRPC module-level logger method before grpc/logconfig.rb loads.
74
+ # module GRPC
75
+ # extend MyLogger
76
+ # end
77
+ # ```
78
+ #
79
+ module Admin
80
+ # rubocop:enable LineLength
81
+
82
+ FILE_DIR = File.realdirpath(Pathname.new(__FILE__).join("..").join("admin"))
83
+
84
+ AVAILABLE_VERSIONS = Dir["#{FILE_DIR}/*"]
85
+ .select { |file| File.directory?(file) }
86
+ .select { |dir| Google::Gax::VERSION_MATCHER.match(File.basename(dir)) }
87
+ .select { |dir| File.exist?(dir + ".rb") }
88
+ .map { |dir| File.basename(dir) }
89
+
90
+ module BigtableInstanceAdmin
91
+ ##
92
+ # Service for creating, configuring, and deleting Cloud Bigtable Instances and
93
+ # Clusters. Provides access to the Instance and Cluster schemas only, not the
94
+ # tables' metadata or data stored in those tables.
95
+ #
96
+ # @param version [Symbol, String]
97
+ # The major version of the service to be used. By default :v2
98
+ # is used.
99
+ # @overload new(version:, credentials:, scopes:, client_config:, timeout:)
100
+ # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
101
+ # Provides the means for authenticating requests made by the client. This parameter can
102
+ # be many types.
103
+ # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
104
+ # authenticating requests made by this client.
105
+ # A `String` will be treated as the path to the keyfile to be used for the construction of
106
+ # credentials for this client.
107
+ # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
108
+ # credentials for this client.
109
+ # A `GRPC::Core::Channel` will be used to make calls through.
110
+ # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
111
+ # should already be composed with a `GRPC::Core::CallCredentials` object.
112
+ # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
113
+ # metadata for requests, generally, to give OAuth credentials.
114
+ # @param scopes [Array<String>]
115
+ # The OAuth scopes for this service. This parameter is ignored if
116
+ # an updater_proc is supplied.
117
+ # @param client_config [Hash]
118
+ # A Hash for call options for each method. See
119
+ # Google::Gax#construct_settings for the structure of
120
+ # this data. Falls back to the default config if not specified
121
+ # or the specified config is missing data points.
122
+ # @param timeout [Numeric]
123
+ # The default timeout, in seconds, for calls made through this client.
124
+ # @param metadata [Hash]
125
+ # Default metadata to be sent with each request. This can be overridden on a per call basis.
126
+ # @param exception_transformer [Proc]
127
+ # An optional proc that intercepts any exceptions raised during an API call to inject
128
+ # custom error handling.
129
+ def self.new(*args, version: :v2, **kwargs)
130
+ unless AVAILABLE_VERSIONS.include?(version.to_s.downcase)
131
+ raise "The version: #{version} is not available. The available versions " \
132
+ "are: [#{AVAILABLE_VERSIONS.join(", ")}]"
133
+ end
134
+
135
+ require "#{FILE_DIR}/#{version.to_s.downcase}"
136
+ version_module = Google::Cloud::Bigtable::Admin
137
+ .constants
138
+ .select {|sym| sym.to_s.downcase == version.to_s.downcase}
139
+ .first
140
+ Google::Cloud::Bigtable::Admin.const_get(version_module)::BigtableInstanceAdmin.new(*args, **kwargs)
141
+ end
142
+ end
143
+
144
+ module BigtableTableAdmin
145
+ ##
146
+ # Service for creating, configuring, and deleting Cloud Bigtable tables.
147
+ #
148
+ #
149
+ # Provides access to the table schemas only, not the data stored within
150
+ # the tables.
151
+ #
152
+ # @param version [Symbol, String]
153
+ # The major version of the service to be used. By default :v2
154
+ # is used.
155
+ # @overload new(version:, credentials:, scopes:, client_config:, timeout:)
156
+ # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
157
+ # Provides the means for authenticating requests made by the client. This parameter can
158
+ # be many types.
159
+ # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
160
+ # authenticating requests made by this client.
161
+ # A `String` will be treated as the path to the keyfile to be used for the construction of
162
+ # credentials for this client.
163
+ # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
164
+ # credentials for this client.
165
+ # A `GRPC::Core::Channel` will be used to make calls through.
166
+ # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
167
+ # should already be composed with a `GRPC::Core::CallCredentials` object.
168
+ # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
169
+ # metadata for requests, generally, to give OAuth credentials.
170
+ # @param scopes [Array<String>]
171
+ # The OAuth scopes for this service. This parameter is ignored if
172
+ # an updater_proc is supplied.
173
+ # @param client_config [Hash]
174
+ # A Hash for call options for each method. See
175
+ # Google::Gax#construct_settings for the structure of
176
+ # this data. Falls back to the default config if not specified
177
+ # or the specified config is missing data points.
178
+ # @param timeout [Numeric]
179
+ # The default timeout, in seconds, for calls made through this client.
180
+ # @param metadata [Hash]
181
+ # Default metadata to be sent with each request. This can be overridden on a per call basis.
182
+ # @param exception_transformer [Proc]
183
+ # An optional proc that intercepts any exceptions raised during an API call to inject
184
+ # custom error handling.
185
+ def self.new(*args, version: :v2, **kwargs)
186
+ unless AVAILABLE_VERSIONS.include?(version.to_s.downcase)
187
+ raise "The version: #{version} is not available. The available versions " \
188
+ "are: [#{AVAILABLE_VERSIONS.join(", ")}]"
189
+ end
190
+
191
+ require "#{FILE_DIR}/#{version.to_s.downcase}"
192
+ version_module = Google::Cloud::Bigtable::Admin
193
+ .constants
194
+ .select {|sym| sym.to_s.downcase == version.to_s.downcase}
195
+ .first
196
+ Google::Cloud::Bigtable::Admin.const_get(version_module)::BigtableTableAdmin.new(*args, **kwargs)
197
+ end
198
+ end
199
+ end
200
+ end
201
+ end
202
+ end
@@ -0,0 +1,27 @@
1
+ # Copyright 2018 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ require "google/cloud/bigtable/admin/v2/credentials"
17
+
18
+ module Google
19
+ module Cloud
20
+ module Bigtable
21
+ module Admin
22
+ class Credentials < Google::Cloud::Bigtable::Admin::V2::Credentials
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,223 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ require "google/cloud/bigtable/admin/v2/bigtable_instance_admin_client"
17
+ require "google/cloud/bigtable/admin/v2/bigtable_table_admin_client"
18
+ require "google/bigtable/admin/v2/bigtable_instance_admin_pb"
19
+ require "google/bigtable/admin/v2/table_pb"
20
+ require "google/bigtable/admin/v2/bigtable_table_admin_pb"
21
+
22
+ module Google
23
+ module Cloud
24
+ module Bigtable
25
+ module Admin
26
+ # rubocop:disable LineLength
27
+
28
+ ##
29
+ # # Ruby Client for Cloud Bigtable Admin API
30
+ #
31
+ # [Cloud Bigtable Admin API][Product Documentation]:
32
+ # Administer your Cloud Bigtable tables and instances.
33
+ # - [Product Documentation][]
34
+ #
35
+ # ## Quick Start
36
+ # In order to use this library, you first need to go through the following
37
+ # steps:
38
+ #
39
+ # 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
40
+ # 2. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
41
+ # 3. [Enable the Cloud Bigtable Admin API.](https://console.cloud.google.com/apis/library/bigtableadmin.googleapis.com)
42
+ # 4. [Setup Authentication.](https://googleapis.dev/ruby/google-cloud-bigtable/latest/file.AUTHENTICATION.html)
43
+ #
44
+ # ### Installation
45
+ # ```
46
+ # $ gem install google-cloud-bigtable
47
+ # ```
48
+ #
49
+ # ### Next Steps
50
+ # - Read the [Cloud Bigtable Admin API Product documentation][Product Documentation]
51
+ # to learn more about the product and see How-to Guides.
52
+ # - View this [repository's main README](https://github.com/googleapis/google-cloud-ruby/blob/master/README.md)
53
+ # to see the full list of Cloud APIs that we cover.
54
+ #
55
+ # [Product Documentation]: https://cloud.google.com/bigtable/docs/reference/admin/rpc
56
+ #
57
+ # ## Enabling Logging
58
+ #
59
+ # To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library.
60
+ # The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/stdlib-2.5.0/libdoc/logger/rdoc/Logger.html) as shown below,
61
+ # or a [`Google::Cloud::Logging::Logger`](https://googleapis.dev/ruby/google-cloud-logging/latest)
62
+ # that will write logs to [Stackdriver Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
63
+ # and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
64
+ #
65
+ # Configuring a Ruby stdlib logger:
66
+ #
67
+ # ```ruby
68
+ # require "logger"
69
+ #
70
+ # module MyLogger
71
+ # LOGGER = Logger.new $stderr, level: Logger::WARN
72
+ # def logger
73
+ # LOGGER
74
+ # end
75
+ # end
76
+ #
77
+ # # Define a gRPC module-level logger method before grpc/logconfig.rb loads.
78
+ # module GRPC
79
+ # extend MyLogger
80
+ # end
81
+ # ```
82
+ #
83
+ module V2
84
+ # rubocop:enable LineLength
85
+
86
+ module BigtableInstanceAdmin
87
+ ##
88
+ # Service for creating, configuring, and deleting Cloud Bigtable Instances and
89
+ # Clusters. Provides access to the Instance and Cluster schemas only, not the
90
+ # tables' metadata or data stored in those tables.
91
+ #
92
+ # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
93
+ # Provides the means for authenticating requests made by the client. This parameter can
94
+ # be many types.
95
+ # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
96
+ # authenticating requests made by this client.
97
+ # A `String` will be treated as the path to the keyfile to be used for the construction of
98
+ # credentials for this client.
99
+ # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
100
+ # credentials for this client.
101
+ # A `GRPC::Core::Channel` will be used to make calls through.
102
+ # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
103
+ # should already be composed with a `GRPC::Core::CallCredentials` object.
104
+ # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
105
+ # metadata for requests, generally, to give OAuth credentials.
106
+ # @param scopes [Array<String>]
107
+ # The OAuth scopes for this service. This parameter is ignored if
108
+ # an updater_proc is supplied.
109
+ # @param client_config [Hash]
110
+ # A Hash for call options for each method. See
111
+ # Google::Gax#construct_settings for the structure of
112
+ # this data. Falls back to the default config if not specified
113
+ # or the specified config is missing data points.
114
+ # @param timeout [Numeric]
115
+ # The default timeout, in seconds, for calls made through this client.
116
+ # @param metadata [Hash]
117
+ # Default metadata to be sent with each request. This can be overridden on a per call basis.
118
+ # @param service_address [String]
119
+ # Override for the service hostname, or `nil` to leave as the default.
120
+ # @param service_port [Integer]
121
+ # Override for the service port, or `nil` to leave as the default.
122
+ # @param exception_transformer [Proc]
123
+ # An optional proc that intercepts any exceptions raised during an API call to inject
124
+ # custom error handling.
125
+ def self.new \
126
+ credentials: nil,
127
+ scopes: nil,
128
+ client_config: nil,
129
+ timeout: nil,
130
+ metadata: nil,
131
+ service_address: nil,
132
+ service_port: nil,
133
+ exception_transformer: nil,
134
+ lib_name: nil,
135
+ lib_version: nil
136
+ kwargs = {
137
+ credentials: credentials,
138
+ scopes: scopes,
139
+ client_config: client_config,
140
+ timeout: timeout,
141
+ metadata: metadata,
142
+ exception_transformer: exception_transformer,
143
+ lib_name: lib_name,
144
+ service_address: service_address,
145
+ service_port: service_port,
146
+ lib_version: lib_version
147
+ }.select { |_, v| v != nil }
148
+ Google::Cloud::Bigtable::Admin::V2::BigtableInstanceAdminClient.new(**kwargs)
149
+ end
150
+ end
151
+
152
+ module BigtableTableAdmin
153
+ ##
154
+ # Service for creating, configuring, and deleting Cloud Bigtable tables.
155
+ #
156
+ #
157
+ # Provides access to the table schemas only, not the data stored within
158
+ # the tables.
159
+ #
160
+ # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
161
+ # Provides the means for authenticating requests made by the client. This parameter can
162
+ # be many types.
163
+ # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
164
+ # authenticating requests made by this client.
165
+ # A `String` will be treated as the path to the keyfile to be used for the construction of
166
+ # credentials for this client.
167
+ # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
168
+ # credentials for this client.
169
+ # A `GRPC::Core::Channel` will be used to make calls through.
170
+ # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
171
+ # should already be composed with a `GRPC::Core::CallCredentials` object.
172
+ # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
173
+ # metadata for requests, generally, to give OAuth credentials.
174
+ # @param scopes [Array<String>]
175
+ # The OAuth scopes for this service. This parameter is ignored if
176
+ # an updater_proc is supplied.
177
+ # @param client_config [Hash]
178
+ # A Hash for call options for each method. See
179
+ # Google::Gax#construct_settings for the structure of
180
+ # this data. Falls back to the default config if not specified
181
+ # or the specified config is missing data points.
182
+ # @param timeout [Numeric]
183
+ # The default timeout, in seconds, for calls made through this client.
184
+ # @param metadata [Hash]
185
+ # Default metadata to be sent with each request. This can be overridden on a per call basis.
186
+ # @param service_address [String]
187
+ # Override for the service hostname, or `nil` to leave as the default.
188
+ # @param service_port [Integer]
189
+ # Override for the service port, or `nil` to leave as the default.
190
+ # @param exception_transformer [Proc]
191
+ # An optional proc that intercepts any exceptions raised during an API call to inject
192
+ # custom error handling.
193
+ def self.new \
194
+ credentials: nil,
195
+ scopes: nil,
196
+ client_config: nil,
197
+ timeout: nil,
198
+ metadata: nil,
199
+ service_address: nil,
200
+ service_port: nil,
201
+ exception_transformer: nil,
202
+ lib_name: nil,
203
+ lib_version: nil
204
+ kwargs = {
205
+ credentials: credentials,
206
+ scopes: scopes,
207
+ client_config: client_config,
208
+ timeout: timeout,
209
+ metadata: metadata,
210
+ exception_transformer: exception_transformer,
211
+ lib_name: lib_name,
212
+ service_address: service_address,
213
+ service_port: service_port,
214
+ lib_version: lib_version
215
+ }.select { |_, v| v != nil }
216
+ Google::Cloud::Bigtable::Admin::V2::BigtableTableAdminClient.new(**kwargs)
217
+ end
218
+ end
219
+ end
220
+ end
221
+ end
222
+ end
223
+ end