google-cloud-firestore-v1 2.2.1 → 2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 26ca9602d2def8cbdd712ea2cdf7d5c0103f89b267b03a29c0a75f7007d99fb6
4
- data.tar.gz: 858b86cc1b8c9923b126e583850cbb9e8fa2420131f26099a2e6482534005fea
3
+ metadata.gz: 8d12c88e93c8e12e194c0564842d07c751e8fc5b6a22f4e556d50dd475f01958
4
+ data.tar.gz: 64a744d1828789e44a19e0e33ded5be40a716d87133183d9be1c43e84ee3a6b3
5
5
  SHA512:
6
- metadata.gz: 875ca082842a144e401a6c8fe5d2b079db18d9281b94e0c5042e80f2d8baf8ae443a8dec04c80fa385783edc6d3b4ce0f48e2953a1e76783d4c1e24ef21b7fbb
7
- data.tar.gz: cd31e0e49b065f033bf707b4db837d788e3be42a604212b0c92eb84f0aac6fc649554409a12f81f069de8a5f11e686edacaf0defe48883fad1bc2dcea6d50027
6
+ metadata.gz: 6ba60f353cdbc5053ddbdd7416c8bb27658120cd4e6404447c40a0f1d2a2e0653839d7680cb2a54793fd30a779ce6c7847fdd756c444a5586607cae40644a7e2
7
+ data.tar.gz: d0eb53c49563e2d90167a91e055d093dd594f3e804995970989bafe2ef4de9c000b16c90bee025e3c8b395d2ee2e58f2d4a6b850510a7f5a10c682cc91091f71
@@ -121,6 +121,11 @@ module Google
121
121
  initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [8, 14, 13, 4]
122
122
  }
123
123
 
124
+ default_config.rpcs.execute_pipeline.timeout = 300.0
125
+ default_config.rpcs.execute_pipeline.retry_policy = {
126
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [8, 14, 13, 4]
127
+ }
128
+
124
129
  default_config.rpcs.run_aggregation_query.timeout = 300.0
125
130
  default_config.rpcs.run_aggregation_query.retry_policy = {
126
131
  initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [8, 14, 13, 4]
@@ -1236,6 +1241,127 @@ module Google
1236
1241
  raise ::Google::Cloud::Error.from_error(e)
1237
1242
  end
1238
1243
 
1244
+ ##
1245
+ # Executes a pipeline query.
1246
+ #
1247
+ # @overload execute_pipeline(request, options = nil)
1248
+ # Pass arguments to `execute_pipeline` via a request object, either of type
1249
+ # {::Google::Cloud::Firestore::V1::ExecutePipelineRequest} or an equivalent Hash.
1250
+ #
1251
+ # @param request [::Google::Cloud::Firestore::V1::ExecutePipelineRequest, ::Hash]
1252
+ # A request object representing the call parameters. Required. To specify no
1253
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1254
+ # @param options [::Gapic::CallOptions, ::Hash]
1255
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1256
+ #
1257
+ # @overload execute_pipeline(database: nil, structured_pipeline: nil, transaction: nil, new_transaction: nil, read_time: nil)
1258
+ # Pass arguments to `execute_pipeline` via keyword arguments. Note that at
1259
+ # least one keyword argument is required. To specify no parameters, or to keep all
1260
+ # the default parameter values, pass an empty Hash as a request object (see above).
1261
+ #
1262
+ # @param database [::String]
1263
+ # Required. Database identifier, in the form
1264
+ # `projects/{project}/databases/{database}`.
1265
+ # @param structured_pipeline [::Google::Cloud::Firestore::V1::StructuredPipeline, ::Hash]
1266
+ # A pipelined operation.
1267
+ # @param transaction [::String]
1268
+ # Run the query within an already active transaction.
1269
+ #
1270
+ # The value here is the opaque transaction ID to execute the query in.
1271
+ #
1272
+ # Note: The following parameters are mutually exclusive: `transaction`, `new_transaction`, `read_time`. At most one of these parameters can be set. If more than one is set, only one will be used, and it is not defined which one.
1273
+ # @param new_transaction [::Google::Cloud::Firestore::V1::TransactionOptions, ::Hash]
1274
+ # Execute the pipeline in a new transaction.
1275
+ #
1276
+ # The identifier of the newly created transaction will be returned in the
1277
+ # first response on the stream. This defaults to a read-only transaction.
1278
+ #
1279
+ # Note: The following parameters are mutually exclusive: `new_transaction`, `transaction`, `read_time`. At most one of these parameters can be set. If more than one is set, only one will be used, and it is not defined which one.
1280
+ # @param read_time [::Google::Protobuf::Timestamp, ::Hash]
1281
+ # Execute the pipeline in a snapshot transaction at the given time.
1282
+ #
1283
+ # This must be a microsecond precision timestamp within the past one hour,
1284
+ # or if Point-in-Time Recovery is enabled, can additionally be a whole
1285
+ # minute timestamp within the past 7 days.
1286
+ #
1287
+ # Note: The following parameters are mutually exclusive: `read_time`, `transaction`, `new_transaction`. At most one of these parameters can be set. If more than one is set, only one will be used, and it is not defined which one.
1288
+ #
1289
+ # @yield [response, operation] Access the result along with the RPC operation
1290
+ # @yieldparam response [::Enumerable<::Google::Cloud::Firestore::V1::ExecutePipelineResponse>]
1291
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
1292
+ #
1293
+ # @return [::Enumerable<::Google::Cloud::Firestore::V1::ExecutePipelineResponse>]
1294
+ #
1295
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
1296
+ #
1297
+ # @example Basic example
1298
+ # require "google/cloud/firestore/v1"
1299
+ #
1300
+ # # Create a client object. The client can be reused for multiple calls.
1301
+ # client = Google::Cloud::Firestore::V1::Firestore::Client.new
1302
+ #
1303
+ # # Create a request. To set request fields, pass in keyword arguments.
1304
+ # request = Google::Cloud::Firestore::V1::ExecutePipelineRequest.new
1305
+ #
1306
+ # # Call the execute_pipeline method to start streaming.
1307
+ # output = client.execute_pipeline request
1308
+ #
1309
+ # # The returned object is a streamed enumerable yielding elements of type
1310
+ # # ::Google::Cloud::Firestore::V1::ExecutePipelineResponse
1311
+ # output.each do |current_response|
1312
+ # p current_response
1313
+ # end
1314
+ #
1315
+ def execute_pipeline request, options = nil
1316
+ raise ::ArgumentError, "request must be provided" if request.nil?
1317
+
1318
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::V1::ExecutePipelineRequest
1319
+
1320
+ # Converts hash and nil to an options object
1321
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1322
+
1323
+ # Customize the options with defaults
1324
+ metadata = @config.rpcs.execute_pipeline.metadata.to_h
1325
+
1326
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
1327
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1328
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1329
+ gapic_version: ::Google::Cloud::Firestore::V1::VERSION
1330
+ metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
1331
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1332
+
1333
+ header_params = {}
1334
+ if request.database
1335
+ regex_match = %r{^projects/(?<project_id>[^/]+)(?:/.*)?$}.match request.database
1336
+ if regex_match
1337
+ header_params["project_id"] = regex_match["project_id".to_s]
1338
+ end
1339
+ end
1340
+ if request.database
1341
+ regex_match = %r{^projects/[^/]+/databases/(?<database_id>[^/]+)(?:/.*)?$}.match request.database
1342
+ if regex_match
1343
+ header_params["database_id"] = regex_match["database_id".to_s]
1344
+ end
1345
+ end
1346
+
1347
+ request_params_header = URI.encode_www_form header_params
1348
+ metadata[:"x-goog-request-params"] ||= request_params_header
1349
+
1350
+ options.apply_defaults timeout: @config.rpcs.execute_pipeline.timeout,
1351
+ metadata: metadata,
1352
+ retry_policy: @config.rpcs.execute_pipeline.retry_policy
1353
+
1354
+ options.apply_defaults timeout: @config.timeout,
1355
+ metadata: @config.metadata,
1356
+ retry_policy: @config.retry_policy
1357
+
1358
+ @firestore_stub.call_rpc :execute_pipeline, request, options: options do |response, operation|
1359
+ yield response, operation if block_given?
1360
+ end
1361
+ rescue ::GRPC::BadStatus => e
1362
+ raise ::Google::Cloud::Error.from_error(e)
1363
+ end
1364
+
1239
1365
  ##
1240
1366
  # Runs an aggregation query.
1241
1367
  #
@@ -2198,6 +2324,11 @@ module Google
2198
2324
  #
2199
2325
  attr_reader :run_query
2200
2326
  ##
2327
+ # RPC-specific configuration for `execute_pipeline`
2328
+ # @return [::Gapic::Config::Method]
2329
+ #
2330
+ attr_reader :execute_pipeline
2331
+ ##
2201
2332
  # RPC-specific configuration for `run_aggregation_query`
2202
2333
  # @return [::Gapic::Config::Method]
2203
2334
  #
@@ -2253,6 +2384,8 @@ module Google
2253
2384
  @rollback = ::Gapic::Config::Method.new rollback_config
2254
2385
  run_query_config = parent_rpcs.run_query if parent_rpcs.respond_to? :run_query
2255
2386
  @run_query = ::Gapic::Config::Method.new run_query_config
2387
+ execute_pipeline_config = parent_rpcs.execute_pipeline if parent_rpcs.respond_to? :execute_pipeline
2388
+ @execute_pipeline = ::Gapic::Config::Method.new execute_pipeline_config
2256
2389
  run_aggregation_query_config = parent_rpcs.run_aggregation_query if parent_rpcs.respond_to? :run_aggregation_query
2257
2390
  @run_aggregation_query = ::Gapic::Config::Method.new run_aggregation_query_config
2258
2391
  partition_query_config = parent_rpcs.partition_query if parent_rpcs.respond_to? :partition_query
@@ -123,6 +123,11 @@ module Google
123
123
  initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [8, 14, 13, 4]
124
124
  }
125
125
 
126
+ default_config.rpcs.execute_pipeline.timeout = 300.0
127
+ default_config.rpcs.execute_pipeline.retry_policy = {
128
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [8, 14, 13, 4]
129
+ }
130
+
126
131
  default_config.rpcs.run_aggregation_query.timeout = 300.0
127
132
  default_config.rpcs.run_aggregation_query.retry_policy = {
128
133
  initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [8, 14, 13, 4]
@@ -1160,6 +1165,113 @@ module Google
1160
1165
  raise ::Google::Cloud::Error.from_error(e)
1161
1166
  end
1162
1167
 
1168
+ ##
1169
+ # Executes a pipeline query.
1170
+ #
1171
+ # @overload execute_pipeline(request, options = nil)
1172
+ # Pass arguments to `execute_pipeline` via a request object, either of type
1173
+ # {::Google::Cloud::Firestore::V1::ExecutePipelineRequest} or an equivalent Hash.
1174
+ #
1175
+ # @param request [::Google::Cloud::Firestore::V1::ExecutePipelineRequest, ::Hash]
1176
+ # A request object representing the call parameters. Required. To specify no
1177
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1178
+ # @param options [::Gapic::CallOptions, ::Hash]
1179
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
1180
+ #
1181
+ # @overload execute_pipeline(database: nil, structured_pipeline: nil, transaction: nil, new_transaction: nil, read_time: nil)
1182
+ # Pass arguments to `execute_pipeline` via keyword arguments. Note that at
1183
+ # least one keyword argument is required. To specify no parameters, or to keep all
1184
+ # the default parameter values, pass an empty Hash as a request object (see above).
1185
+ #
1186
+ # @param database [::String]
1187
+ # Required. Database identifier, in the form
1188
+ # `projects/{project}/databases/{database}`.
1189
+ # @param structured_pipeline [::Google::Cloud::Firestore::V1::StructuredPipeline, ::Hash]
1190
+ # A pipelined operation.
1191
+ # @param transaction [::String]
1192
+ # Run the query within an already active transaction.
1193
+ #
1194
+ # The value here is the opaque transaction ID to execute the query in.
1195
+ #
1196
+ # Note: The following parameters are mutually exclusive: `transaction`, `new_transaction`, `read_time`. At most one of these parameters can be set. If more than one is set, only one will be used, and it is not defined which one.
1197
+ # @param new_transaction [::Google::Cloud::Firestore::V1::TransactionOptions, ::Hash]
1198
+ # Execute the pipeline in a new transaction.
1199
+ #
1200
+ # The identifier of the newly created transaction will be returned in the
1201
+ # first response on the stream. This defaults to a read-only transaction.
1202
+ #
1203
+ # Note: The following parameters are mutually exclusive: `new_transaction`, `transaction`, `read_time`. At most one of these parameters can be set. If more than one is set, only one will be used, and it is not defined which one.
1204
+ # @param read_time [::Google::Protobuf::Timestamp, ::Hash]
1205
+ # Execute the pipeline in a snapshot transaction at the given time.
1206
+ #
1207
+ # This must be a microsecond precision timestamp within the past one hour,
1208
+ # or if Point-in-Time Recovery is enabled, can additionally be a whole
1209
+ # minute timestamp within the past 7 days.
1210
+ #
1211
+ # Note: The following parameters are mutually exclusive: `read_time`, `transaction`, `new_transaction`. At most one of these parameters can be set. If more than one is set, only one will be used, and it is not defined which one.
1212
+ # @return [::Enumerable<::Google::Cloud::Firestore::V1::ExecutePipelineResponse>]
1213
+ #
1214
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
1215
+ #
1216
+ # @example Basic example
1217
+ # require "google/cloud/firestore/v1"
1218
+ #
1219
+ # # Create a client object. The client can be reused for multiple calls.
1220
+ # client = Google::Cloud::Firestore::V1::Firestore::Rest::Client.new
1221
+ #
1222
+ # # Create a request. To set request fields, pass in keyword arguments.
1223
+ # request = Google::Cloud::Firestore::V1::ExecutePipelineRequest.new
1224
+ #
1225
+ # # Call the execute_pipeline method to start streaming.
1226
+ # output = client.execute_pipeline request
1227
+ #
1228
+ # # The returned object is a streamed enumerable yielding elements of type
1229
+ # # ::Google::Cloud::Firestore::V1::ExecutePipelineResponse
1230
+ # output.each do |current_response|
1231
+ # p current_response
1232
+ # end
1233
+ #
1234
+ def execute_pipeline request, options = nil
1235
+ raise ::ArgumentError, "request must be provided" if request.nil?
1236
+
1237
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Firestore::V1::ExecutePipelineRequest
1238
+
1239
+ # Converts hash and nil to an options object
1240
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1241
+
1242
+ # Customize the options with defaults
1243
+ call_metadata = @config.rpcs.execute_pipeline.metadata.to_h
1244
+
1245
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
1246
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1247
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1248
+ gapic_version: ::Google::Cloud::Firestore::V1::VERSION,
1249
+ transports_version_send: [:rest]
1250
+
1251
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
1252
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1253
+
1254
+ options.apply_defaults timeout: @config.rpcs.execute_pipeline.timeout,
1255
+ metadata: call_metadata,
1256
+ retry_policy: @config.rpcs.execute_pipeline.retry_policy
1257
+
1258
+ options.apply_defaults timeout: @config.timeout,
1259
+ metadata: @config.metadata,
1260
+ retry_policy: @config.retry_policy
1261
+
1262
+ ::Gapic::Rest::ServerStream.new(
1263
+ ::Google::Cloud::Firestore::V1::ExecutePipelineResponse,
1264
+ ::Gapic::Rest::ThreadedEnumerator.new do |in_q, out_q|
1265
+ @firestore_stub.execute_pipeline request, options do |chunk|
1266
+ in_q.deq
1267
+ out_q.enq chunk
1268
+ end
1269
+ end
1270
+ )
1271
+ rescue ::Gapic::Rest::Error => e
1272
+ raise ::Google::Cloud::Error.from_error(e)
1273
+ end
1274
+
1163
1275
  ##
1164
1276
  # Runs an aggregation query.
1165
1277
  #
@@ -1891,6 +2003,11 @@ module Google
1891
2003
  #
1892
2004
  attr_reader :run_query
1893
2005
  ##
2006
+ # RPC-specific configuration for `execute_pipeline`
2007
+ # @return [::Gapic::Config::Method]
2008
+ #
2009
+ attr_reader :execute_pipeline
2010
+ ##
1894
2011
  # RPC-specific configuration for `run_aggregation_query`
1895
2012
  # @return [::Gapic::Config::Method]
1896
2013
  #
@@ -1936,6 +2053,8 @@ module Google
1936
2053
  @rollback = ::Gapic::Config::Method.new rollback_config
1937
2054
  run_query_config = parent_rpcs.run_query if parent_rpcs.respond_to? :run_query
1938
2055
  @run_query = ::Gapic::Config::Method.new run_query_config
2056
+ execute_pipeline_config = parent_rpcs.execute_pipeline if parent_rpcs.respond_to? :execute_pipeline
2057
+ @execute_pipeline = ::Gapic::Config::Method.new execute_pipeline_config
1939
2058
  run_aggregation_query_config = parent_rpcs.run_aggregation_query if parent_rpcs.respond_to? :run_aggregation_query
1940
2059
  @run_aggregation_query = ::Gapic::Config::Method.new run_aggregation_query_config
1941
2060
  partition_query_config = parent_rpcs.partition_query if parent_rpcs.respond_to? :partition_query
@@ -421,6 +421,40 @@ module Google
421
421
  ::Gapic::Rest::TransportOperation.new response
422
422
  end
423
423
 
424
+ ##
425
+ # Baseline implementation for the execute_pipeline REST call
426
+ #
427
+ # @param request_pb [::Google::Cloud::Firestore::V1::ExecutePipelineRequest]
428
+ # A request object representing the call parameters. Required.
429
+ # @param options [::Gapic::CallOptions]
430
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
431
+ #
432
+ # @yieldparam chunk [::String] The chunk of data received during server streaming.
433
+ #
434
+ # @return [::Gapic::Rest::TransportOperation]
435
+ def execute_pipeline(request_pb, options = nil, &)
436
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
437
+
438
+ verb, uri, query_string_params, body = ServiceStub.transcode_execute_pipeline_request request_pb
439
+ query_string_params = if query_string_params.any?
440
+ query_string_params.to_h { |p| p.split "=", 2 }
441
+ else
442
+ {}
443
+ end
444
+
445
+ response = @client_stub.make_http_request(
446
+ verb,
447
+ uri: uri,
448
+ body: body || "",
449
+ params: query_string_params,
450
+ method_name: "execute_pipeline",
451
+ options: options,
452
+ is_server_streaming: true,
453
+ &
454
+ )
455
+ ::Gapic::Rest::TransportOperation.new response
456
+ end
457
+
424
458
  ##
425
459
  # Baseline implementation for the run_aggregation_query REST call
426
460
  #
@@ -827,6 +861,28 @@ module Google
827
861
  transcoder.transcode request_pb
828
862
  end
829
863
 
864
+ ##
865
+ # @private
866
+ #
867
+ # GRPC transcoding helper method for the execute_pipeline REST call
868
+ #
869
+ # @param request_pb [::Google::Cloud::Firestore::V1::ExecutePipelineRequest]
870
+ # A request object representing the call parameters. Required.
871
+ # @return [Array(String, [String, nil], Hash{String => String})]
872
+ # Uri, Body, Query string parameters
873
+ def self.transcode_execute_pipeline_request request_pb
874
+ transcoder = Gapic::Rest::GrpcTranscoder.new
875
+ .with_bindings(
876
+ uri_method: :post,
877
+ uri_template: "/v1/{database}/documents:executePipeline",
878
+ body: "*",
879
+ matches: [
880
+ ["database", %r{^projects/[^/]+/databases/[^/]+/?$}, false]
881
+ ]
882
+ )
883
+ transcoder.transcode request_pb
884
+ end
885
+
830
886
  ##
831
887
  # @private
832
888
  #
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module Firestore
23
23
  module V1
24
- VERSION = "2.2.1"
24
+ VERSION = "2.3.0"
25
25
  end
26
26
  end
27
27
  end
@@ -10,7 +10,7 @@ require 'google/protobuf/timestamp_pb'
10
10
  require 'google/type/latlng_pb'
11
11
 
12
12
 
13
- descriptor_data = "\n\"google/firestore/v1/document.proto\x12\x13google.firestore.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x18google/type/latlng.proto\"\x80\x02\n\x08\x44ocument\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x39\n\x06\x66ields\x18\x02 \x03(\x0b\x32).google.firestore.v1.Document.FieldsEntry\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1aI\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.firestore.v1.Value:\x02\x38\x01\"\xae\x03\n\x05Value\x12\x30\n\nnull_value\x18\x0b \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12\x17\n\rboolean_value\x18\x01 \x01(\x08H\x00\x12\x17\n\rinteger_value\x18\x02 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x03 \x01(\x01H\x00\x12\x35\n\x0ftimestamp_value\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x16\n\x0cstring_value\x18\x11 \x01(\tH\x00\x12\x15\n\x0b\x62ytes_value\x18\x12 \x01(\x0cH\x00\x12\x19\n\x0freference_value\x18\x05 \x01(\tH\x00\x12.\n\x0fgeo_point_value\x18\x08 \x01(\x0b\x32\x13.google.type.LatLngH\x00\x12\x36\n\x0b\x61rray_value\x18\t \x01(\x0b\x32\x1f.google.firestore.v1.ArrayValueH\x00\x12\x32\n\tmap_value\x18\x06 \x01(\x0b\x32\x1d.google.firestore.v1.MapValueH\x00\x42\x0c\n\nvalue_type\"8\n\nArrayValue\x12*\n\x06values\x18\x01 \x03(\x0b\x32\x1a.google.firestore.v1.Value\"\x90\x01\n\x08MapValue\x12\x39\n\x06\x66ields\x18\x01 \x03(\x0b\x32).google.firestore.v1.MapValue.FieldsEntry\x1aI\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.firestore.v1.Value:\x02\x38\x01\x42\xc5\x01\n\x17\x63om.google.firestore.v1B\rDocumentProtoP\x01Z;cloud.google.com/go/firestore/apiv1/firestorepb;firestorepb\xa2\x02\x04GCFS\xaa\x02\x19Google.Cloud.Firestore.V1\xca\x02\x19Google\\Cloud\\Firestore\\V1\xea\x02\x1cGoogle::Cloud::Firestore::V1b\x06proto3"
13
+ descriptor_data = "\n\"google/firestore/v1/document.proto\x12\x13google.firestore.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x18google/type/latlng.proto\"\x80\x02\n\x08\x44ocument\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x39\n\x06\x66ields\x18\x02 \x03(\x0b\x32).google.firestore.v1.Document.FieldsEntry\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1aI\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.firestore.v1.Value:\x02\x38\x01\"\xc1\x04\n\x05Value\x12\x30\n\nnull_value\x18\x0b \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12\x17\n\rboolean_value\x18\x01 \x01(\x08H\x00\x12\x17\n\rinteger_value\x18\x02 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x03 \x01(\x01H\x00\x12\x35\n\x0ftimestamp_value\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x16\n\x0cstring_value\x18\x11 \x01(\tH\x00\x12\x15\n\x0b\x62ytes_value\x18\x12 \x01(\x0cH\x00\x12\x19\n\x0freference_value\x18\x05 \x01(\tH\x00\x12.\n\x0fgeo_point_value\x18\x08 \x01(\x0b\x32\x13.google.type.LatLngH\x00\x12\x36\n\x0b\x61rray_value\x18\t \x01(\x0b\x32\x1f.google.firestore.v1.ArrayValueH\x00\x12\x32\n\tmap_value\x18\x06 \x01(\x0b\x32\x1d.google.firestore.v1.MapValueH\x00\x12\x1f\n\x15\x66ield_reference_value\x18\x13 \x01(\tH\x00\x12\x37\n\x0e\x66unction_value\x18\x14 \x01(\x0b\x32\x1d.google.firestore.v1.FunctionH\x00\x12\x37\n\x0epipeline_value\x18\x15 \x01(\x0b\x32\x1d.google.firestore.v1.PipelineH\x00\x42\x0c\n\nvalue_type\"8\n\nArrayValue\x12*\n\x06values\x18\x01 \x03(\x0b\x32\x1a.google.firestore.v1.Value\"\x90\x01\n\x08MapValue\x12\x39\n\x06\x66ields\x18\x01 \x03(\x0b\x32).google.firestore.v1.MapValue.FieldsEntry\x1aI\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.firestore.v1.Value:\x02\x38\x01\"\xda\x01\n\x08\x46unction\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12-\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x1a.google.firestore.v1.ValueB\x03\xe0\x41\x01\x12@\n\x07options\x18\x03 \x03(\x0b\x32*.google.firestore.v1.Function.OptionsEntryB\x03\xe0\x41\x01\x1aJ\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.firestore.v1.Value:\x02\x38\x01\"\xa4\x02\n\x08Pipeline\x12\x38\n\x06stages\x18\x01 \x03(\x0b\x32#.google.firestore.v1.Pipeline.StageB\x03\xe0\x41\x02\x1a\xdd\x01\n\x05Stage\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12-\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x1a.google.firestore.v1.ValueB\x03\xe0\x41\x01\x12\x46\n\x07options\x18\x03 \x03(\x0b\x32\x30.google.firestore.v1.Pipeline.Stage.OptionsEntryB\x03\xe0\x41\x01\x1aJ\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.firestore.v1.Value:\x02\x38\x01\x42\xc5\x01\n\x17\x63om.google.firestore.v1B\rDocumentProtoP\x01Z;cloud.google.com/go/firestore/apiv1/firestorepb;firestorepb\xa2\x02\x04GCFS\xaa\x02\x19Google.Cloud.Firestore.V1\xca\x02\x19Google\\Cloud\\Firestore\\V1\xea\x02\x1cGoogle::Cloud::Firestore::V1b\x06proto3"
14
14
 
15
15
  pool = Google::Protobuf::DescriptorPool.generated_pool
16
16
 
@@ -46,6 +46,9 @@ module Google
46
46
  Value = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.Value").msgclass
47
47
  ArrayValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.ArrayValue").msgclass
48
48
  MapValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.MapValue").msgclass
49
+ Function = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.Function").msgclass
50
+ Pipeline = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.Pipeline").msgclass
51
+ Pipeline::Stage = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.Pipeline.Stage").msgclass
49
52
  end
50
53
  end
51
54
  end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: google/firestore/v1/explain_stats.proto
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/protobuf/any_pb'
8
+
9
+
10
+ descriptor_data = "\n\'google/firestore/v1/explain_stats.proto\x12\x13google.firestore.v1\x1a\x19google/protobuf/any.proto\"2\n\x0c\x45xplainStats\x12\"\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x14.google.protobuf.AnyB\xc2\x01\n\x17\x63om.google.firestore.v1B\x11\x45xplainStatsProtoP\x01Z;cloud.google.com/go/firestore/apiv1/firestorepb;firestorepb\xaa\x02\x19Google.Cloud.Firestore.V1\xca\x02\x19Google\\Cloud\\Firestore\\V1\xea\x02\x1cGoogle::Cloud::Firestore::V1b\x06proto3"
11
+
12
+ pool = Google::Protobuf::DescriptorPool.generated_pool
13
+
14
+ begin
15
+ pool.add_serialized_file(descriptor_data)
16
+ rescue TypeError
17
+ # Compatibility code: will be removed in the next major version.
18
+ require 'google/protobuf/descriptor_pb'
19
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
20
+ parsed.clear_dependency
21
+ serialized = parsed.class.encode(parsed)
22
+ file = pool.add_serialized_file(serialized)
23
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
24
+ imports = [
25
+ ["google.protobuf.Any", "google/protobuf/any.proto"],
26
+ ]
27
+ imports.each do |type_name, expected_filename|
28
+ import_file = pool.lookup(type_name).file_descriptor
29
+ if import_file.name != expected_filename
30
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
31
+ end
32
+ end
33
+ warn "Each proto file must use a consistent fully-qualified name."
34
+ warn "This will become an error in the next major version."
35
+ end
36
+
37
+ module Google
38
+ module Cloud
39
+ module Firestore
40
+ module V1
41
+ ExplainStats = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.ExplainStats").msgclass
42
+ end
43
+ end
44
+ end
45
+ end
@@ -11,6 +11,8 @@ require 'google/api/routing_pb'
11
11
  require 'google/firestore/v1/aggregation_result_pb'
12
12
  require 'google/firestore/v1/common_pb'
13
13
  require 'google/firestore/v1/document_pb'
14
+ require 'google/firestore/v1/explain_stats_pb'
15
+ require 'google/firestore/v1/pipeline_pb'
14
16
  require 'google/firestore/v1/query_pb'
15
17
  require 'google/firestore/v1/query_profile_pb'
16
18
  require 'google/firestore/v1/write_pb'
@@ -20,7 +22,7 @@ require 'google/protobuf/wrappers_pb'
20
22
  require 'google/rpc/status_pb'
21
23
 
22
24
 
23
- descriptor_data = "\n#google/firestore/v1/firestore.proto\x12\x13google.firestore.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x18google/api/routing.proto\x1a,google/firestore/v1/aggregation_result.proto\x1a google/firestore/v1/common.proto\x1a\"google/firestore/v1/document.proto\x1a\x1fgoogle/firestore/v1/query.proto\x1a\'google/firestore/v1/query_profile.proto\x1a\x1fgoogle/firestore/v1/write.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x17google/rpc/status.proto\"\xb8\x01\n\x12GetDocumentRequest\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12/\n\x04mask\x18\x02 \x01(\x0b\x32!.google.firestore.v1.DocumentMask\x12\x15\n\x0btransaction\x18\x03 \x01(\x0cH\x00\x12/\n\tread_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x42\x16\n\x14\x63onsistency_selector\"\xbb\x02\n\x14ListDocumentsRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rcollection_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x34\n\x04mask\x18\x07 \x01(\x0b\x32!.google.firestore.v1.DocumentMaskB\x03\xe0\x41\x01\x12\x15\n\x0btransaction\x18\x08 \x01(\x0cH\x00\x12/\n\tread_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x14\n\x0cshow_missing\x18\x0c \x01(\x08\x42\x16\n\x14\x63onsistency_selector\"b\n\x15ListDocumentsResponse\x12\x30\n\tdocuments\x18\x01 \x03(\x0b\x32\x1d.google.firestore.v1.Document\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc4\x01\n\x15\x43reateDocumentRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rcollection_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64ocument_id\x18\x03 \x01(\t\x12\x34\n\x08\x64ocument\x18\x04 \x01(\x0b\x32\x1d.google.firestore.v1.DocumentB\x03\xe0\x41\x02\x12/\n\x04mask\x18\x05 \x01(\x0b\x32!.google.firestore.v1.DocumentMask\"\xf3\x01\n\x15UpdateDocumentRequest\x12\x34\n\x08\x64ocument\x18\x01 \x01(\x0b\x32\x1d.google.firestore.v1.DocumentB\x03\xe0\x41\x02\x12\x36\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32!.google.firestore.v1.DocumentMask\x12/\n\x04mask\x18\x03 \x01(\x0b\x32!.google.firestore.v1.DocumentMask\x12;\n\x10\x63urrent_document\x18\x04 \x01(\x0b\x32!.google.firestore.v1.Precondition\"g\n\x15\x44\x65leteDocumentRequest\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12;\n\x10\x63urrent_document\x18\x02 \x01(\x0b\x32!.google.firestore.v1.Precondition\"\x99\x02\n\x18\x42\x61tchGetDocumentsRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\tdocuments\x18\x02 \x03(\t\x12/\n\x04mask\x18\x03 \x01(\x0b\x32!.google.firestore.v1.DocumentMask\x12\x15\n\x0btransaction\x18\x04 \x01(\x0cH\x00\x12\x42\n\x0fnew_transaction\x18\x05 \x01(\x0b\x32\'.google.firestore.v1.TransactionOptionsH\x00\x12/\n\tread_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x42\x16\n\x14\x63onsistency_selector\"\xac\x01\n\x19\x42\x61tchGetDocumentsResponse\x12.\n\x05\x66ound\x18\x01 \x01(\x0b\x32\x1d.google.firestore.v1.DocumentH\x00\x12\x11\n\x07missing\x18\x02 \x01(\tH\x00\x12\x13\n\x0btransaction\x18\x03 \x01(\x0c\x12-\n\tread_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\n\x06result\"j\n\x17\x42\x65ginTransactionRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x38\n\x07options\x18\x02 \x01(\x0b\x32\'.google.firestore.v1.TransactionOptions\"/\n\x18\x42\x65ginTransactionResponse\x12\x13\n\x0btransaction\x18\x01 \x01(\x0c\"g\n\rCommitRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12*\n\x06writes\x18\x02 \x03(\x0b\x32\x1a.google.firestore.v1.Write\x12\x13\n\x0btransaction\x18\x03 \x01(\x0c\"z\n\x0e\x43ommitResponse\x12\x37\n\rwrite_results\x18\x01 \x03(\x0b\x32 .google.firestore.v1.WriteResult\x12/\n\x0b\x63ommit_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"B\n\x0fRollbackRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0btransaction\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\"\xdd\x02\n\x0fRunQueryRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12@\n\x10structured_query\x18\x02 \x01(\x0b\x32$.google.firestore.v1.StructuredQueryH\x00\x12\x15\n\x0btransaction\x18\x05 \x01(\x0cH\x01\x12\x42\n\x0fnew_transaction\x18\x06 \x01(\x0b\x32\'.google.firestore.v1.TransactionOptionsH\x01\x12/\n\tread_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x12\x41\n\x0f\x65xplain_options\x18\n \x01(\x0b\x32#.google.firestore.v1.ExplainOptionsB\x03\xe0\x41\x01\x42\x0c\n\nquery_typeB\x16\n\x14\x63onsistency_selector\"\x87\x02\n\x10RunQueryResponse\x12\x13\n\x0btransaction\x18\x02 \x01(\x0c\x12/\n\x08\x64ocument\x18\x01 \x01(\x0b\x32\x1d.google.firestore.v1.Document\x12-\n\tread_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x17\n\x0fskipped_results\x18\x04 \x01(\x05\x12\x0e\n\x04\x64one\x18\x06 \x01(\x08H\x00\x12<\n\x0f\x65xplain_metrics\x18\x0b \x01(\x0b\x32#.google.firestore.v1.ExplainMetricsB\x17\n\x15\x63ontinuation_selector\"\xff\x02\n\x1aRunAggregationQueryRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12W\n\x1cstructured_aggregation_query\x18\x02 \x01(\x0b\x32/.google.firestore.v1.StructuredAggregationQueryH\x00\x12\x15\n\x0btransaction\x18\x04 \x01(\x0cH\x01\x12\x42\n\x0fnew_transaction\x18\x05 \x01(\x0b\x32\'.google.firestore.v1.TransactionOptionsH\x01\x12/\n\tread_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x12\x41\n\x0f\x65xplain_options\x18\x08 \x01(\x0b\x32#.google.firestore.v1.ExplainOptionsB\x03\xe0\x41\x01\x42\x0c\n\nquery_typeB\x16\n\x14\x63onsistency_selector\"\xd7\x01\n\x1bRunAggregationQueryResponse\x12\x36\n\x06result\x18\x01 \x01(\x0b\x32&.google.firestore.v1.AggregationResult\x12\x13\n\x0btransaction\x18\x02 \x01(\x0c\x12-\n\tread_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12<\n\x0f\x65xplain_metrics\x18\n \x01(\x0b\x32#.google.firestore.v1.ExplainMetrics\"\x85\x02\n\x15PartitionQueryRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12@\n\x10structured_query\x18\x02 \x01(\x0b\x32$.google.firestore.v1.StructuredQueryH\x00\x12\x17\n\x0fpartition_count\x18\x03 \x01(\x03\x12\x12\n\npage_token\x18\x04 \x01(\t\x12\x11\n\tpage_size\x18\x05 \x01(\x05\x12/\n\tread_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x42\x0c\n\nquery_typeB\x16\n\x14\x63onsistency_selector\"b\n\x16PartitionQueryResponse\x12/\n\npartitions\x18\x01 \x03(\x0b\x32\x1b.google.firestore.v1.Cursor\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xe8\x01\n\x0cWriteRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\tstream_id\x18\x02 \x01(\t\x12*\n\x06writes\x18\x03 \x03(\x0b\x32\x1a.google.firestore.v1.Write\x12\x14\n\x0cstream_token\x18\x04 \x01(\x0c\x12=\n\x06labels\x18\x05 \x03(\x0b\x32-.google.firestore.v1.WriteRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa2\x01\n\rWriteResponse\x12\x11\n\tstream_id\x18\x01 \x01(\t\x12\x14\n\x0cstream_token\x18\x02 \x01(\x0c\x12\x37\n\rwrite_results\x18\x03 \x03(\x0b\x32 .google.firestore.v1.WriteResult\x12/\n\x0b\x63ommit_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xf2\x01\n\rListenRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x31\n\nadd_target\x18\x02 \x01(\x0b\x32\x1b.google.firestore.v1.TargetH\x00\x12\x17\n\rremove_target\x18\x03 \x01(\x05H\x00\x12>\n\x06labels\x18\x04 \x03(\x0b\x32..google.firestore.v1.ListenRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\rtarget_change\"\xd5\x02\n\x0eListenResponse\x12:\n\rtarget_change\x18\x02 \x01(\x0b\x32!.google.firestore.v1.TargetChangeH\x00\x12>\n\x0f\x64ocument_change\x18\x03 \x01(\x0b\x32#.google.firestore.v1.DocumentChangeH\x00\x12>\n\x0f\x64ocument_delete\x18\x04 \x01(\x0b\x32#.google.firestore.v1.DocumentDeleteH\x00\x12>\n\x0f\x64ocument_remove\x18\x06 \x01(\x0b\x32#.google.firestore.v1.DocumentRemoveH\x00\x12\x36\n\x06\x66ilter\x18\x05 \x01(\x0b\x32$.google.firestore.v1.ExistenceFilterH\x00\x42\x0f\n\rresponse_type\"\xd6\x03\n\x06Target\x12\x38\n\x05query\x18\x02 \x01(\x0b\x32\'.google.firestore.v1.Target.QueryTargetH\x00\x12@\n\tdocuments\x18\x03 \x01(\x0b\x32+.google.firestore.v1.Target.DocumentsTargetH\x00\x12\x16\n\x0cresume_token\x18\x04 \x01(\x0cH\x01\x12/\n\tread_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x12\x11\n\ttarget_id\x18\x05 \x01(\x05\x12\x0c\n\x04once\x18\x06 \x01(\x08\x12\x33\n\x0e\x65xpected_count\x18\x0c \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x1a$\n\x0f\x44ocumentsTarget\x12\x11\n\tdocuments\x18\x02 \x03(\t\x1am\n\x0bQueryTarget\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12@\n\x10structured_query\x18\x02 \x01(\x0b\x32$.google.firestore.v1.StructuredQueryH\x00\x42\x0c\n\nquery_typeB\r\n\x0btarget_typeB\r\n\x0bresume_type\"\xaa\x02\n\x0cTargetChange\x12N\n\x12target_change_type\x18\x01 \x01(\x0e\x32\x32.google.firestore.v1.TargetChange.TargetChangeType\x12\x12\n\ntarget_ids\x18\x02 \x03(\x05\x12!\n\x05\x63\x61use\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12\x14\n\x0cresume_token\x18\x04 \x01(\x0c\x12-\n\tread_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"N\n\x10TargetChangeType\x12\r\n\tNO_CHANGE\x10\x00\x12\x07\n\x03\x41\x44\x44\x10\x01\x12\n\n\x06REMOVE\x10\x02\x12\x0b\n\x07\x43URRENT\x10\x03\x12\t\n\x05RESET\x10\x04\"\x9f\x01\n\x18ListCollectionIdsRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12/\n\tread_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x42\x16\n\x14\x63onsistency_selector\"L\n\x19ListCollectionIdsResponse\x12\x16\n\x0e\x63ollection_ids\x18\x01 \x03(\t\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc9\x01\n\x11\x42\x61tchWriteRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12*\n\x06writes\x18\x02 \x03(\x0b\x32\x1a.google.firestore.v1.Write\x12\x42\n\x06labels\x18\x03 \x03(\x0b\x32\x32.google.firestore.v1.BatchWriteRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"q\n\x12\x42\x61tchWriteResponse\x12\x37\n\rwrite_results\x18\x01 \x03(\x0b\x32 .google.firestore.v1.WriteResult\x12\"\n\x06status\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status2\xda\x19\n\tFirestore\x12\x8f\x01\n\x0bGetDocument\x12\'.google.firestore.v1.GetDocumentRequest\x1a\x1d.google.firestore.v1.Document\"8\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{name=projects/*/databases/*/documents/*/**}\x12\xf5\x01\n\rListDocuments\x12).google.firestore.v1.ListDocumentsRequest\x1a*.google.firestore.v1.ListDocumentsResponse\"\x8c\x01\x82\xd3\xe4\x93\x02\x85\x01\x12\x42/v1/{parent=projects/*/databases/*/documents/*/**}/{collection_id}Z?\x12=/v1/{parent=projects/*/databases/*/documents}/{collection_id}\x12\xbf\x01\n\x0eUpdateDocument\x12*.google.firestore.v1.UpdateDocumentRequest\x1a\x1d.google.firestore.v1.Document\"b\xda\x41\x14\x64ocument,update_mask\x82\xd3\xe4\x93\x02\x45\x32\x39/v1/{document.name=projects/*/databases/*/documents/*/**}:\x08\x64ocument\x12\x95\x01\n\x0e\x44\x65leteDocument\x12*.google.firestore.v1.DeleteDocumentRequest\x1a\x16.google.protobuf.Empty\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32*0/v1/{name=projects/*/databases/*/documents/*/**}\x12\xb9\x01\n\x11\x42\x61tchGetDocuments\x12-.google.firestore.v1.BatchGetDocumentsRequest\x1a..google.firestore.v1.BatchGetDocumentsResponse\"C\x82\xd3\xe4\x93\x02=\"8/v1/{database=projects/*/databases/*}/documents:batchGet:\x01*0\x01\x12\xc7\x01\n\x10\x42\x65ginTransaction\x12,.google.firestore.v1.BeginTransactionRequest\x1a-.google.firestore.v1.BeginTransactionResponse\"V\xda\x41\x08\x64\x61tabase\x82\xd3\xe4\x93\x02\x45\"@/v1/{database=projects/*/databases/*}/documents:beginTransaction:\x01*\x12\xa6\x01\n\x06\x43ommit\x12\".google.firestore.v1.CommitRequest\x1a#.google.firestore.v1.CommitResponse\"S\xda\x41\x0f\x64\x61tabase,writes\x82\xd3\xe4\x93\x02;\"6/v1/{database=projects/*/databases/*}/documents:commit:\x01*\x12\xa4\x01\n\x08Rollback\x12$.google.firestore.v1.RollbackRequest\x1a\x16.google.protobuf.Empty\"Z\xda\x41\x14\x64\x61tabase,transaction\x82\xd3\xe4\x93\x02=\"8/v1/{database=projects/*/databases/*}/documents:rollback:\x01*\x12\xdf\x01\n\x08RunQuery\x12$.google.firestore.v1.RunQueryRequest\x1a%.google.firestore.v1.RunQueryResponse\"\x83\x01\x82\xd3\xe4\x93\x02}\"6/v1/{parent=projects/*/databases/*/documents}:runQuery:\x01*Z@\";/v1/{parent=projects/*/databases/*/documents/*/**}:runQuery:\x01*0\x01\x12\x97\x02\n\x13RunAggregationQuery\x12/.google.firestore.v1.RunAggregationQueryRequest\x1a\x30.google.firestore.v1.RunAggregationQueryResponse\"\x9a\x01\x82\xd3\xe4\x93\x02\x93\x01\"A/v1/{parent=projects/*/databases/*/documents}:runAggregationQuery:\x01*ZK\"F/v1/{parent=projects/*/databases/*/documents/*/**}:runAggregationQuery:\x01*0\x01\x12\xfc\x01\n\x0ePartitionQuery\x12*.google.firestore.v1.PartitionQueryRequest\x1a+.google.firestore.v1.PartitionQueryResponse\"\x90\x01\x82\xd3\xe4\x93\x02\x89\x01\"</v1/{parent=projects/*/databases/*/documents}:partitionQuery:\x01*ZF\"A/v1/{parent=projects/*/databases/*/documents/*/**}:partitionQuery:\x01*\x12\x94\x01\n\x05Write\x12!.google.firestore.v1.WriteRequest\x1a\".google.firestore.v1.WriteResponse\"@\x82\xd3\xe4\x93\x02:\"5/v1/{database=projects/*/databases/*}/documents:write:\x01*(\x01\x30\x01\x12\x98\x01\n\x06Listen\x12\".google.firestore.v1.ListenRequest\x1a#.google.firestore.v1.ListenResponse\"A\x82\xd3\xe4\x93\x02;\"6/v1/{database=projects/*/databases/*}/documents:listen:\x01*(\x01\x30\x01\x12\x94\x02\n\x11ListCollectionIds\x12-.google.firestore.v1.ListCollectionIdsRequest\x1a..google.firestore.v1.ListCollectionIdsResponse\"\x9f\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x8f\x01\"?/v1/{parent=projects/*/databases/*/documents}:listCollectionIds:\x01*ZI\"D/v1/{parent=projects/*/databases/*/documents/*/**}:listCollectionIds:\x01*\x12\xa4\x01\n\nBatchWrite\x12&.google.firestore.v1.BatchWriteRequest\x1a\'.google.firestore.v1.BatchWriteResponse\"E\x82\xd3\xe4\x93\x02?\":/v1/{database=projects/*/databases/*}/documents:batchWrite:\x01*\x12\xaf\x01\n\x0e\x43reateDocument\x12*.google.firestore.v1.CreateDocumentRequest\x1a\x1d.google.firestore.v1.Document\"R\x82\xd3\xe4\x93\x02L\"@/v1/{parent=projects/*/databases/*/documents/**}/{collection_id}:\x08\x64ocument\x1av\xca\x41\x18\x66irestore.googleapis.com\xd2\x41Xhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/datastoreB\xbf\x01\n\x17\x63om.google.firestore.v1B\x0e\x46irestoreProtoP\x01Z;cloud.google.com/go/firestore/apiv1/firestorepb;firestorepb\xaa\x02\x19Google.Cloud.Firestore.V1\xca\x02\x19Google\\Cloud\\Firestore\\V1\xea\x02\x1cGoogle::Cloud::Firestore::V1b\x06proto3"
25
+ descriptor_data = "\n#google/firestore/v1/firestore.proto\x12\x13google.firestore.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x18google/api/routing.proto\x1a,google/firestore/v1/aggregation_result.proto\x1a google/firestore/v1/common.proto\x1a\"google/firestore/v1/document.proto\x1a\'google/firestore/v1/explain_stats.proto\x1a\"google/firestore/v1/pipeline.proto\x1a\x1fgoogle/firestore/v1/query.proto\x1a\'google/firestore/v1/query_profile.proto\x1a\x1fgoogle/firestore/v1/write.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x17google/rpc/status.proto\"\xb8\x01\n\x12GetDocumentRequest\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12/\n\x04mask\x18\x02 \x01(\x0b\x32!.google.firestore.v1.DocumentMask\x12\x15\n\x0btransaction\x18\x03 \x01(\x0cH\x00\x12/\n\tread_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x42\x16\n\x14\x63onsistency_selector\"\xbb\x02\n\x14ListDocumentsRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rcollection_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x34\n\x04mask\x18\x07 \x01(\x0b\x32!.google.firestore.v1.DocumentMaskB\x03\xe0\x41\x01\x12\x15\n\x0btransaction\x18\x08 \x01(\x0cH\x00\x12/\n\tread_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x14\n\x0cshow_missing\x18\x0c \x01(\x08\x42\x16\n\x14\x63onsistency_selector\"b\n\x15ListDocumentsResponse\x12\x30\n\tdocuments\x18\x01 \x03(\x0b\x32\x1d.google.firestore.v1.Document\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc4\x01\n\x15\x43reateDocumentRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rcollection_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64ocument_id\x18\x03 \x01(\t\x12\x34\n\x08\x64ocument\x18\x04 \x01(\x0b\x32\x1d.google.firestore.v1.DocumentB\x03\xe0\x41\x02\x12/\n\x04mask\x18\x05 \x01(\x0b\x32!.google.firestore.v1.DocumentMask\"\xf3\x01\n\x15UpdateDocumentRequest\x12\x34\n\x08\x64ocument\x18\x01 \x01(\x0b\x32\x1d.google.firestore.v1.DocumentB\x03\xe0\x41\x02\x12\x36\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32!.google.firestore.v1.DocumentMask\x12/\n\x04mask\x18\x03 \x01(\x0b\x32!.google.firestore.v1.DocumentMask\x12;\n\x10\x63urrent_document\x18\x04 \x01(\x0b\x32!.google.firestore.v1.Precondition\"g\n\x15\x44\x65leteDocumentRequest\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12;\n\x10\x63urrent_document\x18\x02 \x01(\x0b\x32!.google.firestore.v1.Precondition\"\x99\x02\n\x18\x42\x61tchGetDocumentsRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\tdocuments\x18\x02 \x03(\t\x12/\n\x04mask\x18\x03 \x01(\x0b\x32!.google.firestore.v1.DocumentMask\x12\x15\n\x0btransaction\x18\x04 \x01(\x0cH\x00\x12\x42\n\x0fnew_transaction\x18\x05 \x01(\x0b\x32\'.google.firestore.v1.TransactionOptionsH\x00\x12/\n\tread_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x42\x16\n\x14\x63onsistency_selector\"\xac\x01\n\x19\x42\x61tchGetDocumentsResponse\x12.\n\x05\x66ound\x18\x01 \x01(\x0b\x32\x1d.google.firestore.v1.DocumentH\x00\x12\x11\n\x07missing\x18\x02 \x01(\tH\x00\x12\x13\n\x0btransaction\x18\x03 \x01(\x0c\x12-\n\tread_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\n\x06result\"j\n\x17\x42\x65ginTransactionRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x38\n\x07options\x18\x02 \x01(\x0b\x32\'.google.firestore.v1.TransactionOptions\"/\n\x18\x42\x65ginTransactionResponse\x12\x13\n\x0btransaction\x18\x01 \x01(\x0c\"g\n\rCommitRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12*\n\x06writes\x18\x02 \x03(\x0b\x32\x1a.google.firestore.v1.Write\x12\x13\n\x0btransaction\x18\x03 \x01(\x0c\"z\n\x0e\x43ommitResponse\x12\x37\n\rwrite_results\x18\x01 \x03(\x0b\x32 .google.firestore.v1.WriteResult\x12/\n\x0b\x63ommit_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"B\n\x0fRollbackRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0btransaction\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\"\xdd\x02\n\x0fRunQueryRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12@\n\x10structured_query\x18\x02 \x01(\x0b\x32$.google.firestore.v1.StructuredQueryH\x00\x12\x15\n\x0btransaction\x18\x05 \x01(\x0cH\x01\x12\x42\n\x0fnew_transaction\x18\x06 \x01(\x0b\x32\'.google.firestore.v1.TransactionOptionsH\x01\x12/\n\tread_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x12\x41\n\x0f\x65xplain_options\x18\n \x01(\x0b\x32#.google.firestore.v1.ExplainOptionsB\x03\xe0\x41\x01\x42\x0c\n\nquery_typeB\x16\n\x14\x63onsistency_selector\"\x87\x02\n\x10RunQueryResponse\x12\x13\n\x0btransaction\x18\x02 \x01(\x0c\x12/\n\x08\x64ocument\x18\x01 \x01(\x0b\x32\x1d.google.firestore.v1.Document\x12-\n\tread_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x17\n\x0fskipped_results\x18\x04 \x01(\x05\x12\x0e\n\x04\x64one\x18\x06 \x01(\x08H\x00\x12<\n\x0f\x65xplain_metrics\x18\x0b \x01(\x0b\x32#.google.firestore.v1.ExplainMetricsB\x17\n\x15\x63ontinuation_selector\"\xac\x02\n\x16\x45xecutePipelineRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x46\n\x13structured_pipeline\x18\x02 \x01(\x0b\x32\'.google.firestore.v1.StructuredPipelineH\x00\x12\x15\n\x0btransaction\x18\x05 \x01(\x0cH\x01\x12\x42\n\x0fnew_transaction\x18\x06 \x01(\x0b\x32\'.google.firestore.v1.TransactionOptionsH\x01\x12/\n\tread_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x42\x0f\n\rpipeline_typeB\x16\n\x14\x63onsistency_selector\"\xcc\x01\n\x17\x45xecutePipelineResponse\x12\x13\n\x0btransaction\x18\x01 \x01(\x0c\x12.\n\x07results\x18\x02 \x03(\x0b\x32\x1d.google.firestore.v1.Document\x12\x32\n\x0e\x65xecution_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\rexplain_stats\x18\x04 \x01(\x0b\x32!.google.firestore.v1.ExplainStats\"\xff\x02\n\x1aRunAggregationQueryRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12W\n\x1cstructured_aggregation_query\x18\x02 \x01(\x0b\x32/.google.firestore.v1.StructuredAggregationQueryH\x00\x12\x15\n\x0btransaction\x18\x04 \x01(\x0cH\x01\x12\x42\n\x0fnew_transaction\x18\x05 \x01(\x0b\x32\'.google.firestore.v1.TransactionOptionsH\x01\x12/\n\tread_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x12\x41\n\x0f\x65xplain_options\x18\x08 \x01(\x0b\x32#.google.firestore.v1.ExplainOptionsB\x03\xe0\x41\x01\x42\x0c\n\nquery_typeB\x16\n\x14\x63onsistency_selector\"\xd7\x01\n\x1bRunAggregationQueryResponse\x12\x36\n\x06result\x18\x01 \x01(\x0b\x32&.google.firestore.v1.AggregationResult\x12\x13\n\x0btransaction\x18\x02 \x01(\x0c\x12-\n\tread_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12<\n\x0f\x65xplain_metrics\x18\n \x01(\x0b\x32#.google.firestore.v1.ExplainMetrics\"\x85\x02\n\x15PartitionQueryRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12@\n\x10structured_query\x18\x02 \x01(\x0b\x32$.google.firestore.v1.StructuredQueryH\x00\x12\x17\n\x0fpartition_count\x18\x03 \x01(\x03\x12\x12\n\npage_token\x18\x04 \x01(\t\x12\x11\n\tpage_size\x18\x05 \x01(\x05\x12/\n\tread_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x42\x0c\n\nquery_typeB\x16\n\x14\x63onsistency_selector\"b\n\x16PartitionQueryResponse\x12/\n\npartitions\x18\x01 \x03(\x0b\x32\x1b.google.firestore.v1.Cursor\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xe8\x01\n\x0cWriteRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\tstream_id\x18\x02 \x01(\t\x12*\n\x06writes\x18\x03 \x03(\x0b\x32\x1a.google.firestore.v1.Write\x12\x14\n\x0cstream_token\x18\x04 \x01(\x0c\x12=\n\x06labels\x18\x05 \x03(\x0b\x32-.google.firestore.v1.WriteRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa2\x01\n\rWriteResponse\x12\x11\n\tstream_id\x18\x01 \x01(\t\x12\x14\n\x0cstream_token\x18\x02 \x01(\x0c\x12\x37\n\rwrite_results\x18\x03 \x03(\x0b\x32 .google.firestore.v1.WriteResult\x12/\n\x0b\x63ommit_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xf2\x01\n\rListenRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x31\n\nadd_target\x18\x02 \x01(\x0b\x32\x1b.google.firestore.v1.TargetH\x00\x12\x17\n\rremove_target\x18\x03 \x01(\x05H\x00\x12>\n\x06labels\x18\x04 \x03(\x0b\x32..google.firestore.v1.ListenRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\rtarget_change\"\xd5\x02\n\x0eListenResponse\x12:\n\rtarget_change\x18\x02 \x01(\x0b\x32!.google.firestore.v1.TargetChangeH\x00\x12>\n\x0f\x64ocument_change\x18\x03 \x01(\x0b\x32#.google.firestore.v1.DocumentChangeH\x00\x12>\n\x0f\x64ocument_delete\x18\x04 \x01(\x0b\x32#.google.firestore.v1.DocumentDeleteH\x00\x12>\n\x0f\x64ocument_remove\x18\x06 \x01(\x0b\x32#.google.firestore.v1.DocumentRemoveH\x00\x12\x36\n\x06\x66ilter\x18\x05 \x01(\x0b\x32$.google.firestore.v1.ExistenceFilterH\x00\x42\x0f\n\rresponse_type\"\xd6\x03\n\x06Target\x12\x38\n\x05query\x18\x02 \x01(\x0b\x32\'.google.firestore.v1.Target.QueryTargetH\x00\x12@\n\tdocuments\x18\x03 \x01(\x0b\x32+.google.firestore.v1.Target.DocumentsTargetH\x00\x12\x16\n\x0cresume_token\x18\x04 \x01(\x0cH\x01\x12/\n\tread_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x12\x11\n\ttarget_id\x18\x05 \x01(\x05\x12\x0c\n\x04once\x18\x06 \x01(\x08\x12\x33\n\x0e\x65xpected_count\x18\x0c \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x1a$\n\x0f\x44ocumentsTarget\x12\x11\n\tdocuments\x18\x02 \x03(\t\x1am\n\x0bQueryTarget\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12@\n\x10structured_query\x18\x02 \x01(\x0b\x32$.google.firestore.v1.StructuredQueryH\x00\x42\x0c\n\nquery_typeB\r\n\x0btarget_typeB\r\n\x0bresume_type\"\xaa\x02\n\x0cTargetChange\x12N\n\x12target_change_type\x18\x01 \x01(\x0e\x32\x32.google.firestore.v1.TargetChange.TargetChangeType\x12\x12\n\ntarget_ids\x18\x02 \x03(\x05\x12!\n\x05\x63\x61use\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12\x14\n\x0cresume_token\x18\x04 \x01(\x0c\x12-\n\tread_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"N\n\x10TargetChangeType\x12\r\n\tNO_CHANGE\x10\x00\x12\x07\n\x03\x41\x44\x44\x10\x01\x12\n\n\x06REMOVE\x10\x02\x12\x0b\n\x07\x43URRENT\x10\x03\x12\t\n\x05RESET\x10\x04\"\x9f\x01\n\x18ListCollectionIdsRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12/\n\tread_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x42\x16\n\x14\x63onsistency_selector\"L\n\x19ListCollectionIdsResponse\x12\x16\n\x0e\x63ollection_ids\x18\x01 \x03(\t\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc9\x01\n\x11\x42\x61tchWriteRequest\x12\x15\n\x08\x64\x61tabase\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12*\n\x06writes\x18\x02 \x03(\x0b\x32\x1a.google.firestore.v1.Write\x12\x42\n\x06labels\x18\x03 \x03(\x0b\x32\x32.google.firestore.v1.BatchWriteRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"q\n\x12\x42\x61tchWriteResponse\x12\x37\n\rwrite_results\x18\x01 \x03(\x0b\x32 .google.firestore.v1.WriteResult\x12\"\n\x06status\x18\x02 \x03(\x0b\x32\x12.google.rpc.Status2\xfb\x1b\n\tFirestore\x12\x8f\x01\n\x0bGetDocument\x12\'.google.firestore.v1.GetDocumentRequest\x1a\x1d.google.firestore.v1.Document\"8\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{name=projects/*/databases/*/documents/*/**}\x12\xf5\x01\n\rListDocuments\x12).google.firestore.v1.ListDocumentsRequest\x1a*.google.firestore.v1.ListDocumentsResponse\"\x8c\x01\x82\xd3\xe4\x93\x02\x85\x01\x12\x42/v1/{parent=projects/*/databases/*/documents/*/**}/{collection_id}Z?\x12=/v1/{parent=projects/*/databases/*/documents}/{collection_id}\x12\xbf\x01\n\x0eUpdateDocument\x12*.google.firestore.v1.UpdateDocumentRequest\x1a\x1d.google.firestore.v1.Document\"b\xda\x41\x14\x64ocument,update_mask\x82\xd3\xe4\x93\x02\x45\x32\x39/v1/{document.name=projects/*/databases/*/documents/*/**}:\x08\x64ocument\x12\x95\x01\n\x0e\x44\x65leteDocument\x12*.google.firestore.v1.DeleteDocumentRequest\x1a\x16.google.protobuf.Empty\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32*0/v1/{name=projects/*/databases/*/documents/*/**}\x12\xb9\x01\n\x11\x42\x61tchGetDocuments\x12-.google.firestore.v1.BatchGetDocumentsRequest\x1a..google.firestore.v1.BatchGetDocumentsResponse\"C\x82\xd3\xe4\x93\x02=\"8/v1/{database=projects/*/databases/*}/documents:batchGet:\x01*0\x01\x12\xc7\x01\n\x10\x42\x65ginTransaction\x12,.google.firestore.v1.BeginTransactionRequest\x1a-.google.firestore.v1.BeginTransactionResponse\"V\xda\x41\x08\x64\x61tabase\x82\xd3\xe4\x93\x02\x45\"@/v1/{database=projects/*/databases/*}/documents:beginTransaction:\x01*\x12\xa6\x01\n\x06\x43ommit\x12\".google.firestore.v1.CommitRequest\x1a#.google.firestore.v1.CommitResponse\"S\xda\x41\x0f\x64\x61tabase,writes\x82\xd3\xe4\x93\x02;\"6/v1/{database=projects/*/databases/*}/documents:commit:\x01*\x12\xa4\x01\n\x08Rollback\x12$.google.firestore.v1.RollbackRequest\x1a\x16.google.protobuf.Empty\"Z\xda\x41\x14\x64\x61tabase,transaction\x82\xd3\xe4\x93\x02=\"8/v1/{database=projects/*/databases/*}/documents:rollback:\x01*\x12\xdf\x01\n\x08RunQuery\x12$.google.firestore.v1.RunQueryRequest\x1a%.google.firestore.v1.RunQueryResponse\"\x83\x01\x82\xd3\xe4\x93\x02}\"6/v1/{parent=projects/*/databases/*/documents}:runQuery:\x01*Z@\";/v1/{parent=projects/*/databases/*/documents/*/**}:runQuery:\x01*0\x01\x12\x9e\x02\n\x0f\x45xecutePipeline\x12+.google.firestore.v1.ExecutePipelineRequest\x1a,.google.firestore.v1.ExecutePipelineResponse\"\xad\x01\x82\xd3\xe4\x93\x02\x44\"?/v1/{database=projects/*/databases/*}/documents:executePipeline:\x01*\x8a\xd3\xe4\x93\x02]\x12&\n\x08\x64\x61tabase\x12\x1aprojects/{project_id=*}/**\x12\x33\n\x08\x64\x61tabase\x12\'projects/*/databases/{database_id=*}/**0\x01\x12\x97\x02\n\x13RunAggregationQuery\x12/.google.firestore.v1.RunAggregationQueryRequest\x1a\x30.google.firestore.v1.RunAggregationQueryResponse\"\x9a\x01\x82\xd3\xe4\x93\x02\x93\x01\"A/v1/{parent=projects/*/databases/*/documents}:runAggregationQuery:\x01*ZK\"F/v1/{parent=projects/*/databases/*/documents/*/**}:runAggregationQuery:\x01*0\x01\x12\xfc\x01\n\x0ePartitionQuery\x12*.google.firestore.v1.PartitionQueryRequest\x1a+.google.firestore.v1.PartitionQueryResponse\"\x90\x01\x82\xd3\xe4\x93\x02\x89\x01\"</v1/{parent=projects/*/databases/*/documents}:partitionQuery:\x01*ZF\"A/v1/{parent=projects/*/databases/*/documents/*/**}:partitionQuery:\x01*\x12\x94\x01\n\x05Write\x12!.google.firestore.v1.WriteRequest\x1a\".google.firestore.v1.WriteResponse\"@\x82\xd3\xe4\x93\x02:\"5/v1/{database=projects/*/databases/*}/documents:write:\x01*(\x01\x30\x01\x12\x98\x01\n\x06Listen\x12\".google.firestore.v1.ListenRequest\x1a#.google.firestore.v1.ListenResponse\"A\x82\xd3\xe4\x93\x02;\"6/v1/{database=projects/*/databases/*}/documents:listen:\x01*(\x01\x30\x01\x12\x94\x02\n\x11ListCollectionIds\x12-.google.firestore.v1.ListCollectionIdsRequest\x1a..google.firestore.v1.ListCollectionIdsResponse\"\x9f\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x8f\x01\"?/v1/{parent=projects/*/databases/*/documents}:listCollectionIds:\x01*ZI\"D/v1/{parent=projects/*/databases/*/documents/*/**}:listCollectionIds:\x01*\x12\xa4\x01\n\nBatchWrite\x12&.google.firestore.v1.BatchWriteRequest\x1a\'.google.firestore.v1.BatchWriteResponse\"E\x82\xd3\xe4\x93\x02?\":/v1/{database=projects/*/databases/*}/documents:batchWrite:\x01*\x12\xaf\x01\n\x0e\x43reateDocument\x12*.google.firestore.v1.CreateDocumentRequest\x1a\x1d.google.firestore.v1.Document\"R\x82\xd3\xe4\x93\x02L\"@/v1/{parent=projects/*/databases/*/documents/**}/{collection_id}:\x08\x64ocument\x1av\xca\x41\x18\x66irestore.googleapis.com\xd2\x41Xhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/datastoreB\xbf\x01\n\x17\x63om.google.firestore.v1B\x0e\x46irestoreProtoP\x01Z;cloud.google.com/go/firestore/apiv1/firestorepb;firestorepb\xaa\x02\x19Google.Cloud.Firestore.V1\xca\x02\x19Google\\Cloud\\Firestore\\V1\xea\x02\x1cGoogle::Cloud::Firestore::V1b\x06proto3"
24
26
 
25
27
  pool = Google::Protobuf::DescriptorPool.generated_pool
26
28
 
@@ -41,6 +43,8 @@ rescue TypeError
41
43
  ["google.firestore.v1.Write", "google/firestore/v1/write.proto"],
42
44
  ["google.firestore.v1.StructuredQuery", "google/firestore/v1/query.proto"],
43
45
  ["google.firestore.v1.ExplainOptions", "google/firestore/v1/query_profile.proto"],
46
+ ["google.firestore.v1.StructuredPipeline", "google/firestore/v1/pipeline.proto"],
47
+ ["google.firestore.v1.ExplainStats", "google/firestore/v1/explain_stats.proto"],
44
48
  ["google.firestore.v1.AggregationResult", "google/firestore/v1/aggregation_result.proto"],
45
49
  ["google.protobuf.Int32Value", "google/protobuf/wrappers.proto"],
46
50
  ["google.rpc.Status", "google/rpc/status.proto"],
@@ -74,6 +78,8 @@ module Google
74
78
  RollbackRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RollbackRequest").msgclass
75
79
  RunQueryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RunQueryRequest").msgclass
76
80
  RunQueryResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RunQueryResponse").msgclass
81
+ ExecutePipelineRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.ExecutePipelineRequest").msgclass
82
+ ExecutePipelineResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.ExecutePipelineResponse").msgclass
77
83
  RunAggregationQueryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RunAggregationQueryRequest").msgclass
78
84
  RunAggregationQueryResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.RunAggregationQueryResponse").msgclass
79
85
  PartitionQueryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.PartitionQueryRequest").msgclass
@@ -63,6 +63,8 @@ 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
+ # Executes a pipeline query.
67
+ rpc :ExecutePipeline, ::Google::Cloud::Firestore::V1::ExecutePipelineRequest, stream(::Google::Cloud::Firestore::V1::ExecutePipelineResponse)
66
68
  # Runs an aggregation query.
67
69
  #
68
70
  # Rather than producing [Document][google.firestore.v1.Document] results like
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: google/firestore/v1/pipeline.proto
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/api/field_behavior_pb'
8
+ require 'google/firestore/v1/document_pb'
9
+
10
+
11
+ descriptor_data = "\n\"google/firestore/v1/pipeline.proto\x12\x13google.firestore.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\"google/firestore/v1/document.proto\"\xe2\x01\n\x12StructuredPipeline\x12\x34\n\x08pipeline\x18\x01 \x01(\x0b\x32\x1d.google.firestore.v1.PipelineB\x03\xe0\x41\x02\x12J\n\x07options\x18\x02 \x03(\x0b\x32\x34.google.firestore.v1.StructuredPipeline.OptionsEntryB\x03\xe0\x41\x01\x1aJ\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.firestore.v1.Value:\x02\x38\x01\x42\xc5\x01\n\x17\x63om.google.firestore.v1B\rPipelineProtoP\x01Z;cloud.google.com/go/firestore/apiv1/firestorepb;firestorepb\xa2\x02\x04GCFS\xaa\x02\x19Google.Cloud.Firestore.V1\xca\x02\x19Google\\Cloud\\Firestore\\V1\xea\x02\x1cGoogle::Cloud::Firestore::V1b\x06proto3"
12
+
13
+ pool = Google::Protobuf::DescriptorPool.generated_pool
14
+
15
+ begin
16
+ pool.add_serialized_file(descriptor_data)
17
+ rescue TypeError
18
+ # Compatibility code: will be removed in the next major version.
19
+ require 'google/protobuf/descriptor_pb'
20
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
21
+ parsed.clear_dependency
22
+ serialized = parsed.class.encode(parsed)
23
+ file = pool.add_serialized_file(serialized)
24
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
25
+ imports = [
26
+ ["google.firestore.v1.Pipeline", "google/firestore/v1/document.proto"],
27
+ ]
28
+ imports.each do |type_name, expected_filename|
29
+ import_file = pool.lookup(type_name).file_descriptor
30
+ if import_file.name != expected_filename
31
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
32
+ end
33
+ end
34
+ warn "Each proto file must use a consistent fully-qualified name."
35
+ warn "This will become an error in the next major version."
36
+ end
37
+
38
+ module Google
39
+ module Cloud
40
+ module Firestore
41
+ module V1
42
+ StructuredPipeline = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.firestore.v1.StructuredPipeline").msgclass
43
+ end
44
+ end
45
+ end
46
+ end
@@ -87,22 +87,22 @@ module Google
87
87
  # @return [::Google::Protobuf::NullValue]
88
88
  # A null value.
89
89
  #
90
- # Note: The following fields are mutually exclusive: `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
90
+ # Note: The following fields are mutually exclusive: `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`, `field_reference_value`, `function_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
91
91
  # @!attribute [rw] boolean_value
92
92
  # @return [::Boolean]
93
93
  # A boolean value.
94
94
  #
95
- # Note: The following fields are mutually exclusive: `boolean_value`, `null_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
95
+ # Note: The following fields are mutually exclusive: `boolean_value`, `null_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`, `field_reference_value`, `function_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
96
96
  # @!attribute [rw] integer_value
97
97
  # @return [::Integer]
98
98
  # An integer value.
99
99
  #
100
- # Note: The following fields are mutually exclusive: `integer_value`, `null_value`, `boolean_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
100
+ # Note: The following fields are mutually exclusive: `integer_value`, `null_value`, `boolean_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`, `field_reference_value`, `function_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
101
101
  # @!attribute [rw] double_value
102
102
  # @return [::Float]
103
103
  # A double value.
104
104
  #
105
- # Note: The following fields are mutually exclusive: `double_value`, `null_value`, `boolean_value`, `integer_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
105
+ # Note: The following fields are mutually exclusive: `double_value`, `null_value`, `boolean_value`, `integer_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`, `field_reference_value`, `function_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
106
106
  # @!attribute [rw] timestamp_value
107
107
  # @return [::Google::Protobuf::Timestamp]
108
108
  # A timestamp value.
@@ -110,7 +110,7 @@ module Google
110
110
  # Precise only to microseconds. When stored, any additional precision is
111
111
  # rounded down.
112
112
  #
113
- # Note: The following fields are mutually exclusive: `timestamp_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
113
+ # Note: The following fields are mutually exclusive: `timestamp_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`, `field_reference_value`, `function_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
114
114
  # @!attribute [rw] string_value
115
115
  # @return [::String]
116
116
  # A string value.
@@ -119,7 +119,7 @@ module Google
119
119
  # Only the first 1,500 bytes of the UTF-8 representation are considered by
120
120
  # queries.
121
121
  #
122
- # Note: The following fields are mutually exclusive: `string_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
122
+ # Note: The following fields are mutually exclusive: `string_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`, `field_reference_value`, `function_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
123
123
  # @!attribute [rw] bytes_value
124
124
  # @return [::String]
125
125
  # A bytes value.
@@ -127,18 +127,18 @@ module Google
127
127
  # Must not exceed 1 MiB - 89 bytes.
128
128
  # Only the first 1,500 bytes are considered by queries.
129
129
  #
130
- # Note: The following fields are mutually exclusive: `bytes_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
130
+ # Note: The following fields are mutually exclusive: `bytes_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`, `field_reference_value`, `function_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
131
131
  # @!attribute [rw] reference_value
132
132
  # @return [::String]
133
133
  # A reference to a document. For example:
134
134
  # `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
135
135
  #
136
- # Note: The following fields are mutually exclusive: `reference_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `geo_point_value`, `array_value`, `map_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
136
+ # Note: The following fields are mutually exclusive: `reference_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `geo_point_value`, `array_value`, `map_value`, `field_reference_value`, `function_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
137
137
  # @!attribute [rw] geo_point_value
138
138
  # @return [::Google::Type::LatLng]
139
139
  # A geo point value representing a point on the surface of Earth.
140
140
  #
141
- # Note: The following fields are mutually exclusive: `geo_point_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `array_value`, `map_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
141
+ # Note: The following fields are mutually exclusive: `geo_point_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `array_value`, `map_value`, `field_reference_value`, `function_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
142
142
  # @!attribute [rw] array_value
143
143
  # @return [::Google::Cloud::Firestore::V1::ArrayValue]
144
144
  # An array value.
@@ -146,12 +146,44 @@ module Google
146
146
  # Cannot directly contain another array value, though can contain a
147
147
  # map which contains another array.
148
148
  #
149
- # Note: The following fields are mutually exclusive: `array_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `map_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
149
+ # Note: The following fields are mutually exclusive: `array_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `map_value`, `field_reference_value`, `function_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
150
150
  # @!attribute [rw] map_value
151
151
  # @return [::Google::Cloud::Firestore::V1::MapValue]
152
152
  # A map value.
153
153
  #
154
- # Note: The following fields are mutually exclusive: `map_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
154
+ # Note: The following fields are mutually exclusive: `map_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `field_reference_value`, `function_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
155
+ # @!attribute [rw] field_reference_value
156
+ # @return [::String]
157
+ # Value which references a field.
158
+ #
159
+ # This is considered relative (vs absolute) since it only refers to a field
160
+ # and not a field within a particular document.
161
+ #
162
+ # **Requires:**
163
+ #
164
+ # * Must follow [field reference][FieldReference.field_path] limitations.
165
+ #
166
+ # * Not allowed to be used when writing documents.
167
+ #
168
+ # Note: The following fields are mutually exclusive: `field_reference_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`, `function_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
169
+ # @!attribute [rw] function_value
170
+ # @return [::Google::Cloud::Firestore::V1::Function]
171
+ # A value that represents an unevaluated expression.
172
+ #
173
+ # **Requires:**
174
+ #
175
+ # * Not allowed to be used when writing documents.
176
+ #
177
+ # Note: The following fields are mutually exclusive: `function_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`, `field_reference_value`, `pipeline_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
178
+ # @!attribute [rw] pipeline_value
179
+ # @return [::Google::Cloud::Firestore::V1::Pipeline]
180
+ # A value that represents an unevaluated pipeline.
181
+ #
182
+ # **Requires:**
183
+ #
184
+ # * Not allowed to be used when writing documents.
185
+ #
186
+ # Note: The following fields are mutually exclusive: `pipeline_value`, `null_value`, `boolean_value`, `integer_value`, `double_value`, `timestamp_value`, `string_value`, `bytes_value`, `reference_value`, `geo_point_value`, `array_value`, `map_value`, `field_reference_value`, `function_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
155
187
  class Value
156
188
  include ::Google::Protobuf::MessageExts
157
189
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -188,6 +220,97 @@ module Google
188
220
  extend ::Google::Protobuf::MessageExts::ClassMethods
189
221
  end
190
222
  end
223
+
224
+ # Represents an unevaluated scalar expression.
225
+ #
226
+ # For example, the expression `like(user_name, "%alice%")` is represented as:
227
+ #
228
+ # ```
229
+ # name: "like"
230
+ # args { field_reference: "user_name" }
231
+ # args { string_value: "%alice%" }
232
+ # ```
233
+ # @!attribute [rw] name
234
+ # @return [::String]
235
+ # Required. The name of the function to evaluate.
236
+ #
237
+ # **Requires:**
238
+ #
239
+ # * must be in snake case (lower case with underscore separator).
240
+ # @!attribute [rw] args
241
+ # @return [::Array<::Google::Cloud::Firestore::V1::Value>]
242
+ # Optional. Ordered list of arguments the given function expects.
243
+ # @!attribute [rw] options
244
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Firestore::V1::Value}]
245
+ # Optional. Optional named arguments that certain functions may support.
246
+ class Function
247
+ include ::Google::Protobuf::MessageExts
248
+ extend ::Google::Protobuf::MessageExts::ClassMethods
249
+
250
+ # @!attribute [rw] key
251
+ # @return [::String]
252
+ # @!attribute [rw] value
253
+ # @return [::Google::Cloud::Firestore::V1::Value]
254
+ class OptionsEntry
255
+ include ::Google::Protobuf::MessageExts
256
+ extend ::Google::Protobuf::MessageExts::ClassMethods
257
+ end
258
+ end
259
+
260
+ # A Firestore query represented as an ordered list of operations / stages.
261
+ # @!attribute [rw] stages
262
+ # @return [::Array<::Google::Cloud::Firestore::V1::Pipeline::Stage>]
263
+ # Required. Ordered list of stages to evaluate.
264
+ class Pipeline
265
+ include ::Google::Protobuf::MessageExts
266
+ extend ::Google::Protobuf::MessageExts::ClassMethods
267
+
268
+ # A single operation within a pipeline.
269
+ #
270
+ # A stage is made up of a unique name, and a list of arguments. The exact
271
+ # number of arguments & types is dependent on the stage type.
272
+ #
273
+ # To give an example, the stage `filter(state = "MD")` would be encoded as:
274
+ #
275
+ # ```
276
+ # name: "filter"
277
+ # args {
278
+ # function_value {
279
+ # name: "eq"
280
+ # args { field_reference_value: "state" }
281
+ # args { string_value: "MD" }
282
+ # }
283
+ # }
284
+ # ```
285
+ #
286
+ # See public documentation for the full list.
287
+ # @!attribute [rw] name
288
+ # @return [::String]
289
+ # Required. The name of the stage to evaluate.
290
+ #
291
+ # **Requires:**
292
+ #
293
+ # * must be in snake case (lower case with underscore separator).
294
+ # @!attribute [rw] args
295
+ # @return [::Array<::Google::Cloud::Firestore::V1::Value>]
296
+ # Optional. Ordered list of arguments the given stage expects.
297
+ # @!attribute [rw] options
298
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Firestore::V1::Value}]
299
+ # Optional. Optional named arguments that certain functions may support.
300
+ class Stage
301
+ include ::Google::Protobuf::MessageExts
302
+ extend ::Google::Protobuf::MessageExts::ClassMethods
303
+
304
+ # @!attribute [rw] key
305
+ # @return [::String]
306
+ # @!attribute [rw] value
307
+ # @return [::Google::Cloud::Firestore::V1::Value]
308
+ class OptionsEntry
309
+ include ::Google::Protobuf::MessageExts
310
+ extend ::Google::Protobuf::MessageExts::ClassMethods
311
+ end
312
+ end
313
+ end
191
314
  end
192
315
  end
193
316
  end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 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
+ # Pipeline explain stats.
25
+ #
26
+ # Depending on the explain options in the original request, this can contain
27
+ # the optimized plan and / or execution stats.
28
+ # @!attribute [rw] data
29
+ # @return [::Google::Protobuf::Any]
30
+ # The format depends on the `output_format` options in the request.
31
+ #
32
+ # Currently there are two supported options: `TEXT` and `JSON`.
33
+ # Both supply a `google.protobuf.StringValue`.
34
+ class ExplainStats
35
+ include ::Google::Protobuf::MessageExts
36
+ extend ::Google::Protobuf::MessageExts::ClassMethods
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -449,6 +449,92 @@ module Google
449
449
  extend ::Google::Protobuf::MessageExts::ClassMethods
450
450
  end
451
451
 
452
+ # The request for
453
+ # {::Google::Cloud::Firestore::V1::Firestore::Client#execute_pipeline Firestore.ExecutePipeline}.
454
+ # @!attribute [rw] database
455
+ # @return [::String]
456
+ # Required. Database identifier, in the form
457
+ # `projects/{project}/databases/{database}`.
458
+ # @!attribute [rw] structured_pipeline
459
+ # @return [::Google::Cloud::Firestore::V1::StructuredPipeline]
460
+ # A pipelined operation.
461
+ # @!attribute [rw] transaction
462
+ # @return [::String]
463
+ # Run the query within an already active transaction.
464
+ #
465
+ # The value here is the opaque transaction ID to execute the query in.
466
+ #
467
+ # Note: The following fields are mutually exclusive: `transaction`, `new_transaction`, `read_time`. If a field in that set is populated, all other fields in the set will automatically be cleared.
468
+ # @!attribute [rw] new_transaction
469
+ # @return [::Google::Cloud::Firestore::V1::TransactionOptions]
470
+ # Execute the pipeline in a new transaction.
471
+ #
472
+ # The identifier of the newly created transaction will be returned in the
473
+ # first response on the stream. This defaults to a read-only transaction.
474
+ #
475
+ # Note: The following fields are mutually exclusive: `new_transaction`, `transaction`, `read_time`. If a field in that set is populated, all other fields in the set will automatically be cleared.
476
+ # @!attribute [rw] read_time
477
+ # @return [::Google::Protobuf::Timestamp]
478
+ # Execute the pipeline in a snapshot transaction at the given time.
479
+ #
480
+ # This must be a microsecond precision timestamp within the past one hour,
481
+ # or if Point-in-Time Recovery is enabled, can additionally be a whole
482
+ # minute timestamp within the past 7 days.
483
+ #
484
+ # Note: The following fields are mutually exclusive: `read_time`, `transaction`, `new_transaction`. If a field in that set is populated, all other fields in the set will automatically be cleared.
485
+ class ExecutePipelineRequest
486
+ include ::Google::Protobuf::MessageExts
487
+ extend ::Google::Protobuf::MessageExts::ClassMethods
488
+ end
489
+
490
+ # The response for [Firestore.Execute][].
491
+ # @!attribute [rw] transaction
492
+ # @return [::String]
493
+ # Newly created transaction identifier.
494
+ #
495
+ # This field is only specified as part of the first response from the server,
496
+ # alongside the `results` field when the original request specified
497
+ # [ExecuteRequest.new_transaction][].
498
+ # @!attribute [rw] results
499
+ # @return [::Array<::Google::Cloud::Firestore::V1::Document>]
500
+ # An ordered batch of results returned executing a pipeline.
501
+ #
502
+ # The batch size is variable, and can even be zero for when only a partial
503
+ # progress message is returned.
504
+ #
505
+ # The fields present in the returned documents are only those that were
506
+ # explicitly requested in the pipeline, this includes those like
507
+ # {::Google::Cloud::Firestore::V1::Document#name `__name__`} and
508
+ # {::Google::Cloud::Firestore::V1::Document#update_time `__update_time__`}. This is
509
+ # explicitly a divergence from `Firestore.RunQuery` / `Firestore.GetDocument`
510
+ # RPCs which always return such fields even when they are not specified in
511
+ # the {::Google::Cloud::Firestore::V1::DocumentMask `mask`}.
512
+ # @!attribute [rw] execution_time
513
+ # @return [::Google::Protobuf::Timestamp]
514
+ # The time at which the results are valid.
515
+ #
516
+ # This is a (not strictly) monotonically increasing value across multiple
517
+ # responses in the same stream. The API guarantees that all previously
518
+ # returned results are still valid at the latest `execution_time`. This
519
+ # allows the API consumer to treat the query if it ran at the latest
520
+ # `execution_time` returned.
521
+ #
522
+ # If the query returns no results, a response with `execution_time` and no
523
+ # `results` will be sent, and this represents the time at which the operation
524
+ # was run.
525
+ # @!attribute [rw] explain_stats
526
+ # @return [::Google::Cloud::Firestore::V1::ExplainStats]
527
+ # Query explain stats.
528
+ #
529
+ # This is present on the **last** response if the request configured explain
530
+ # to run in 'analyze' or 'explain' mode in the pipeline options. If the query
531
+ # does not return any results, a response with `explain_stats` and no
532
+ # `results` will still be sent.
533
+ class ExecutePipelineResponse
534
+ include ::Google::Protobuf::MessageExts
535
+ extend ::Google::Protobuf::MessageExts::ClassMethods
536
+ end
537
+
452
538
  # The request for
453
539
  # {::Google::Cloud::Firestore::V1::Firestore::Client#run_aggregation_query Firestore.RunAggregationQuery}.
454
540
  # @!attribute [rw] parent
@@ -813,7 +899,7 @@ module Google
813
899
  # will immediately send a response with a `TargetChange::Remove` event.
814
900
  #
815
901
  # Note that if the client sends multiple `AddTarget` requests
816
- # without an ID, the order of IDs returned in `TargetChage.target_ids` are
902
+ # without an ID, the order of IDs returned in `TargetChange.target_ids` are
817
903
  # undefined. Therefore, clients should provide a target ID instead of relying
818
904
  # on the server to assign one.
819
905
  #
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 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
+ # A Firestore query represented as an ordered list of operations / stages.
25
+ #
26
+ # This is considered the top-level function which plans and executes a query.
27
+ # It is logically equivalent to `query(stages, options)`, but prevents the
28
+ # client from having to build a function wrapper.
29
+ # @!attribute [rw] pipeline
30
+ # @return [::Google::Cloud::Firestore::V1::Pipeline]
31
+ # Required. The pipeline query to execute.
32
+ # @!attribute [rw] options
33
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Firestore::V1::Value}]
34
+ # Optional. Optional query-level arguments.
35
+ class StructuredPipeline
36
+ include ::Google::Protobuf::MessageExts
37
+ extend ::Google::Protobuf::MessageExts::ClassMethods
38
+
39
+ # @!attribute [rw] key
40
+ # @return [::String]
41
+ # @!attribute [rw] value
42
+ # @return [::Google::Cloud::Firestore::V1::Value]
43
+ class OptionsEntry
44
+ include ::Google::Protobuf::MessageExts
45
+ extend ::Google::Protobuf::MessageExts::ClassMethods
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -409,8 +409,8 @@ module Google
409
409
  # Since DOT_PRODUCT distances increase when the vectors are more similar,
410
410
  # the comparison is inverted.
411
411
  #
412
- # * For EUCLIDEAN, COSINE: WHERE distance <= distance_threshold
413
- # * For DOT_PRODUCT: WHERE distance >= distance_threshold
412
+ # * For EUCLIDEAN, COSINE: `WHERE distance <= distance_threshold`
413
+ # * For DOT_PRODUCT: `WHERE distance >= distance_threshold`
414
414
  class FindNearest
415
415
  include ::Google::Protobuf::MessageExts
416
416
  extend ::Google::Protobuf::MessageExts::ClassMethods
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-firestore-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
@@ -78,8 +78,10 @@ files:
78
78
  - lib/google/firestore/v1/bloom_filter_pb.rb
79
79
  - lib/google/firestore/v1/common_pb.rb
80
80
  - lib/google/firestore/v1/document_pb.rb
81
+ - lib/google/firestore/v1/explain_stats_pb.rb
81
82
  - lib/google/firestore/v1/firestore_pb.rb
82
83
  - lib/google/firestore/v1/firestore_services_pb.rb
84
+ - lib/google/firestore/v1/pipeline_pb.rb
83
85
  - lib/google/firestore/v1/query_pb.rb
84
86
  - lib/google/firestore/v1/query_profile_pb.rb
85
87
  - lib/google/firestore/v1/write_pb.rb
@@ -93,7 +95,9 @@ files:
93
95
  - proto_docs/google/firestore/v1/bloom_filter.rb
94
96
  - proto_docs/google/firestore/v1/common.rb
95
97
  - proto_docs/google/firestore/v1/document.rb
98
+ - proto_docs/google/firestore/v1/explain_stats.rb
96
99
  - proto_docs/google/firestore/v1/firestore.rb
100
+ - proto_docs/google/firestore/v1/pipeline.rb
97
101
  - proto_docs/google/firestore/v1/query.rb
98
102
  - proto_docs/google/firestore/v1/query_profile.rb
99
103
  - proto_docs/google/firestore/v1/write.rb