google-cloud-firestore-v1 0.7.1 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/AUTHENTICATION.md +1 -1
- data/lib/google/cloud/firestore/v1/firestore/client.rb +147 -0
- data/lib/google/cloud/firestore/v1/version.rb +1 -1
- data/lib/google/firestore/v1/aggregation_result_pb.rb +24 -0
- data/lib/google/firestore/v1/firestore_pb.rb +19 -0
- data/lib/google/firestore/v1/firestore_services_pb.rb +13 -0
- data/lib/google/firestore/v1/query_pb.rb +19 -0
- data/proto_docs/google/firestore/v1/aggregation_result.rb +52 -0
- data/proto_docs/google/firestore/v1/firestore.rb +55 -0
- data/proto_docs/google/firestore/v1/query.rb +144 -7
- metadata +24 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcc0798a8aa1b6a70669958d01f1353dff7e9d002ded6fc42a27ec538d92e597
|
4
|
+
data.tar.gz: 5e35f28c24d813ad220148bfe15ba385359440563dedb5b2342a2d262add911c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 237cc0f52525a3c60eb4e0783d27c461cc2b21d02359d6e19eccdec1ce70d0dd4aa940fdcc1ae26f71191171c8e7b6a75761bf5402f44bf0aafc6f06df18965b
|
7
|
+
data.tar.gz: 6d75b35dc3929b94ea27cbb684f630c7b7b6ff9a569a349688bf25505f4a9d8e54a1ff8836a25d62bb25f3b10c376cd0aede9bb657a854942c9155b0061a59d0
|
data/AUTHENTICATION.md
CHANGED
@@ -114,7 +114,7 @@ credentials are discovered.
|
|
114
114
|
To configure your system for this, simply:
|
115
115
|
|
116
116
|
1. [Download and install the Cloud SDK](https://cloud.google.com/sdk)
|
117
|
-
2. Authenticate using OAuth 2.0 `$ gcloud auth login`
|
117
|
+
2. Authenticate using OAuth 2.0 `$ gcloud auth application-default login`
|
118
118
|
3. Write code as if already authenticated.
|
119
119
|
|
120
120
|
**NOTE:** This is _not_ recommended for running in production. The Cloud SDK
|
@@ -18,6 +18,7 @@
|
|
18
18
|
|
19
19
|
require "google/cloud/errors"
|
20
20
|
require "google/firestore/v1/firestore_pb"
|
21
|
+
require "google/cloud/location"
|
21
22
|
|
22
23
|
module Google
|
23
24
|
module Cloud
|
@@ -114,6 +115,11 @@ module Google
|
|
114
115
|
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [8, 14, 13, 4]
|
115
116
|
}
|
116
117
|
|
118
|
+
default_config.rpcs.run_aggregation_query.timeout = 300.0
|
119
|
+
default_config.rpcs.run_aggregation_query.retry_policy = {
|
120
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [8, 14, 13, 4]
|
121
|
+
}
|
122
|
+
|
117
123
|
default_config.rpcs.partition_query.timeout = 300.0
|
118
124
|
default_config.rpcs.partition_query.retry_policy = {
|
119
125
|
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [8, 14, 13, 4]
|
@@ -210,6 +216,12 @@ module Google
|
|
210
216
|
@quota_project_id = @config.quota_project
|
211
217
|
@quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
|
212
218
|
|
219
|
+
@location_client = Google::Cloud::Location::Locations::Client.new do |config|
|
220
|
+
config.credentials = credentials
|
221
|
+
config.quota_project = @quota_project_id
|
222
|
+
config.endpoint = @config.endpoint
|
223
|
+
end
|
224
|
+
|
213
225
|
@firestore_stub = ::Gapic::ServiceStub.new(
|
214
226
|
::Google::Cloud::Firestore::V1::Firestore::Stub,
|
215
227
|
credentials: credentials,
|
@@ -219,6 +231,13 @@ module Google
|
|
219
231
|
)
|
220
232
|
end
|
221
233
|
|
234
|
+
##
|
235
|
+
# Get the associated client for mix-in of the Locations.
|
236
|
+
#
|
237
|
+
# @return [Google::Cloud::Location::Locations::Client]
|
238
|
+
#
|
239
|
+
attr_reader :location_client
|
240
|
+
|
222
241
|
# Service calls
|
223
242
|
|
224
243
|
##
|
@@ -1123,6 +1142,127 @@ module Google
|
|
1123
1142
|
raise ::Google::Cloud::Error.from_error(e)
|
1124
1143
|
end
|
1125
1144
|
|
1145
|
+
##
|
1146
|
+
# Runs an aggregation query.
|
1147
|
+
#
|
1148
|
+
# Rather than producing {::Google::Cloud::Firestore::V1::Document Document} results like {::Google::Cloud::Firestore::V1::Firestore::Client#run_query Firestore.RunQuery},
|
1149
|
+
# this API allows running an aggregation to produce a series of
|
1150
|
+
# {::Google::Cloud::Firestore::V1::AggregationResult AggregationResult} server-side.
|
1151
|
+
#
|
1152
|
+
# High-Level Example:
|
1153
|
+
#
|
1154
|
+
# ```
|
1155
|
+
# -- Return the number of documents in table given a filter.
|
1156
|
+
# SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
|
1157
|
+
# ```
|
1158
|
+
#
|
1159
|
+
# @overload run_aggregation_query(request, options = nil)
|
1160
|
+
# Pass arguments to `run_aggregation_query` via a request object, either of type
|
1161
|
+
# {::Google::Cloud::Firestore::V1::RunAggregationQueryRequest} or an equivalent Hash.
|
1162
|
+
#
|
1163
|
+
# @param request [::Google::Cloud::Firestore::V1::RunAggregationQueryRequest, ::Hash]
|
1164
|
+
# A request object representing the call parameters. Required. To specify no
|
1165
|
+
# parameters, or to keep all the default parameter values, pass an empty Hash.
|
1166
|
+
# @param options [::Gapic::CallOptions, ::Hash]
|
1167
|
+
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
1168
|
+
#
|
1169
|
+
# @overload run_aggregation_query(parent: nil, structured_aggregation_query: nil, transaction: nil, new_transaction: nil, read_time: nil)
|
1170
|
+
# Pass arguments to `run_aggregation_query` via keyword arguments. Note that at
|
1171
|
+
# least one keyword argument is required. To specify no parameters, or to keep all
|
1172
|
+
# the default parameter values, pass an empty Hash as a request object (see above).
|
1173
|
+
#
|
1174
|
+
# @param parent [::String]
|
1175
|
+
# Required. The parent resource name. In the format:
|
1176
|
+
# `projects/{project_id}/databases/{database_id}/documents` or
|
1177
|
+
# `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
1178
|
+
# For example:
|
1179
|
+
# `projects/my-project/databases/my-database/documents` or
|
1180
|
+
# `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
1181
|
+
# @param structured_aggregation_query [::Google::Cloud::Firestore::V1::StructuredAggregationQuery, ::Hash]
|
1182
|
+
# An aggregation query.
|
1183
|
+
# @param transaction [::String]
|
1184
|
+
# Run the aggregation within an already active transaction.
|
1185
|
+
#
|
1186
|
+
# The value here is the opaque transaction ID to execute the query in.
|
1187
|
+
# @param new_transaction [::Google::Cloud::Firestore::V1::TransactionOptions, ::Hash]
|
1188
|
+
# Starts a new transaction as part of the query, defaulting to read-only.
|
1189
|
+
#
|
1190
|
+
# The new transaction ID will be returned as the first response in the
|
1191
|
+
# stream.
|
1192
|
+
# @param read_time [::Google::Protobuf::Timestamp, ::Hash]
|
1193
|
+
# Executes the query at the given timestamp.
|
1194
|
+
#
|
1195
|
+
# Requires:
|
1196
|
+
#
|
1197
|
+
# * Cannot be more than 270 seconds in the past.
|
1198
|
+
#
|
1199
|
+
# @yield [response, operation] Access the result along with the RPC operation
|
1200
|
+
# @yieldparam response [::Enumerable<::Google::Cloud::Firestore::V1::RunAggregationQueryResponse>]
|
1201
|
+
# @yieldparam operation [::GRPC::ActiveCall::Operation]
|
1202
|
+
#
|
1203
|
+
# @return [::Enumerable<::Google::Cloud::Firestore::V1::RunAggregationQueryResponse>]
|
1204
|
+
#
|
1205
|
+
# @raise [::Google::Cloud::Error] if the RPC is aborted.
|
1206
|
+
#
|
1207
|
+
# @example Basic example
|
1208
|
+
# require "google/cloud/firestore/v1"
|
1209
|
+
#
|
1210
|
+
# # Create a client object. The client can be reused for multiple calls.
|
1211
|
+
# client = Google::Cloud::Firestore::V1::Firestore::Client.new
|
1212
|
+
#
|
1213
|
+
# # Create a request. To set request fields, pass in keyword arguments.
|
1214
|
+
# request = Google::Cloud::Firestore::V1::RunAggregationQueryRequest.new
|
1215
|
+
#
|
1216
|
+
# # Call the run_aggregation_query method.
|
1217
|
+
# result = client.run_aggregation_query request
|
1218
|
+
#
|
1219
|
+
# # The returned object is a streamed enumerable yielding elements of
|
1220
|
+
# # type ::Google::Cloud::Firestore::V1::RunAggregationQueryResponse.
|
1221
|
+
# result.each do |response|
|
1222
|
+
# p response
|
1223
|
+
# end
|
1224
|
+
#
|
1225
|
+
def run_aggregation_query request, options = nil
|
1226
|
+
raise ::ArgumentError, "request must be provided" if request.nil?
|
1227
|
+
|
1228
|
+
request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::V1::RunAggregationQueryRequest
|
1229
|
+
|
1230
|
+
# Converts hash and nil to an options object
|
1231
|
+
options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
|
1232
|
+
|
1233
|
+
# Customize the options with defaults
|
1234
|
+
metadata = @config.rpcs.run_aggregation_query.metadata.to_h
|
1235
|
+
|
1236
|
+
# Set x-goog-api-client and x-goog-user-project headers
|
1237
|
+
metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
|
1238
|
+
lib_name: @config.lib_name, lib_version: @config.lib_version,
|
1239
|
+
gapic_version: ::Google::Cloud::Firestore::V1::VERSION
|
1240
|
+
metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
|
1241
|
+
|
1242
|
+
header_params = {}
|
1243
|
+
if request.parent
|
1244
|
+
header_params["parent"] = request.parent
|
1245
|
+
end
|
1246
|
+
|
1247
|
+
request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
1248
|
+
metadata[:"x-goog-request-params"] ||= request_params_header
|
1249
|
+
|
1250
|
+
options.apply_defaults timeout: @config.rpcs.run_aggregation_query.timeout,
|
1251
|
+
metadata: metadata,
|
1252
|
+
retry_policy: @config.rpcs.run_aggregation_query.retry_policy
|
1253
|
+
|
1254
|
+
options.apply_defaults timeout: @config.timeout,
|
1255
|
+
metadata: @config.metadata,
|
1256
|
+
retry_policy: @config.retry_policy
|
1257
|
+
|
1258
|
+
@firestore_stub.call_rpc :run_aggregation_query, request, options: options do |response, operation|
|
1259
|
+
yield response, operation if block_given?
|
1260
|
+
return response
|
1261
|
+
end
|
1262
|
+
rescue ::GRPC::BadStatus => e
|
1263
|
+
raise ::Google::Cloud::Error.from_error(e)
|
1264
|
+
end
|
1265
|
+
|
1126
1266
|
##
|
1127
1267
|
# Partitions a query by returning partition cursors that can be used to run
|
1128
1268
|
# the query in parallel. The returned partition cursors are split points that
|
@@ -1897,6 +2037,11 @@ module Google
|
|
1897
2037
|
#
|
1898
2038
|
attr_reader :run_query
|
1899
2039
|
##
|
2040
|
+
# RPC-specific configuration for `run_aggregation_query`
|
2041
|
+
# @return [::Gapic::Config::Method]
|
2042
|
+
#
|
2043
|
+
attr_reader :run_aggregation_query
|
2044
|
+
##
|
1900
2045
|
# RPC-specific configuration for `partition_query`
|
1901
2046
|
# @return [::Gapic::Config::Method]
|
1902
2047
|
#
|
@@ -1947,6 +2092,8 @@ module Google
|
|
1947
2092
|
@rollback = ::Gapic::Config::Method.new rollback_config
|
1948
2093
|
run_query_config = parent_rpcs.run_query if parent_rpcs.respond_to? :run_query
|
1949
2094
|
@run_query = ::Gapic::Config::Method.new run_query_config
|
2095
|
+
run_aggregation_query_config = parent_rpcs.run_aggregation_query if parent_rpcs.respond_to? :run_aggregation_query
|
2096
|
+
@run_aggregation_query = ::Gapic::Config::Method.new run_aggregation_query_config
|
1950
2097
|
partition_query_config = parent_rpcs.partition_query if parent_rpcs.respond_to? :partition_query
|
1951
2098
|
@partition_query = ::Gapic::Config::Method.new partition_query_config
|
1952
2099
|
write_config = parent_rpcs.write if parent_rpcs.respond_to? :write
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: google/firestore/v1/aggregation_result.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
require 'google/firestore/v1/document_pb'
|
7
|
+
|
8
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
9
|
+
add_file("google/firestore/v1/aggregation_result.proto", :syntax => :proto3) do
|
10
|
+
add_message "google.firestore.v1.AggregationResult" do
|
11
|
+
map :aggregate_fields, :string, :message, 2, "google.firestore.v1.Value"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
module Google
|
17
|
+
module Cloud
|
18
|
+
module Firestore
|
19
|
+
module V1
|
20
|
+
AggregationResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.AggregationResult").msgclass
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -6,6 +6,7 @@ require 'google/protobuf'
|
|
6
6
|
require 'google/api/annotations_pb'
|
7
7
|
require 'google/api/client_pb'
|
8
8
|
require 'google/api/field_behavior_pb'
|
9
|
+
require 'google/firestore/v1/aggregation_result_pb'
|
9
10
|
require 'google/firestore/v1/common_pb'
|
10
11
|
require 'google/firestore/v1/document_pb'
|
11
12
|
require 'google/firestore/v1/query_pb'
|
@@ -116,6 +117,22 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
116
117
|
optional :done, :bool, 6
|
117
118
|
end
|
118
119
|
end
|
120
|
+
add_message "google.firestore.v1.RunAggregationQueryRequest" do
|
121
|
+
optional :parent, :string, 1
|
122
|
+
oneof :query_type do
|
123
|
+
optional :structured_aggregation_query, :message, 2, "google.firestore.v1.StructuredAggregationQuery"
|
124
|
+
end
|
125
|
+
oneof :consistency_selector do
|
126
|
+
optional :transaction, :bytes, 4
|
127
|
+
optional :new_transaction, :message, 5, "google.firestore.v1.TransactionOptions"
|
128
|
+
optional :read_time, :message, 6, "google.protobuf.Timestamp"
|
129
|
+
end
|
130
|
+
end
|
131
|
+
add_message "google.firestore.v1.RunAggregationQueryResponse" do
|
132
|
+
optional :result, :message, 1, "google.firestore.v1.AggregationResult"
|
133
|
+
optional :transaction, :bytes, 2
|
134
|
+
optional :read_time, :message, 3, "google.protobuf.Timestamp"
|
135
|
+
end
|
119
136
|
add_message "google.firestore.v1.PartitionQueryRequest" do
|
120
137
|
optional :parent, :string, 1
|
121
138
|
optional :partition_count, :int64, 3
|
@@ -240,6 +257,8 @@ module Google
|
|
240
257
|
RollbackRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RollbackRequest").msgclass
|
241
258
|
RunQueryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RunQueryRequest").msgclass
|
242
259
|
RunQueryResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RunQueryResponse").msgclass
|
260
|
+
RunAggregationQueryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RunAggregationQueryRequest").msgclass
|
261
|
+
RunAggregationQueryResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RunAggregationQueryResponse").msgclass
|
243
262
|
PartitionQueryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.PartitionQueryRequest").msgclass
|
244
263
|
PartitionQueryResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.PartitionQueryResponse").msgclass
|
245
264
|
WriteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.WriteRequest").msgclass
|
@@ -63,6 +63,19 @@ module Google
|
|
63
63
|
rpc :Rollback, ::Google::Cloud::Firestore::V1::RollbackRequest, ::Google::Protobuf::Empty
|
64
64
|
# Runs a query.
|
65
65
|
rpc :RunQuery, ::Google::Cloud::Firestore::V1::RunQueryRequest, stream(::Google::Cloud::Firestore::V1::RunQueryResponse)
|
66
|
+
# Runs an aggregation query.
|
67
|
+
#
|
68
|
+
# Rather than producing [Document][google.firestore.v1.Document] results like [Firestore.RunQuery][google.firestore.v1.Firestore.RunQuery],
|
69
|
+
# this API allows running an aggregation to produce a series of
|
70
|
+
# [AggregationResult][google.firestore.v1.AggregationResult] server-side.
|
71
|
+
#
|
72
|
+
# High-Level Example:
|
73
|
+
#
|
74
|
+
# ```
|
75
|
+
# -- Return the number of documents in table given a filter.
|
76
|
+
# SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
|
77
|
+
# ```
|
78
|
+
rpc :RunAggregationQuery, ::Google::Cloud::Firestore::V1::RunAggregationQueryRequest, stream(::Google::Cloud::Firestore::V1::RunAggregationQueryResponse)
|
66
79
|
# Partitions a query by returning partition cursors that can be used to run
|
67
80
|
# the query in parallel. The returned partition cursors are split points that
|
68
81
|
# can be used by RunQuery as starting/end points for the query results.
|
@@ -3,6 +3,7 @@
|
|
3
3
|
|
4
4
|
require 'google/protobuf'
|
5
5
|
|
6
|
+
require 'google/api/field_behavior_pb'
|
6
7
|
require 'google/firestore/v1/document_pb'
|
7
8
|
require 'google/protobuf/wrappers_pb'
|
8
9
|
|
@@ -83,6 +84,21 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
83
84
|
value :ASCENDING, 1
|
84
85
|
value :DESCENDING, 2
|
85
86
|
end
|
87
|
+
add_message "google.firestore.v1.StructuredAggregationQuery" do
|
88
|
+
repeated :aggregations, :message, 3, "google.firestore.v1.StructuredAggregationQuery.Aggregation"
|
89
|
+
oneof :query_type do
|
90
|
+
optional :structured_query, :message, 1, "google.firestore.v1.StructuredQuery"
|
91
|
+
end
|
92
|
+
end
|
93
|
+
add_message "google.firestore.v1.StructuredAggregationQuery.Aggregation" do
|
94
|
+
optional :alias, :string, 7
|
95
|
+
oneof :operator do
|
96
|
+
optional :count, :message, 1, "google.firestore.v1.StructuredAggregationQuery.Aggregation.Count"
|
97
|
+
end
|
98
|
+
end
|
99
|
+
add_message "google.firestore.v1.StructuredAggregationQuery.Aggregation.Count" do
|
100
|
+
optional :up_to, :message, 1, "google.protobuf.Int64Value"
|
101
|
+
end
|
86
102
|
add_message "google.firestore.v1.Cursor" do
|
87
103
|
repeated :values, :message, 1, "google.firestore.v1.Value"
|
88
104
|
optional :before, :bool, 2
|
@@ -107,6 +123,9 @@ module Google
|
|
107
123
|
StructuredQuery::FieldReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.StructuredQuery.FieldReference").msgclass
|
108
124
|
StructuredQuery::Projection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.StructuredQuery.Projection").msgclass
|
109
125
|
StructuredQuery::Direction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.StructuredQuery.Direction").enummodule
|
126
|
+
StructuredAggregationQuery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.StructuredAggregationQuery").msgclass
|
127
|
+
StructuredAggregationQuery::Aggregation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.StructuredAggregationQuery.Aggregation").msgclass
|
128
|
+
StructuredAggregationQuery::Aggregation::Count = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.StructuredAggregationQuery.Aggregation.Count").msgclass
|
110
129
|
Cursor = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.Cursor").msgclass
|
111
130
|
end
|
112
131
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2022 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
|
+
# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
|
18
|
+
|
19
|
+
|
20
|
+
module Google
|
21
|
+
module Cloud
|
22
|
+
module Firestore
|
23
|
+
module V1
|
24
|
+
# The result of a single bucket from a Firestore aggregation query.
|
25
|
+
#
|
26
|
+
# The keys of `aggregate_fields` are the same for all results in an aggregation
|
27
|
+
# query, unlike document queries which can have different fields present for
|
28
|
+
# each result.
|
29
|
+
# @!attribute [rw] aggregate_fields
|
30
|
+
# @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Firestore::V1::Value}]
|
31
|
+
# The result of the aggregation functions, ex: `COUNT(*) AS total_docs`.
|
32
|
+
#
|
33
|
+
# The key is the {::Google::Cloud::Firestore::V1::StructuredAggregationQuery::Aggregation#alias alias}
|
34
|
+
# assigned to the aggregation function on input and the size of this map
|
35
|
+
# equals the number of aggregation functions in the query.
|
36
|
+
class AggregationResult
|
37
|
+
include ::Google::Protobuf::MessageExts
|
38
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
39
|
+
|
40
|
+
# @!attribute [rw] key
|
41
|
+
# @return [::String]
|
42
|
+
# @!attribute [rw] value
|
43
|
+
# @return [::Google::Cloud::Firestore::V1::Value]
|
44
|
+
class AggregateFieldsEntry
|
45
|
+
include ::Google::Protobuf::MessageExts
|
46
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -369,6 +369,61 @@ module Google
|
|
369
369
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
370
370
|
end
|
371
371
|
|
372
|
+
# The request for {::Google::Cloud::Firestore::V1::Firestore::Client#run_aggregation_query Firestore.RunAggregationQuery}.
|
373
|
+
# @!attribute [rw] parent
|
374
|
+
# @return [::String]
|
375
|
+
# Required. The parent resource name. In the format:
|
376
|
+
# `projects/{project_id}/databases/{database_id}/documents` or
|
377
|
+
# `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
378
|
+
# For example:
|
379
|
+
# `projects/my-project/databases/my-database/documents` or
|
380
|
+
# `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
|
381
|
+
# @!attribute [rw] structured_aggregation_query
|
382
|
+
# @return [::Google::Cloud::Firestore::V1::StructuredAggregationQuery]
|
383
|
+
# An aggregation query.
|
384
|
+
# @!attribute [rw] transaction
|
385
|
+
# @return [::String]
|
386
|
+
# Run the aggregation within an already active transaction.
|
387
|
+
#
|
388
|
+
# The value here is the opaque transaction ID to execute the query in.
|
389
|
+
# @!attribute [rw] new_transaction
|
390
|
+
# @return [::Google::Cloud::Firestore::V1::TransactionOptions]
|
391
|
+
# Starts a new transaction as part of the query, defaulting to read-only.
|
392
|
+
#
|
393
|
+
# The new transaction ID will be returned as the first response in the
|
394
|
+
# stream.
|
395
|
+
# @!attribute [rw] read_time
|
396
|
+
# @return [::Google::Protobuf::Timestamp]
|
397
|
+
# Executes the query at the given timestamp.
|
398
|
+
#
|
399
|
+
# Requires:
|
400
|
+
#
|
401
|
+
# * Cannot be more than 270 seconds in the past.
|
402
|
+
class RunAggregationQueryRequest
|
403
|
+
include ::Google::Protobuf::MessageExts
|
404
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
405
|
+
end
|
406
|
+
|
407
|
+
# The response for {::Google::Cloud::Firestore::V1::Firestore::Client#run_aggregation_query Firestore.RunAggregationQuery}.
|
408
|
+
# @!attribute [rw] result
|
409
|
+
# @return [::Google::Cloud::Firestore::V1::AggregationResult]
|
410
|
+
# A single aggregation result.
|
411
|
+
#
|
412
|
+
# Not present when reporting partial progress.
|
413
|
+
# @!attribute [rw] transaction
|
414
|
+
# @return [::String]
|
415
|
+
# The transaction that was started as part of this request.
|
416
|
+
#
|
417
|
+
# Only present on the first response when the request requested to start
|
418
|
+
# a new transaction.
|
419
|
+
# @!attribute [rw] read_time
|
420
|
+
# @return [::Google::Protobuf::Timestamp]
|
421
|
+
# The time at which the aggregate value is valid for.
|
422
|
+
class RunAggregationQueryResponse
|
423
|
+
include ::Google::Protobuf::MessageExts
|
424
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
425
|
+
end
|
426
|
+
|
372
427
|
# The request for {::Google::Cloud::Firestore::V1::Firestore::Client#partition_query Firestore.PartitionQuery}.
|
373
428
|
# @!attribute [rw] parent
|
374
429
|
# @return [::String]
|
@@ -55,22 +55,67 @@ module Google
|
|
55
55
|
# `WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC`
|
56
56
|
# @!attribute [rw] start_at
|
57
57
|
# @return [::Google::Cloud::Firestore::V1::Cursor]
|
58
|
-
# A
|
58
|
+
# A potential prefix of a position in the result set to start the query at.
|
59
|
+
#
|
60
|
+
# The ordering of the result set is based on the `ORDER BY` clause of the
|
61
|
+
# original query.
|
62
|
+
#
|
63
|
+
# ```
|
64
|
+
# SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC;
|
65
|
+
# ```
|
66
|
+
#
|
67
|
+
# This query's results are ordered by `(b ASC, __name__ ASC)`.
|
68
|
+
#
|
69
|
+
# Cursors can reference either the full ordering or a prefix of the location,
|
70
|
+
# though it cannot reference more fields than what are in the provided
|
71
|
+
# `ORDER BY`.
|
72
|
+
#
|
73
|
+
# Continuing off the example above, attaching the following start cursors
|
74
|
+
# will have varying impact:
|
75
|
+
#
|
76
|
+
# - `START BEFORE (2, /k/123)`: start the query right before `a = 1 AND
|
77
|
+
# b > 2 AND __name__ > /k/123`.
|
78
|
+
# - `START AFTER (10)`: start the query right after `a = 1 AND b > 10`.
|
79
|
+
#
|
80
|
+
# Unlike `OFFSET` which requires scanning over the first N results to skip,
|
81
|
+
# a start cursor allows the query to begin at a logical position. This
|
82
|
+
# position is not required to match an actual result, it will scan forward
|
83
|
+
# from this position to find the next document.
|
84
|
+
#
|
85
|
+
# Requires:
|
86
|
+
#
|
87
|
+
# * The number of values cannot be greater than the number of fields
|
88
|
+
# specified in the `ORDER BY` clause.
|
59
89
|
# @!attribute [rw] end_at
|
60
90
|
# @return [::Google::Cloud::Firestore::V1::Cursor]
|
61
|
-
# A
|
91
|
+
# A potential prefix of a position in the result set to end the query at.
|
92
|
+
#
|
93
|
+
# This is similar to `START_AT` but with it controlling the end position
|
94
|
+
# rather than the start position.
|
95
|
+
#
|
96
|
+
# Requires:
|
97
|
+
#
|
98
|
+
# * The number of values cannot be greater than the number of fields
|
99
|
+
# specified in the `ORDER BY` clause.
|
62
100
|
# @!attribute [rw] offset
|
63
101
|
# @return [::Integer]
|
64
|
-
# The number of
|
102
|
+
# The number of documents to skip before returning the first result.
|
103
|
+
#
|
104
|
+
# This applies after the constraints specified by the `WHERE`, `START AT`, &
|
105
|
+
# `END AT` but before the `LIMIT` clause.
|
65
106
|
#
|
66
|
-
#
|
67
|
-
#
|
107
|
+
# Requires:
|
108
|
+
#
|
109
|
+
# * The value must be greater than or equal to zero if specified.
|
68
110
|
# @!attribute [rw] limit
|
69
111
|
# @return [::Google::Protobuf::Int32Value]
|
70
112
|
# The maximum number of results to return.
|
71
113
|
#
|
72
114
|
# Applies after all other constraints.
|
73
|
-
#
|
115
|
+
#
|
116
|
+
# Requires:
|
117
|
+
#
|
118
|
+
# * The value must be greater than or equal to zero if specified.
|
74
119
|
class StructuredQuery
|
75
120
|
include ::Google::Protobuf::MessageExts
|
76
121
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -272,9 +317,14 @@ module Google
|
|
272
317
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
273
318
|
end
|
274
319
|
|
275
|
-
# A reference to a field,
|
320
|
+
# A reference to a field in a document, ex: `stats.operations`.
|
276
321
|
# @!attribute [rw] field_path
|
277
322
|
# @return [::String]
|
323
|
+
# The relative path of the document being referenced.
|
324
|
+
#
|
325
|
+
# Requires:
|
326
|
+
#
|
327
|
+
# * Conform to {::Google::Cloud::Firestore::V1::Document#fields document field name} limitations.
|
278
328
|
class FieldReference
|
279
329
|
include ::Google::Protobuf::MessageExts
|
280
330
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -305,6 +355,93 @@ module Google
|
|
305
355
|
end
|
306
356
|
end
|
307
357
|
|
358
|
+
# Firestore query for running an aggregation over a {::Google::Cloud::Firestore::V1::StructuredQuery StructuredQuery}.
|
359
|
+
# @!attribute [rw] structured_query
|
360
|
+
# @return [::Google::Cloud::Firestore::V1::StructuredQuery]
|
361
|
+
# Nested structured query.
|
362
|
+
# @!attribute [rw] aggregations
|
363
|
+
# @return [::Array<::Google::Cloud::Firestore::V1::StructuredAggregationQuery::Aggregation>]
|
364
|
+
# Optional. Series of aggregations to apply over the results of the `structured_query`.
|
365
|
+
#
|
366
|
+
# Requires:
|
367
|
+
#
|
368
|
+
# * A minimum of one and maximum of five aggregations per query.
|
369
|
+
class StructuredAggregationQuery
|
370
|
+
include ::Google::Protobuf::MessageExts
|
371
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
372
|
+
|
373
|
+
# Defines a aggregation that produces a single result.
|
374
|
+
# @!attribute [rw] count
|
375
|
+
# @return [::Google::Cloud::Firestore::V1::StructuredAggregationQuery::Aggregation::Count]
|
376
|
+
# Count aggregator.
|
377
|
+
# @!attribute [rw] alias
|
378
|
+
# @return [::String]
|
379
|
+
# Optional. Optional name of the field to store the result of the aggregation into.
|
380
|
+
#
|
381
|
+
# If not provided, Firestore will pick a default name following the format
|
382
|
+
# `field_<incremental_id++>`. For example:
|
383
|
+
#
|
384
|
+
# ```
|
385
|
+
# AGGREGATE
|
386
|
+
# COUNT_UP_TO(1) AS count_up_to_1,
|
387
|
+
# COUNT_UP_TO(2),
|
388
|
+
# COUNT_UP_TO(3) AS count_up_to_3,
|
389
|
+
# COUNT_UP_TO(4)
|
390
|
+
# OVER (
|
391
|
+
# ...
|
392
|
+
# );
|
393
|
+
# ```
|
394
|
+
#
|
395
|
+
# becomes:
|
396
|
+
#
|
397
|
+
# ```
|
398
|
+
# AGGREGATE
|
399
|
+
# COUNT_UP_TO(1) AS count_up_to_1,
|
400
|
+
# COUNT_UP_TO(2) AS field_1,
|
401
|
+
# COUNT_UP_TO(3) AS count_up_to_3,
|
402
|
+
# COUNT_UP_TO(4) AS field_2
|
403
|
+
# OVER (
|
404
|
+
# ...
|
405
|
+
# );
|
406
|
+
# ```
|
407
|
+
#
|
408
|
+
# Requires:
|
409
|
+
#
|
410
|
+
# * Must be unique across all aggregation aliases.
|
411
|
+
# * Conform to {::Google::Cloud::Firestore::V1::Document#fields document field name} limitations.
|
412
|
+
class Aggregation
|
413
|
+
include ::Google::Protobuf::MessageExts
|
414
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
415
|
+
|
416
|
+
# Count of documents that match the query.
|
417
|
+
#
|
418
|
+
# The `COUNT(*)` aggregation function operates on the entire document
|
419
|
+
# so it does not require a field reference.
|
420
|
+
# @!attribute [rw] up_to
|
421
|
+
# @return [::Google::Protobuf::Int64Value]
|
422
|
+
# Optional. Optional constraint on the maximum number of documents to count.
|
423
|
+
#
|
424
|
+
# This provides a way to set an upper bound on the number of documents
|
425
|
+
# to scan, limiting latency and cost.
|
426
|
+
#
|
427
|
+
# Unspecified is interpreted as no bound.
|
428
|
+
#
|
429
|
+
# High-Level Example:
|
430
|
+
#
|
431
|
+
# ```
|
432
|
+
# AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k );
|
433
|
+
# ```
|
434
|
+
#
|
435
|
+
# Requires:
|
436
|
+
#
|
437
|
+
# * Must be greater than zero when present.
|
438
|
+
class Count
|
439
|
+
include ::Google::Protobuf::MessageExts
|
440
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
441
|
+
end
|
442
|
+
end
|
443
|
+
end
|
444
|
+
|
308
445
|
# A position in a query result set.
|
309
446
|
# @!attribute [rw] values
|
310
447
|
# @return [::Array<::Google::Cloud::Firestore::V1::Value>]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-firestore-v1
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google LLC
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gapic-common
|
@@ -44,6 +44,26 @@ dependencies:
|
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '1.0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: google-cloud-location
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0.0'
|
54
|
+
- - "<"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 2.a
|
57
|
+
type: :runtime
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0.0'
|
64
|
+
- - "<"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 2.a
|
47
67
|
- !ruby/object:Gem::Dependency
|
48
68
|
name: google-style
|
49
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -175,6 +195,7 @@ files:
|
|
175
195
|
- lib/google/cloud/firestore/v1/firestore/client.rb
|
176
196
|
- lib/google/cloud/firestore/v1/firestore/credentials.rb
|
177
197
|
- lib/google/cloud/firestore/v1/version.rb
|
198
|
+
- lib/google/firestore/v1/aggregation_result_pb.rb
|
178
199
|
- lib/google/firestore/v1/common_pb.rb
|
179
200
|
- lib/google/firestore/v1/document_pb.rb
|
180
201
|
- lib/google/firestore/v1/firestore_pb.rb
|
@@ -184,6 +205,7 @@ files:
|
|
184
205
|
- proto_docs/README.md
|
185
206
|
- proto_docs/google/api/field_behavior.rb
|
186
207
|
- proto_docs/google/api/resource.rb
|
208
|
+
- proto_docs/google/firestore/v1/aggregation_result.rb
|
187
209
|
- proto_docs/google/firestore/v1/common.rb
|
188
210
|
- proto_docs/google/firestore/v1/document.rb
|
189
211
|
- proto_docs/google/firestore/v1/firestore.rb
|