google-cloud-bigtable 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.yardopts +10 -0
- data/LICENSE +201 -0
- data/README.md +65 -0
- data/lib/google/bigtable/admin/v2/bigtable_instance_admin_pb.rb +139 -0
- data/lib/google/bigtable/admin/v2/bigtable_instance_admin_services_pb.rb +85 -0
- data/lib/google/bigtable/admin/v2/bigtable_table_admin_pb.rb +137 -0
- data/lib/google/bigtable/admin/v2/bigtable_table_admin_services_pb.rb +117 -0
- data/lib/google/bigtable/admin/v2/common_pb.rb +24 -0
- data/lib/google/bigtable/admin/v2/instance_pb.rb +72 -0
- data/lib/google/bigtable/admin/v2/table_pb.rb +88 -0
- data/lib/google/bigtable/v2/bigtable_pb.rb +109 -0
- data/lib/google/bigtable/v2/bigtable_services_pb.rb +67 -0
- data/lib/google/bigtable/v2/data_pb.rb +155 -0
- data/lib/google/cloud/bigtable/admin/credentials.rb +26 -0
- data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client.rb +1417 -0
- data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client_config.json +123 -0
- data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client.rb +1079 -0
- data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client_config.json +109 -0
- data/lib/google/cloud/bigtable/admin/v2/credentials.rb +50 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_instance_admin.rb +279 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_table_admin.rb +353 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/instance.rb +194 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/table.rb +209 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/iam_policy.rb +62 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/policy.rb +127 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/longrunning/operations.rb +92 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/any.rb +124 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/duration.rb +90 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/empty.rb +28 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/field_mask.rb +223 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/timestamp.rb +106 -0
- data/lib/google/cloud/bigtable/admin/v2/doc/google/rpc/status.rb +83 -0
- data/lib/google/cloud/bigtable/admin/v2.rb +200 -0
- data/lib/google/cloud/bigtable/admin.rb +196 -0
- data/lib/google/cloud/bigtable/app_profile/job.rb +102 -0
- data/lib/google/cloud/bigtable/app_profile/list.rb +159 -0
- data/lib/google/cloud/bigtable/app_profile.rb +373 -0
- data/lib/google/cloud/bigtable/chunk_processor.rb +253 -0
- data/lib/google/cloud/bigtable/cluster/job.rb +92 -0
- data/lib/google/cloud/bigtable/cluster/list.rb +169 -0
- data/lib/google/cloud/bigtable/cluster.rb +264 -0
- data/lib/google/cloud/bigtable/column_family.rb +280 -0
- data/lib/google/cloud/bigtable/column_range.rb +186 -0
- data/lib/google/cloud/bigtable/convert.rb +75 -0
- data/lib/google/cloud/bigtable/credentials.rb +24 -0
- data/lib/google/cloud/bigtable/errors.rb +35 -0
- data/lib/google/cloud/bigtable/gc_rule.rb +215 -0
- data/lib/google/cloud/bigtable/instance/cluster_map.rb +70 -0
- data/lib/google/cloud/bigtable/instance/job.rb +97 -0
- data/lib/google/cloud/bigtable/instance/list.rb +159 -0
- data/lib/google/cloud/bigtable/instance.rb +921 -0
- data/lib/google/cloud/bigtable/longrunning_job.rb +105 -0
- data/lib/google/cloud/bigtable/mutation_entry.rb +244 -0
- data/lib/google/cloud/bigtable/mutation_operations.rb +338 -0
- data/lib/google/cloud/bigtable/policy.rb +163 -0
- data/lib/google/cloud/bigtable/project.rb +580 -0
- data/lib/google/cloud/bigtable/read_modify_write_rule.rb +129 -0
- data/lib/google/cloud/bigtable/read_operations.rb +345 -0
- data/lib/google/cloud/bigtable/row.rb +125 -0
- data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +539 -0
- data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +108 -0
- data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +570 -0
- data/lib/google/cloud/bigtable/row_filter/simple_filter.rb +273 -0
- data/lib/google/cloud/bigtable/row_filter.rb +593 -0
- data/lib/google/cloud/bigtable/row_range.rb +174 -0
- data/lib/google/cloud/bigtable/rows_mutator.rb +120 -0
- data/lib/google/cloud/bigtable/rows_reader.rb +196 -0
- data/lib/google/cloud/bigtable/sample_row_key.rb +82 -0
- data/lib/google/cloud/bigtable/service.rb +817 -0
- data/lib/google/cloud/bigtable/table/cluster_state.rb +93 -0
- data/lib/google/cloud/bigtable/table/column_family_map.rb +68 -0
- data/lib/google/cloud/bigtable/table/list.rb +147 -0
- data/lib/google/cloud/bigtable/table.rb +676 -0
- data/lib/google/cloud/bigtable/v2/bigtable_client.rb +579 -0
- data/lib/google/cloud/bigtable/v2/bigtable_client_config.json +65 -0
- data/lib/google/cloud/bigtable/v2/credentials.rb +45 -0
- data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/bigtable.rb +286 -0
- data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/data.rb +492 -0
- data/lib/google/cloud/bigtable/v2/doc/google/protobuf/any.rb +124 -0
- data/lib/google/cloud/bigtable/v2/doc/google/protobuf/wrappers.rb +89 -0
- data/lib/google/cloud/bigtable/v2/doc/google/rpc/status.rb +83 -0
- data/lib/google/cloud/bigtable/v2.rb +132 -0
- data/lib/google/cloud/bigtable/value_range.rb +175 -0
- data/lib/google/cloud/bigtable/version.rb +22 -0
- data/lib/google/cloud/bigtable.rb +223 -0
- data/lib/google-cloud-bigtable.rb +167 -0
- metadata +283 -0
@@ -0,0 +1,124 @@
|
|
1
|
+
# Copyright 2018 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module Google
|
16
|
+
module Protobuf
|
17
|
+
# +Any+ contains an arbitrary serialized protocol buffer message along with a
|
18
|
+
# URL that describes the type of the serialized message.
|
19
|
+
#
|
20
|
+
# Protobuf library provides support to pack/unpack Any values in the form
|
21
|
+
# of utility functions or additional generated methods of the Any type.
|
22
|
+
#
|
23
|
+
# Example 1: Pack and unpack a message in C++.
|
24
|
+
#
|
25
|
+
# Foo foo = ...;
|
26
|
+
# Any any;
|
27
|
+
# any.PackFrom(foo);
|
28
|
+
# ...
|
29
|
+
# if (any.UnpackTo(&foo)) {
|
30
|
+
# ...
|
31
|
+
# }
|
32
|
+
#
|
33
|
+
# Example 2: Pack and unpack a message in Java.
|
34
|
+
#
|
35
|
+
# Foo foo = ...;
|
36
|
+
# Any any = Any.pack(foo);
|
37
|
+
# ...
|
38
|
+
# if (any.is(Foo.class)) {
|
39
|
+
# foo = any.unpack(Foo.class);
|
40
|
+
# }
|
41
|
+
#
|
42
|
+
# Example 3: Pack and unpack a message in Python.
|
43
|
+
#
|
44
|
+
# foo = Foo(...)
|
45
|
+
# any = Any()
|
46
|
+
# any.Pack(foo)
|
47
|
+
# ...
|
48
|
+
# if any.Is(Foo.DESCRIPTOR):
|
49
|
+
# any.Unpack(foo)
|
50
|
+
# ...
|
51
|
+
#
|
52
|
+
# Example 4: Pack and unpack a message in Go
|
53
|
+
#
|
54
|
+
# foo := &pb.Foo{...}
|
55
|
+
# any, err := ptypes.MarshalAny(foo)
|
56
|
+
# ...
|
57
|
+
# foo := &pb.Foo{}
|
58
|
+
# if err := ptypes.UnmarshalAny(any, foo); err != nil {
|
59
|
+
# ...
|
60
|
+
# }
|
61
|
+
#
|
62
|
+
# The pack methods provided by protobuf library will by default use
|
63
|
+
# 'type.googleapis.com/full.type.name' as the type URL and the unpack
|
64
|
+
# methods only use the fully qualified type name after the last '/'
|
65
|
+
# in the type URL, for example "foo.bar.com/x/y.z" will yield type
|
66
|
+
# name "y.z".
|
67
|
+
#
|
68
|
+
#
|
69
|
+
# = JSON
|
70
|
+
#
|
71
|
+
# The JSON representation of an +Any+ value uses the regular
|
72
|
+
# representation of the deserialized, embedded message, with an
|
73
|
+
# additional field +@type+ which contains the type URL. Example:
|
74
|
+
#
|
75
|
+
# package google.profile;
|
76
|
+
# message Person {
|
77
|
+
# string first_name = 1;
|
78
|
+
# string last_name = 2;
|
79
|
+
# }
|
80
|
+
#
|
81
|
+
# {
|
82
|
+
# "@type": "type.googleapis.com/google.profile.Person",
|
83
|
+
# "firstName": <string>,
|
84
|
+
# "lastName": <string>
|
85
|
+
# }
|
86
|
+
#
|
87
|
+
# If the embedded message type is well-known and has a custom JSON
|
88
|
+
# representation, that representation will be embedded adding a field
|
89
|
+
# +value+ which holds the custom JSON in addition to the +@type+
|
90
|
+
# field. Example (for message {Google::Protobuf::Duration}):
|
91
|
+
#
|
92
|
+
# {
|
93
|
+
# "@type": "type.googleapis.com/google.protobuf.Duration",
|
94
|
+
# "value": "1.212s"
|
95
|
+
# }
|
96
|
+
# @!attribute [rw] type_url
|
97
|
+
# @return [String]
|
98
|
+
# A URL/resource name whose content describes the type of the
|
99
|
+
# serialized protocol buffer message.
|
100
|
+
#
|
101
|
+
# For URLs which use the scheme +http+, +https+, or no scheme, the
|
102
|
+
# following restrictions and interpretations apply:
|
103
|
+
#
|
104
|
+
# * If no scheme is provided, +https+ is assumed.
|
105
|
+
# * The last segment of the URL's path must represent the fully
|
106
|
+
# qualified name of the type (as in +path/google.protobuf.Duration+).
|
107
|
+
# The name should be in a canonical form (e.g., leading "." is
|
108
|
+
# not accepted).
|
109
|
+
# * An HTTP GET on the URL must yield a {Google::Protobuf::Type}
|
110
|
+
# value in binary format, or produce an error.
|
111
|
+
# * Applications are allowed to cache lookup results based on the
|
112
|
+
# URL, or have them precompiled into a binary to avoid any
|
113
|
+
# lookup. Therefore, binary compatibility needs to be preserved
|
114
|
+
# on changes to types. (Use versioned type names to manage
|
115
|
+
# breaking changes.)
|
116
|
+
#
|
117
|
+
# Schemes other than +http+, +https+ (or the empty scheme) might be
|
118
|
+
# used with implementation specific semantics.
|
119
|
+
# @!attribute [rw] value
|
120
|
+
# @return [String]
|
121
|
+
# Must be a valid serialized protocol buffer of the above specified type.
|
122
|
+
class Any; end
|
123
|
+
end
|
124
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# Copyright 2018 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module Google
|
16
|
+
module Protobuf
|
17
|
+
# Wrapper message for +double+.
|
18
|
+
#
|
19
|
+
# The JSON representation for +DoubleValue+ is JSON number.
|
20
|
+
# @!attribute [rw] value
|
21
|
+
# @return [Float]
|
22
|
+
# The double value.
|
23
|
+
class DoubleValue; end
|
24
|
+
|
25
|
+
# Wrapper message for +float+.
|
26
|
+
#
|
27
|
+
# The JSON representation for +FloatValue+ is JSON number.
|
28
|
+
# @!attribute [rw] value
|
29
|
+
# @return [Float]
|
30
|
+
# The float value.
|
31
|
+
class FloatValue; end
|
32
|
+
|
33
|
+
# Wrapper message for +int64+.
|
34
|
+
#
|
35
|
+
# The JSON representation for +Int64Value+ is JSON string.
|
36
|
+
# @!attribute [rw] value
|
37
|
+
# @return [Integer]
|
38
|
+
# The int64 value.
|
39
|
+
class Int64Value; end
|
40
|
+
|
41
|
+
# Wrapper message for +uint64+.
|
42
|
+
#
|
43
|
+
# The JSON representation for +UInt64Value+ is JSON string.
|
44
|
+
# @!attribute [rw] value
|
45
|
+
# @return [Integer]
|
46
|
+
# The uint64 value.
|
47
|
+
class UInt64Value; end
|
48
|
+
|
49
|
+
# Wrapper message for +int32+.
|
50
|
+
#
|
51
|
+
# The JSON representation for +Int32Value+ is JSON number.
|
52
|
+
# @!attribute [rw] value
|
53
|
+
# @return [Integer]
|
54
|
+
# The int32 value.
|
55
|
+
class Int32Value; end
|
56
|
+
|
57
|
+
# Wrapper message for +uint32+.
|
58
|
+
#
|
59
|
+
# The JSON representation for +UInt32Value+ is JSON number.
|
60
|
+
# @!attribute [rw] value
|
61
|
+
# @return [Integer]
|
62
|
+
# The uint32 value.
|
63
|
+
class UInt32Value; end
|
64
|
+
|
65
|
+
# Wrapper message for +bool+.
|
66
|
+
#
|
67
|
+
# The JSON representation for +BoolValue+ is JSON +true+ and +false+.
|
68
|
+
# @!attribute [rw] value
|
69
|
+
# @return [true, false]
|
70
|
+
# The bool value.
|
71
|
+
class BoolValue; end
|
72
|
+
|
73
|
+
# Wrapper message for +string+.
|
74
|
+
#
|
75
|
+
# The JSON representation for +StringValue+ is JSON string.
|
76
|
+
# @!attribute [rw] value
|
77
|
+
# @return [String]
|
78
|
+
# The string value.
|
79
|
+
class StringValue; end
|
80
|
+
|
81
|
+
# Wrapper message for +bytes+.
|
82
|
+
#
|
83
|
+
# The JSON representation for +BytesValue+ is JSON string.
|
84
|
+
# @!attribute [rw] value
|
85
|
+
# @return [String]
|
86
|
+
# The bytes value.
|
87
|
+
class BytesValue; end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# Copyright 2018 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module Google
|
16
|
+
module Rpc
|
17
|
+
# The +Status+ type defines a logical error model that is suitable for different
|
18
|
+
# programming environments, including REST APIs and RPC APIs. It is used by
|
19
|
+
# [gRPC](https://github.com/grpc). The error model is designed to be:
|
20
|
+
#
|
21
|
+
# * Simple to use and understand for most users
|
22
|
+
# * Flexible enough to meet unexpected needs
|
23
|
+
#
|
24
|
+
# = Overview
|
25
|
+
#
|
26
|
+
# The +Status+ message contains three pieces of data: error code, error message,
|
27
|
+
# and error details. The error code should be an enum value of
|
28
|
+
# {Google::Rpc::Code}, but it may accept additional error codes if needed. The
|
29
|
+
# error message should be a developer-facing English message that helps
|
30
|
+
# developers *understand* and *resolve* the error. If a localized user-facing
|
31
|
+
# error message is needed, put the localized message in the error details or
|
32
|
+
# localize it in the client. The optional error details may contain arbitrary
|
33
|
+
# information about the error. There is a predefined set of error detail types
|
34
|
+
# in the package +google.rpc+ that can be used for common error conditions.
|
35
|
+
#
|
36
|
+
# = Language mapping
|
37
|
+
#
|
38
|
+
# The +Status+ message is the logical representation of the error model, but it
|
39
|
+
# is not necessarily the actual wire format. When the +Status+ message is
|
40
|
+
# exposed in different client libraries and different wire protocols, it can be
|
41
|
+
# mapped differently. For example, it will likely be mapped to some exceptions
|
42
|
+
# in Java, but more likely mapped to some error codes in C.
|
43
|
+
#
|
44
|
+
# = Other uses
|
45
|
+
#
|
46
|
+
# The error model and the +Status+ message can be used in a variety of
|
47
|
+
# environments, either with or without APIs, to provide a
|
48
|
+
# consistent developer experience across different environments.
|
49
|
+
#
|
50
|
+
# Example uses of this error model include:
|
51
|
+
#
|
52
|
+
# * Partial errors. If a service needs to return partial errors to the client,
|
53
|
+
# it may embed the +Status+ in the normal response to indicate the partial
|
54
|
+
# errors.
|
55
|
+
#
|
56
|
+
# * Workflow errors. A typical workflow has multiple steps. Each step may
|
57
|
+
# have a +Status+ message for error reporting.
|
58
|
+
#
|
59
|
+
# * Batch operations. If a client uses batch request and batch response, the
|
60
|
+
# +Status+ message should be used directly inside batch response, one for
|
61
|
+
# each error sub-response.
|
62
|
+
#
|
63
|
+
# * Asynchronous operations. If an API call embeds asynchronous operation
|
64
|
+
# results in its response, the status of those operations should be
|
65
|
+
# represented directly using the +Status+ message.
|
66
|
+
#
|
67
|
+
# * Logging. If some API errors are stored in logs, the message +Status+ could
|
68
|
+
# be used directly after any stripping needed for security/privacy reasons.
|
69
|
+
# @!attribute [rw] code
|
70
|
+
# @return [Integer]
|
71
|
+
# The status code, which should be an enum value of {Google::Rpc::Code}.
|
72
|
+
# @!attribute [rw] message
|
73
|
+
# @return [String]
|
74
|
+
# A developer-facing error message, which should be in English. Any
|
75
|
+
# user-facing error message should be localized and sent in the
|
76
|
+
# {Google::Rpc::Status#details} field, or localized by the client.
|
77
|
+
# @!attribute [rw] details
|
78
|
+
# @return [Array<Google::Protobuf::Any>]
|
79
|
+
# A list of messages that carry the error details. There is a common set of
|
80
|
+
# message types for APIs to use.
|
81
|
+
class Status; end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,132 @@
|
|
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
|
+
require "google/cloud/bigtable/v2/bigtable_client"
|
16
|
+
|
17
|
+
module Google
|
18
|
+
module Cloud
|
19
|
+
module Bigtable
|
20
|
+
# rubocop:disable LineLength
|
21
|
+
|
22
|
+
##
|
23
|
+
# # Ruby Client for Cloud Bigtable API ([Alpha](https://github.com/GoogleCloudPlatform/google-cloud-ruby#versioning))
|
24
|
+
#
|
25
|
+
# [Cloud Bigtable API][Product Documentation]:
|
26
|
+
# API for reading and writing the contents of Bigtables associated with a
|
27
|
+
# cloud project.
|
28
|
+
# - [Product Documentation][]
|
29
|
+
#
|
30
|
+
# ## Quick Start
|
31
|
+
# In order to use this library, you first need to go through the following
|
32
|
+
# steps:
|
33
|
+
#
|
34
|
+
# 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
|
35
|
+
# 2. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
|
36
|
+
# 3. [Enable the Cloud Bigtable API.](https://console.cloud.google.com/apis/library/bigtable.googleapis.com)
|
37
|
+
# 4. [Setup Authentication.](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud/master/guides/authentication)
|
38
|
+
#
|
39
|
+
# ### Next Steps
|
40
|
+
# - Read the [Cloud Bigtable API Product documentation][Product Documentation]
|
41
|
+
# to learn more about the product and see How-to Guides.
|
42
|
+
# - View this [repository's main README](https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/master/README.md)
|
43
|
+
# to see the full list of Cloud APIs that we cover.
|
44
|
+
#
|
45
|
+
# [Product Documentation]: https://cloud.google.com/bigtable
|
46
|
+
#
|
47
|
+
# ## Enabling Logging
|
48
|
+
#
|
49
|
+
# To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library.
|
50
|
+
# 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,
|
51
|
+
# or a [`Google::Cloud::Logging::Logger`](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-logging/latest/google/cloud/logging/logger)
|
52
|
+
# 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)
|
53
|
+
# and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
|
54
|
+
#
|
55
|
+
# Configuring a Ruby stdlib logger:
|
56
|
+
#
|
57
|
+
# ```ruby
|
58
|
+
# require "logger"
|
59
|
+
#
|
60
|
+
# module MyLogger
|
61
|
+
# LOGGER = Logger.new $stderr, level: Logger::WARN
|
62
|
+
# def logger
|
63
|
+
# LOGGER
|
64
|
+
# end
|
65
|
+
# end
|
66
|
+
#
|
67
|
+
# # Define a gRPC module-level logger method before grpc/logconfig.rb loads.
|
68
|
+
# module GRPC
|
69
|
+
# extend MyLogger
|
70
|
+
# end
|
71
|
+
# ```
|
72
|
+
#
|
73
|
+
module V2
|
74
|
+
# rubocop:enable LineLength
|
75
|
+
|
76
|
+
##
|
77
|
+
# Service for reading from and writing to existing Bigtable tables.
|
78
|
+
#
|
79
|
+
# @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
|
80
|
+
# Provides the means for authenticating requests made by the client. This parameter can
|
81
|
+
# be many types.
|
82
|
+
# A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
|
83
|
+
# authenticating requests made by this client.
|
84
|
+
# A `String` will be treated as the path to the keyfile to be used for the construction of
|
85
|
+
# credentials for this client.
|
86
|
+
# A `Hash` will be treated as the contents of a keyfile to be used for the construction of
|
87
|
+
# credentials for this client.
|
88
|
+
# A `GRPC::Core::Channel` will be used to make calls through.
|
89
|
+
# A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
|
90
|
+
# should already be composed with a `GRPC::Core::CallCredentials` object.
|
91
|
+
# A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
|
92
|
+
# metadata for requests, generally, to give OAuth credentials.
|
93
|
+
# @param scopes [Array<String>]
|
94
|
+
# The OAuth scopes for this service. This parameter is ignored if
|
95
|
+
# an updater_proc is supplied.
|
96
|
+
# @param client_config [Hash]
|
97
|
+
# A Hash for call options for each method. See
|
98
|
+
# Google::Gax#construct_settings for the structure of
|
99
|
+
# this data. Falls back to the default config if not specified
|
100
|
+
# or the specified config is missing data points.
|
101
|
+
# @param timeout [Numeric]
|
102
|
+
# The default timeout, in seconds, for calls made through this client.
|
103
|
+
# @param metadata [Hash]
|
104
|
+
# Default metadata to be sent with each request. This can be overridden on a per call basis.
|
105
|
+
# @param exception_transformer [Proc]
|
106
|
+
# An optional proc that intercepts any exceptions raised during an API call to inject
|
107
|
+
# custom error handling.
|
108
|
+
def self.new \
|
109
|
+
credentials: nil,
|
110
|
+
scopes: nil,
|
111
|
+
client_config: nil,
|
112
|
+
timeout: nil,
|
113
|
+
metadata: nil,
|
114
|
+
exception_transformer: nil,
|
115
|
+
lib_name: nil,
|
116
|
+
lib_version: nil
|
117
|
+
kwargs = {
|
118
|
+
credentials: credentials,
|
119
|
+
scopes: scopes,
|
120
|
+
client_config: client_config,
|
121
|
+
timeout: timeout,
|
122
|
+
metadata: metadata,
|
123
|
+
exception_transformer: exception_transformer,
|
124
|
+
lib_name: lib_name,
|
125
|
+
lib_version: lib_version
|
126
|
+
}.select { |_, v| v != nil }
|
127
|
+
Google::Cloud::Bigtable::V2::BigtableClient.new(**kwargs)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
@@ -0,0 +1,175 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2018 Google LLC
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
|
18
|
+
module Google
|
19
|
+
module Cloud
|
20
|
+
module Bigtable
|
21
|
+
# # ValueRange
|
22
|
+
#
|
23
|
+
# Specifies a contiguous range of string values.
|
24
|
+
#
|
25
|
+
# * from value bound : The value at which to from the range.
|
26
|
+
# If neither field is set, interpreted as the empty string, inclusive.
|
27
|
+
# * End value bound: The value at which to end the range.
|
28
|
+
# If neither field is set, interpreted as the infinite string value, exclusive.
|
29
|
+
#
|
30
|
+
# @example
|
31
|
+
# require "google/cloud/bigtable"
|
32
|
+
#
|
33
|
+
# bigtable = Google::Cloud::Bigtable.new
|
34
|
+
# table = bigtable.table("my-instance", "my-table")
|
35
|
+
#
|
36
|
+
# # Range that includes all row keys including "value-001" to "value-005" excluding
|
37
|
+
# table.new_value_range.from("value-001").to("value-005")
|
38
|
+
#
|
39
|
+
# # Range that includes all row keys including "value-001" up to inclusive "value-010".
|
40
|
+
# table.new_value_range.from("value-001").to("value-010", inclusive: true)
|
41
|
+
#
|
42
|
+
# # Range that includes all row keys including "value-001" up until end of the row keys.
|
43
|
+
# table.new_value_range.from("value-001")
|
44
|
+
#
|
45
|
+
# # Range that includes all row keys exclusive "value-001" up until end of the row keys.
|
46
|
+
# table.new_value_range.from("value-001", inclusive: false)
|
47
|
+
#
|
48
|
+
# # Range with unbounded from and the exclusive end "value-100"
|
49
|
+
# table.new_value_range.to("value-100")
|
50
|
+
#
|
51
|
+
# # Range that includes all row keys including from and end row keys "value-001", "value-100"
|
52
|
+
# table.new_value_range.between("value-001", "value-100")
|
53
|
+
#
|
54
|
+
# # Range that includes all row keys including "value-001" up until "value-100"
|
55
|
+
# table.new_value_range.of("value-001", "value-100")
|
56
|
+
#
|
57
|
+
class ValueRange
|
58
|
+
# @private
|
59
|
+
# Create value range instance.
|
60
|
+
def initialize
|
61
|
+
@grpc = Google::Bigtable::V2::ValueRange.new
|
62
|
+
end
|
63
|
+
|
64
|
+
# Ser row range with the lower bound.
|
65
|
+
#
|
66
|
+
# @param value [String] value. Required
|
67
|
+
# @param inclusive [String] Inclusive/Exclusive lower bound.
|
68
|
+
# Default it is an inclusive lower bound.
|
69
|
+
# @return [Google::Cloud::Bigtable::ValueRange]
|
70
|
+
#
|
71
|
+
# @example Inclusive lower bound.
|
72
|
+
# require "google/cloud/bigtable"
|
73
|
+
#
|
74
|
+
# bigtable = Google::Cloud::Bigtable.new
|
75
|
+
# table = bigtable.table("my-instance", "my-table")
|
76
|
+
#
|
77
|
+
# range = table.new_value_range.from("value-001")
|
78
|
+
#
|
79
|
+
# @example Exclusive lower bound.
|
80
|
+
# require "google/cloud/bigtable"
|
81
|
+
#
|
82
|
+
# bigtable = Google::Cloud::Bigtable.new
|
83
|
+
# table = bigtable.table("my-instance", "my-table")
|
84
|
+
#
|
85
|
+
# range = table.new_value_range.from("value-001", inclusive: false)
|
86
|
+
#
|
87
|
+
def from value, inclusive: true
|
88
|
+
if inclusive
|
89
|
+
@grpc.start_value_closed = value
|
90
|
+
else
|
91
|
+
@grpc.start_value_open = value
|
92
|
+
end
|
93
|
+
self
|
94
|
+
end
|
95
|
+
|
96
|
+
# Set value range with upper bound.
|
97
|
+
#
|
98
|
+
# @param value [String] value. Required
|
99
|
+
# @param inclusive [String] Inclusive/Exclusive upper bound.
|
100
|
+
# Default it is an exclusive upper bound.
|
101
|
+
# @return [Google::Cloud::Bigtable::ValueRange]
|
102
|
+
#
|
103
|
+
# @example Inclusive upper bound.
|
104
|
+
# require "google/cloud/bigtable"
|
105
|
+
#
|
106
|
+
# bigtable = Google::Cloud::Bigtable.new
|
107
|
+
# table = bigtable.table("my-instance", "my-table")
|
108
|
+
#
|
109
|
+
# range = table.new_value_range.to("value-010", inclusive: true)
|
110
|
+
#
|
111
|
+
# @example Exclusive upper bound.
|
112
|
+
# require "google/cloud/bigtable"
|
113
|
+
#
|
114
|
+
# bigtable = Google::Cloud::Bigtable.new
|
115
|
+
# table = bigtable.table("my-instance", "my-table")
|
116
|
+
#
|
117
|
+
# range = table.new_value_range.to("value-010")
|
118
|
+
#
|
119
|
+
def to value, inclusive: false
|
120
|
+
if inclusive
|
121
|
+
@grpc.end_value_closed = value
|
122
|
+
else
|
123
|
+
@grpc.end_value_open = value
|
124
|
+
end
|
125
|
+
self
|
126
|
+
end
|
127
|
+
|
128
|
+
# Set value range with the inclusive lower and upper bound.
|
129
|
+
#
|
130
|
+
# @param from_value [String] Inclusive from value. Required
|
131
|
+
# @param to_value [String] Inclusive end value. Required
|
132
|
+
# @return [Google::Cloud::Bigtable::ValueRange]
|
133
|
+
# Range with inclusive from and end value.
|
134
|
+
#
|
135
|
+
# @example
|
136
|
+
# require "google/cloud/bigtable"
|
137
|
+
#
|
138
|
+
# bigtable = Google::Cloud::Bigtable.new
|
139
|
+
# table = bigtable.table("my-instance", "my-table")
|
140
|
+
#
|
141
|
+
# range = table.new_value_range.between("value-001", "value-010")
|
142
|
+
#
|
143
|
+
def between from_value, to_value
|
144
|
+
from(from_value).to(to_value, inclusive: true)
|
145
|
+
end
|
146
|
+
|
147
|
+
# Set value range with the inclusive lower and the exclusive upper bound.
|
148
|
+
#
|
149
|
+
# @param from_value [String] Inclusive from value
|
150
|
+
# @param to_value [String] Exclusive to value
|
151
|
+
# @return [Google::Cloud::Bigtable::ValueRange]
|
152
|
+
#
|
153
|
+
# @example
|
154
|
+
# require "google/cloud/bigtable"
|
155
|
+
#
|
156
|
+
# bigtable = Google::Cloud::Bigtable.new
|
157
|
+
# table = bigtable.table("my-instance", "my-table")
|
158
|
+
#
|
159
|
+
# range = table.new_value_range.of("value-001", "value-010")
|
160
|
+
#
|
161
|
+
def of from_value, to_value
|
162
|
+
from(from_value).to(to_value)
|
163
|
+
end
|
164
|
+
|
165
|
+
# @private
|
166
|
+
#
|
167
|
+
# @return [Google::Bigtable::V2::ValueRange]
|
168
|
+
#
|
169
|
+
def to_grpc
|
170
|
+
@grpc
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|