google-cloud-firestore-v1 1.0.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -30,7 +30,8 @@ module Google
30
30
  # including transcoding, making the REST call, and deserialing the response.
31
31
  #
32
32
  class ServiceStub
33
- def initialize endpoint:, endpoint_template:, universe_domain:, credentials:
33
+ # @private
34
+ def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:
34
35
  # These require statements are intentionally placed here to initialize
35
36
  # the REST modules only when it's required.
36
37
  require "gapic/rest"
@@ -40,7 +41,9 @@ module Google
40
41
  universe_domain: universe_domain,
41
42
  credentials: credentials,
42
43
  numeric_enums: true,
43
- raise_faraday_errors: false
44
+ service_name: self.class,
45
+ raise_faraday_errors: false,
46
+ logger: logger
44
47
  end
45
48
 
46
49
  ##
@@ -61,6 +64,15 @@ module Google
61
64
  @client_stub.endpoint
62
65
  end
63
66
 
67
+ ##
68
+ # The logger used for request/response debug logging.
69
+ #
70
+ # @return [Logger]
71
+ #
72
+ def logger stub: false
73
+ stub ? @client_stub.stub_logger : @client_stub.logger
74
+ end
75
+
64
76
  ##
65
77
  # Baseline implementation for the get_document REST call
66
78
  #
@@ -87,16 +99,18 @@ module Google
87
99
 
88
100
  response = @client_stub.make_http_request(
89
101
  verb,
90
- uri: uri,
91
- body: body || "",
92
- params: query_string_params,
102
+ uri: uri,
103
+ body: body || "",
104
+ params: query_string_params,
105
+ method_name: "get_document",
93
106
  options: options
94
107
  )
95
108
  operation = ::Gapic::Rest::TransportOperation.new response
96
109
  result = ::Google::Cloud::Firestore::V1::Document.decode_json response.body, ignore_unknown_fields: true
97
-
98
- yield result, operation if block_given?
99
- result
110
+ catch :response do
111
+ yield result, operation if block_given?
112
+ result
113
+ end
100
114
  end
101
115
 
102
116
  ##
@@ -125,16 +139,18 @@ module Google
125
139
 
126
140
  response = @client_stub.make_http_request(
127
141
  verb,
128
- uri: uri,
129
- body: body || "",
130
- params: query_string_params,
142
+ uri: uri,
143
+ body: body || "",
144
+ params: query_string_params,
145
+ method_name: "list_documents",
131
146
  options: options
132
147
  )
133
148
  operation = ::Gapic::Rest::TransportOperation.new response
134
149
  result = ::Google::Cloud::Firestore::V1::ListDocumentsResponse.decode_json response.body, ignore_unknown_fields: true
135
-
136
- yield result, operation if block_given?
137
- result
150
+ catch :response do
151
+ yield result, operation if block_given?
152
+ result
153
+ end
138
154
  end
139
155
 
140
156
  ##
@@ -163,16 +179,18 @@ module Google
163
179
 
164
180
  response = @client_stub.make_http_request(
165
181
  verb,
166
- uri: uri,
167
- body: body || "",
168
- params: query_string_params,
182
+ uri: uri,
183
+ body: body || "",
184
+ params: query_string_params,
185
+ method_name: "update_document",
169
186
  options: options
170
187
  )
171
188
  operation = ::Gapic::Rest::TransportOperation.new response
172
189
  result = ::Google::Cloud::Firestore::V1::Document.decode_json response.body, ignore_unknown_fields: true
173
-
174
- yield result, operation if block_given?
175
- result
190
+ catch :response do
191
+ yield result, operation if block_given?
192
+ result
193
+ end
176
194
  end
177
195
 
178
196
  ##
@@ -201,16 +219,18 @@ module Google
201
219
 
202
220
  response = @client_stub.make_http_request(
203
221
  verb,
204
- uri: uri,
205
- body: body || "",
206
- params: query_string_params,
222
+ uri: uri,
223
+ body: body || "",
224
+ params: query_string_params,
225
+ method_name: "delete_document",
207
226
  options: options
208
227
  )
209
228
  operation = ::Gapic::Rest::TransportOperation.new response
210
229
  result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true
211
-
212
- yield result, operation if block_given?
213
- result
230
+ catch :response do
231
+ yield result, operation if block_given?
232
+ result
233
+ end
214
234
  end
215
235
 
216
236
  ##
@@ -239,6 +259,7 @@ module Google
239
259
  uri: uri,
240
260
  body: body || "",
241
261
  params: query_string_params,
262
+ method_name: "batch_get_documents",
242
263
  options: options,
243
264
  is_server_streaming: true,
244
265
  &block
@@ -272,16 +293,18 @@ module Google
272
293
 
273
294
  response = @client_stub.make_http_request(
274
295
  verb,
275
- uri: uri,
276
- body: body || "",
277
- params: query_string_params,
296
+ uri: uri,
297
+ body: body || "",
298
+ params: query_string_params,
299
+ method_name: "begin_transaction",
278
300
  options: options
279
301
  )
280
302
  operation = ::Gapic::Rest::TransportOperation.new response
281
303
  result = ::Google::Cloud::Firestore::V1::BeginTransactionResponse.decode_json response.body, ignore_unknown_fields: true
282
-
283
- yield result, operation if block_given?
284
- result
304
+ catch :response do
305
+ yield result, operation if block_given?
306
+ result
307
+ end
285
308
  end
286
309
 
287
310
  ##
@@ -310,16 +333,18 @@ module Google
310
333
 
311
334
  response = @client_stub.make_http_request(
312
335
  verb,
313
- uri: uri,
314
- body: body || "",
315
- params: query_string_params,
336
+ uri: uri,
337
+ body: body || "",
338
+ params: query_string_params,
339
+ method_name: "commit",
316
340
  options: options
317
341
  )
318
342
  operation = ::Gapic::Rest::TransportOperation.new response
319
343
  result = ::Google::Cloud::Firestore::V1::CommitResponse.decode_json response.body, ignore_unknown_fields: true
320
-
321
- yield result, operation if block_given?
322
- result
344
+ catch :response do
345
+ yield result, operation if block_given?
346
+ result
347
+ end
323
348
  end
324
349
 
325
350
  ##
@@ -348,16 +373,18 @@ module Google
348
373
 
349
374
  response = @client_stub.make_http_request(
350
375
  verb,
351
- uri: uri,
352
- body: body || "",
353
- params: query_string_params,
376
+ uri: uri,
377
+ body: body || "",
378
+ params: query_string_params,
379
+ method_name: "rollback",
354
380
  options: options
355
381
  )
356
382
  operation = ::Gapic::Rest::TransportOperation.new response
357
383
  result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true
358
-
359
- yield result, operation if block_given?
360
- result
384
+ catch :response do
385
+ yield result, operation if block_given?
386
+ result
387
+ end
361
388
  end
362
389
 
363
390
  ##
@@ -386,6 +413,7 @@ module Google
386
413
  uri: uri,
387
414
  body: body || "",
388
415
  params: query_string_params,
416
+ method_name: "run_query",
389
417
  options: options,
390
418
  is_server_streaming: true,
391
419
  &block
@@ -419,6 +447,7 @@ module Google
419
447
  uri: uri,
420
448
  body: body || "",
421
449
  params: query_string_params,
450
+ method_name: "run_aggregation_query",
422
451
  options: options,
423
452
  is_server_streaming: true,
424
453
  &block
@@ -452,16 +481,18 @@ module Google
452
481
 
453
482
  response = @client_stub.make_http_request(
454
483
  verb,
455
- uri: uri,
456
- body: body || "",
457
- params: query_string_params,
484
+ uri: uri,
485
+ body: body || "",
486
+ params: query_string_params,
487
+ method_name: "partition_query",
458
488
  options: options
459
489
  )
460
490
  operation = ::Gapic::Rest::TransportOperation.new response
461
491
  result = ::Google::Cloud::Firestore::V1::PartitionQueryResponse.decode_json response.body, ignore_unknown_fields: true
462
-
463
- yield result, operation if block_given?
464
- result
492
+ catch :response do
493
+ yield result, operation if block_given?
494
+ result
495
+ end
465
496
  end
466
497
 
467
498
  ##
@@ -490,16 +521,18 @@ module Google
490
521
 
491
522
  response = @client_stub.make_http_request(
492
523
  verb,
493
- uri: uri,
494
- body: body || "",
495
- params: query_string_params,
524
+ uri: uri,
525
+ body: body || "",
526
+ params: query_string_params,
527
+ method_name: "list_collection_ids",
496
528
  options: options
497
529
  )
498
530
  operation = ::Gapic::Rest::TransportOperation.new response
499
531
  result = ::Google::Cloud::Firestore::V1::ListCollectionIdsResponse.decode_json response.body, ignore_unknown_fields: true
500
-
501
- yield result, operation if block_given?
502
- result
532
+ catch :response do
533
+ yield result, operation if block_given?
534
+ result
535
+ end
503
536
  end
504
537
 
505
538
  ##
@@ -528,16 +561,18 @@ module Google
528
561
 
529
562
  response = @client_stub.make_http_request(
530
563
  verb,
531
- uri: uri,
532
- body: body || "",
533
- params: query_string_params,
564
+ uri: uri,
565
+ body: body || "",
566
+ params: query_string_params,
567
+ method_name: "batch_write",
534
568
  options: options
535
569
  )
536
570
  operation = ::Gapic::Rest::TransportOperation.new response
537
571
  result = ::Google::Cloud::Firestore::V1::BatchWriteResponse.decode_json response.body, ignore_unknown_fields: true
538
-
539
- yield result, operation if block_given?
540
- result
572
+ catch :response do
573
+ yield result, operation if block_given?
574
+ result
575
+ end
541
576
  end
542
577
 
543
578
  ##
@@ -566,16 +601,18 @@ module Google
566
601
 
567
602
  response = @client_stub.make_http_request(
568
603
  verb,
569
- uri: uri,
570
- body: body || "",
571
- params: query_string_params,
604
+ uri: uri,
605
+ body: body || "",
606
+ params: query_string_params,
607
+ method_name: "create_document",
572
608
  options: options
573
609
  )
574
610
  operation = ::Gapic::Rest::TransportOperation.new response
575
611
  result = ::Google::Cloud::Firestore::V1::Document.decode_json response.body, ignore_unknown_fields: true
576
-
577
- yield result, operation if block_given?
578
- result
612
+ catch :response do
613
+ yield result, operation if block_given?
614
+ result
615
+ end
579
616
  end
580
617
 
581
618
  ##
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module Firestore
23
23
  module V1
24
- VERSION = "1.0.0"
24
+ VERSION = "1.3.0"
25
25
  end
26
26
  end
27
27
  end
@@ -4,12 +4,13 @@
4
4
 
5
5
  require 'google/protobuf'
6
6
 
7
+ require 'google/api/field_behavior_pb'
7
8
  require 'google/protobuf/struct_pb'
8
9
  require 'google/protobuf/timestamp_pb'
9
10
  require 'google/type/latlng_pb'
10
11
 
11
12
 
12
- descriptor_data = "\n\"google/firestore/v1/document.proto\x12\x13google.firestore.v1\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\"\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
14
 
14
15
  pool = Google::Protobuf::DescriptorPool.generated_pool
15
16
 
@@ -9,7 +9,7 @@ require 'google/firestore/v1/document_pb'
9
9
  require 'google/protobuf/wrappers_pb'
10
10
 
11
11
 
12
- descriptor_data = "\n\x1fgoogle/firestore/v1/query.proto\x12\x13google.firestore.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\"google/firestore/v1/document.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x95\x13\n\x0fStructuredQuery\x12?\n\x06select\x18\x01 \x01(\x0b\x32/.google.firestore.v1.StructuredQuery.Projection\x12\x45\n\x04\x66rom\x18\x02 \x03(\x0b\x32\x37.google.firestore.v1.StructuredQuery.CollectionSelector\x12:\n\x05where\x18\x03 \x01(\x0b\x32+.google.firestore.v1.StructuredQuery.Filter\x12<\n\x08order_by\x18\x04 \x03(\x0b\x32*.google.firestore.v1.StructuredQuery.Order\x12-\n\x08start_at\x18\x07 \x01(\x0b\x32\x1b.google.firestore.v1.Cursor\x12+\n\x06\x65nd_at\x18\x08 \x01(\x0b\x32\x1b.google.firestore.v1.Cursor\x12\x0e\n\x06offset\x18\x06 \x01(\x05\x12*\n\x05limit\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12K\n\x0c\x66ind_nearest\x18\t \x01(\x0b\x32\x30.google.firestore.v1.StructuredQuery.FindNearestB\x03\xe0\x41\x01\x1a\x44\n\x12\x43ollectionSelector\x12\x15\n\rcollection_id\x18\x02 \x01(\t\x12\x17\n\x0f\x61ll_descendants\x18\x03 \x01(\x08\x1a\xfd\x01\n\x06\x46ilter\x12P\n\x10\x63omposite_filter\x18\x01 \x01(\x0b\x32\x34.google.firestore.v1.StructuredQuery.CompositeFilterH\x00\x12H\n\x0c\x66ield_filter\x18\x02 \x01(\x0b\x32\x30.google.firestore.v1.StructuredQuery.FieldFilterH\x00\x12H\n\x0cunary_filter\x18\x03 \x01(\x0b\x32\x30.google.firestore.v1.StructuredQuery.UnaryFilterH\x00\x42\r\n\x0b\x66ilter_type\x1a\xd1\x01\n\x0f\x43ompositeFilter\x12I\n\x02op\x18\x01 \x01(\x0e\x32=.google.firestore.v1.StructuredQuery.CompositeFilter.Operator\x12<\n\x07\x66ilters\x18\x02 \x03(\x0b\x32+.google.firestore.v1.StructuredQuery.Filter\"5\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41ND\x10\x01\x12\x06\n\x02OR\x10\x02\x1a\x98\x03\n\x0b\x46ieldFilter\x12\x42\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReference\x12\x45\n\x02op\x18\x02 \x01(\x0e\x32\x39.google.firestore.v1.StructuredQuery.FieldFilter.Operator\x12)\n\x05value\x18\x03 \x01(\x0b\x32\x1a.google.firestore.v1.Value\"\xd2\x01\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\r\n\tLESS_THAN\x10\x01\x12\x16\n\x12LESS_THAN_OR_EQUAL\x10\x02\x12\x10\n\x0cGREATER_THAN\x10\x03\x12\x19\n\x15GREATER_THAN_OR_EQUAL\x10\x04\x12\t\n\x05\x45QUAL\x10\x05\x12\r\n\tNOT_EQUAL\x10\x06\x12\x12\n\x0e\x41RRAY_CONTAINS\x10\x07\x12\x06\n\x02IN\x10\x08\x12\x16\n\x12\x41RRAY_CONTAINS_ANY\x10\t\x12\n\n\x06NOT_IN\x10\n\x1a\x8a\x02\n\x0bUnaryFilter\x12\x45\n\x02op\x18\x01 \x01(\x0e\x32\x39.google.firestore.v1.StructuredQuery.UnaryFilter.Operator\x12\x44\n\x05\x66ield\x18\x02 \x01(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReferenceH\x00\"^\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\n\n\x06IS_NAN\x10\x02\x12\x0b\n\x07IS_NULL\x10\x03\x12\x0e\n\nIS_NOT_NAN\x10\x04\x12\x0f\n\x0bIS_NOT_NULL\x10\x05\x42\x0e\n\x0coperand_type\x1a\x8e\x01\n\x05Order\x12\x42\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReference\x12\x41\n\tdirection\x18\x02 \x01(\x0e\x32..google.firestore.v1.StructuredQuery.Direction\x1a$\n\x0e\x46ieldReference\x12\x12\n\nfield_path\x18\x02 \x01(\t\x1aQ\n\nProjection\x12\x43\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReference\x1a\x87\x03\n\x0b\x46indNearest\x12N\n\x0cvector_field\x18\x01 \x01(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReferenceB\x03\xe0\x41\x02\x12\x35\n\x0cquery_vector\x18\x02 \x01(\x0b\x32\x1a.google.firestore.v1.ValueB\x03\xe0\x41\x02\x12_\n\x10\x64istance_measure\x18\x03 \x01(\x0e\x32@.google.firestore.v1.StructuredQuery.FindNearest.DistanceMeasureB\x03\xe0\x41\x02\x12/\n\x05limit\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x03\xe0\x41\x02\"_\n\x0f\x44istanceMeasure\x12 \n\x1c\x44ISTANCE_MEASURE_UNSPECIFIED\x10\x00\x12\r\n\tEUCLIDEAN\x10\x01\x12\n\n\x06\x43OSINE\x10\x02\x12\x0f\n\x0b\x44OT_PRODUCT\x10\x03\"E\n\tDirection\x12\x19\n\x15\x44IRECTION_UNSPECIFIED\x10\x00\x12\r\n\tASCENDING\x10\x01\x12\x0e\n\nDESCENDING\x10\x02\"\xb8\x05\n\x1aStructuredAggregationQuery\x12@\n\x10structured_query\x18\x01 \x01(\x0b\x32$.google.firestore.v1.StructuredQueryH\x00\x12V\n\x0c\x61ggregations\x18\x03 \x03(\x0b\x32;.google.firestore.v1.StructuredAggregationQuery.AggregationB\x03\xe0\x41\x01\x1a\xf1\x03\n\x0b\x41ggregation\x12R\n\x05\x63ount\x18\x01 \x01(\x0b\x32\x41.google.firestore.v1.StructuredAggregationQuery.Aggregation.CountH\x00\x12N\n\x03sum\x18\x02 \x01(\x0b\x32?.google.firestore.v1.StructuredAggregationQuery.Aggregation.SumH\x00\x12N\n\x03\x61vg\x18\x03 \x01(\x0b\x32?.google.firestore.v1.StructuredAggregationQuery.Aggregation.AvgH\x00\x12\x12\n\x05\x61lias\x18\x07 \x01(\tB\x03\xe0\x41\x01\x1a\x38\n\x05\x43ount\x12/\n\x05up_to\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x1aI\n\x03Sum\x12\x42\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReference\x1aI\n\x03\x41vg\x12\x42\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReferenceB\n\n\x08operatorB\x0c\n\nquery_type\"D\n\x06\x43ursor\x12*\n\x06values\x18\x01 \x03(\x0b\x32\x1a.google.firestore.v1.Value\x12\x0e\n\x06\x62\x65\x66ore\x18\x02 \x01(\x08\x42\xc2\x01\n\x17\x63om.google.firestore.v1B\nQueryProtoP\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
+ descriptor_data = "\n\x1fgoogle/firestore/v1/query.proto\x12\x13google.firestore.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\"google/firestore/v1/document.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xf8\x13\n\x0fStructuredQuery\x12?\n\x06select\x18\x01 \x01(\x0b\x32/.google.firestore.v1.StructuredQuery.Projection\x12\x45\n\x04\x66rom\x18\x02 \x03(\x0b\x32\x37.google.firestore.v1.StructuredQuery.CollectionSelector\x12:\n\x05where\x18\x03 \x01(\x0b\x32+.google.firestore.v1.StructuredQuery.Filter\x12<\n\x08order_by\x18\x04 \x03(\x0b\x32*.google.firestore.v1.StructuredQuery.Order\x12-\n\x08start_at\x18\x07 \x01(\x0b\x32\x1b.google.firestore.v1.Cursor\x12+\n\x06\x65nd_at\x18\x08 \x01(\x0b\x32\x1b.google.firestore.v1.Cursor\x12\x0e\n\x06offset\x18\x06 \x01(\x05\x12*\n\x05limit\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12K\n\x0c\x66ind_nearest\x18\t \x01(\x0b\x32\x30.google.firestore.v1.StructuredQuery.FindNearestB\x03\xe0\x41\x01\x1a\x44\n\x12\x43ollectionSelector\x12\x15\n\rcollection_id\x18\x02 \x01(\t\x12\x17\n\x0f\x61ll_descendants\x18\x03 \x01(\x08\x1a\xfd\x01\n\x06\x46ilter\x12P\n\x10\x63omposite_filter\x18\x01 \x01(\x0b\x32\x34.google.firestore.v1.StructuredQuery.CompositeFilterH\x00\x12H\n\x0c\x66ield_filter\x18\x02 \x01(\x0b\x32\x30.google.firestore.v1.StructuredQuery.FieldFilterH\x00\x12H\n\x0cunary_filter\x18\x03 \x01(\x0b\x32\x30.google.firestore.v1.StructuredQuery.UnaryFilterH\x00\x42\r\n\x0b\x66ilter_type\x1a\xd1\x01\n\x0f\x43ompositeFilter\x12I\n\x02op\x18\x01 \x01(\x0e\x32=.google.firestore.v1.StructuredQuery.CompositeFilter.Operator\x12<\n\x07\x66ilters\x18\x02 \x03(\x0b\x32+.google.firestore.v1.StructuredQuery.Filter\"5\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41ND\x10\x01\x12\x06\n\x02OR\x10\x02\x1a\x98\x03\n\x0b\x46ieldFilter\x12\x42\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReference\x12\x45\n\x02op\x18\x02 \x01(\x0e\x32\x39.google.firestore.v1.StructuredQuery.FieldFilter.Operator\x12)\n\x05value\x18\x03 \x01(\x0b\x32\x1a.google.firestore.v1.Value\"\xd2\x01\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\r\n\tLESS_THAN\x10\x01\x12\x16\n\x12LESS_THAN_OR_EQUAL\x10\x02\x12\x10\n\x0cGREATER_THAN\x10\x03\x12\x19\n\x15GREATER_THAN_OR_EQUAL\x10\x04\x12\t\n\x05\x45QUAL\x10\x05\x12\r\n\tNOT_EQUAL\x10\x06\x12\x12\n\x0e\x41RRAY_CONTAINS\x10\x07\x12\x06\n\x02IN\x10\x08\x12\x16\n\x12\x41RRAY_CONTAINS_ANY\x10\t\x12\n\n\x06NOT_IN\x10\n\x1a\x8a\x02\n\x0bUnaryFilter\x12\x45\n\x02op\x18\x01 \x01(\x0e\x32\x39.google.firestore.v1.StructuredQuery.UnaryFilter.Operator\x12\x44\n\x05\x66ield\x18\x02 \x01(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReferenceH\x00\"^\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\n\n\x06IS_NAN\x10\x02\x12\x0b\n\x07IS_NULL\x10\x03\x12\x0e\n\nIS_NOT_NAN\x10\x04\x12\x0f\n\x0bIS_NOT_NULL\x10\x05\x42\x0e\n\x0coperand_type\x1a\x8e\x01\n\x05Order\x12\x42\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReference\x12\x41\n\tdirection\x18\x02 \x01(\x0e\x32..google.firestore.v1.StructuredQuery.Direction\x1a$\n\x0e\x46ieldReference\x12\x12\n\nfield_path\x18\x02 \x01(\t\x1aQ\n\nProjection\x12\x43\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReference\x1a\xea\x03\n\x0b\x46indNearest\x12N\n\x0cvector_field\x18\x01 \x01(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReferenceB\x03\xe0\x41\x02\x12\x35\n\x0cquery_vector\x18\x02 \x01(\x0b\x32\x1a.google.firestore.v1.ValueB\x03\xe0\x41\x02\x12_\n\x10\x64istance_measure\x18\x03 \x01(\x0e\x32@.google.firestore.v1.StructuredQuery.FindNearest.DistanceMeasureB\x03\xe0\x41\x02\x12/\n\x05limit\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x03\xe0\x41\x02\x12\"\n\x15\x64istance_result_field\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12=\n\x12\x64istance_threshold\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.DoubleValueB\x03\xe0\x41\x01\"_\n\x0f\x44istanceMeasure\x12 \n\x1c\x44ISTANCE_MEASURE_UNSPECIFIED\x10\x00\x12\r\n\tEUCLIDEAN\x10\x01\x12\n\n\x06\x43OSINE\x10\x02\x12\x0f\n\x0b\x44OT_PRODUCT\x10\x03\"E\n\tDirection\x12\x19\n\x15\x44IRECTION_UNSPECIFIED\x10\x00\x12\r\n\tASCENDING\x10\x01\x12\x0e\n\nDESCENDING\x10\x02\"\xb8\x05\n\x1aStructuredAggregationQuery\x12@\n\x10structured_query\x18\x01 \x01(\x0b\x32$.google.firestore.v1.StructuredQueryH\x00\x12V\n\x0c\x61ggregations\x18\x03 \x03(\x0b\x32;.google.firestore.v1.StructuredAggregationQuery.AggregationB\x03\xe0\x41\x01\x1a\xf1\x03\n\x0b\x41ggregation\x12R\n\x05\x63ount\x18\x01 \x01(\x0b\x32\x41.google.firestore.v1.StructuredAggregationQuery.Aggregation.CountH\x00\x12N\n\x03sum\x18\x02 \x01(\x0b\x32?.google.firestore.v1.StructuredAggregationQuery.Aggregation.SumH\x00\x12N\n\x03\x61vg\x18\x03 \x01(\x0b\x32?.google.firestore.v1.StructuredAggregationQuery.Aggregation.AvgH\x00\x12\x12\n\x05\x61lias\x18\x07 \x01(\tB\x03\xe0\x41\x01\x1a\x38\n\x05\x43ount\x12/\n\x05up_to\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x1aI\n\x03Sum\x12\x42\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReference\x1aI\n\x03\x41vg\x12\x42\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x33.google.firestore.v1.StructuredQuery.FieldReferenceB\n\n\x08operatorB\x0c\n\nquery_type\"D\n\x06\x43ursor\x12*\n\x06values\x18\x01 \x03(\x0b\x32\x1a.google.firestore.v1.Value\x12\x0e\n\x06\x62\x65\x66ore\x18\x02 \x01(\x08\x42\xc2\x01\n\x17\x63om.google.firestore.v1B\nQueryProtoP\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
13
 
14
14
  pool = Google::Protobuf::DescriptorPool.generated_pool
15
15
 
@@ -28,6 +28,9 @@ module Google
28
28
  # @!attribute [rw] destinations
29
29
  # @return [::Array<::Google::Api::ClientLibraryDestination>]
30
30
  # The destination where API teams want this client library to be published.
31
+ # @!attribute [rw] selective_gapic_generation
32
+ # @return [::Google::Api::SelectiveGapicGeneration]
33
+ # Configuration for which RPCs should be generated in the GAPIC client.
31
34
  class CommonLanguageSettings
32
35
  include ::Google::Protobuf::MessageExts
33
36
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -196,9 +199,32 @@ module Google
196
199
  # @!attribute [rw] common
197
200
  # @return [::Google::Api::CommonLanguageSettings]
198
201
  # Some settings.
202
+ # @!attribute [rw] experimental_features
203
+ # @return [::Google::Api::PythonSettings::ExperimentalFeatures]
204
+ # Experimental features to be included during client library generation.
199
205
  class PythonSettings
200
206
  include ::Google::Protobuf::MessageExts
201
207
  extend ::Google::Protobuf::MessageExts::ClassMethods
208
+
209
+ # Experimental features to be included during client library generation.
210
+ # These fields will be deprecated once the feature graduates and is enabled
211
+ # by default.
212
+ # @!attribute [rw] rest_async_io_enabled
213
+ # @return [::Boolean]
214
+ # Enables generation of asynchronous REST clients if `rest` transport is
215
+ # enabled. By default, asynchronous REST clients will not be generated.
216
+ # This feature will be enabled by default 1 month after launching the
217
+ # feature in preview packages.
218
+ # @!attribute [rw] protobuf_pythonic_types_enabled
219
+ # @return [::Boolean]
220
+ # Enables generation of protobuf code using new types that are more
221
+ # Pythonic which are included in `protobuf>=5.29.x`. This feature will be
222
+ # enabled by default 1 month after launching the feature in preview
223
+ # packages.
224
+ class ExperimentalFeatures
225
+ include ::Google::Protobuf::MessageExts
226
+ extend ::Google::Protobuf::MessageExts::ClassMethods
227
+ end
202
228
  end
203
229
 
204
230
  # Settings for Node client libraries.
@@ -280,9 +306,28 @@ module Google
280
306
  # @!attribute [rw] common
281
307
  # @return [::Google::Api::CommonLanguageSettings]
282
308
  # Some settings.
309
+ # @!attribute [rw] renamed_services
310
+ # @return [::Google::Protobuf::Map{::String => ::String}]
311
+ # Map of service names to renamed services. Keys are the package relative
312
+ # service names and values are the name to be used for the service client
313
+ # and call options.
314
+ #
315
+ # publishing:
316
+ # go_settings:
317
+ # renamed_services:
318
+ # Publisher: TopicAdmin
283
319
  class GoSettings
284
320
  include ::Google::Protobuf::MessageExts
285
321
  extend ::Google::Protobuf::MessageExts::ClassMethods
322
+
323
+ # @!attribute [rw] key
324
+ # @return [::String]
325
+ # @!attribute [rw] value
326
+ # @return [::String]
327
+ class RenamedServicesEntry
328
+ include ::Google::Protobuf::MessageExts
329
+ extend ::Google::Protobuf::MessageExts::ClassMethods
330
+ end
286
331
  end
287
332
 
288
333
  # Describes the generator configuration for a method.
@@ -290,6 +335,13 @@ module Google
290
335
  # @return [::String]
291
336
  # The fully qualified name of the method, for which the options below apply.
292
337
  # This is used to find the method to apply the options.
338
+ #
339
+ # Example:
340
+ #
341
+ # publishing:
342
+ # method_settings:
343
+ # - selector: google.storage.control.v2.StorageControl.CreateFolder
344
+ # # method settings for CreateFolder...
293
345
  # @!attribute [rw] long_running
294
346
  # @return [::Google::Api::MethodSettings::LongRunning]
295
347
  # Describes settings to use for long-running operations when generating
@@ -298,17 +350,14 @@ module Google
298
350
  #
299
351
  # Example of a YAML configuration::
300
352
  #
301
- # publishing:
302
- # method_settings:
353
+ # publishing:
354
+ # method_settings:
303
355
  # - selector: google.cloud.speech.v2.Speech.BatchRecognize
304
356
  # long_running:
305
- # initial_poll_delay:
306
- # seconds: 60 # 1 minute
357
+ # initial_poll_delay: 60s # 1 minute
307
358
  # poll_delay_multiplier: 1.5
308
- # max_poll_delay:
309
- # seconds: 360 # 6 minutes
310
- # total_poll_timeout:
311
- # seconds: 54000 # 90 minutes
359
+ # max_poll_delay: 360s # 6 minutes
360
+ # total_poll_timeout: 54000s # 90 minutes
312
361
  # @!attribute [rw] auto_populated_fields
313
362
  # @return [::Array<::String>]
314
363
  # List of top-level fields of the request message, that should be
@@ -317,8 +366,8 @@ module Google
317
366
  #
318
367
  # Example of a YAML configuration:
319
368
  #
320
- # publishing:
321
- # method_settings:
369
+ # publishing:
370
+ # method_settings:
322
371
  # - selector: google.example.v1.ExampleService.CreateExample
323
372
  # auto_populated_fields:
324
373
  # - request_id
@@ -354,6 +403,17 @@ module Google
354
403
  end
355
404
  end
356
405
 
406
+ # This message is used to configure the generation of a subset of the RPCs in
407
+ # a service for client libraries.
408
+ # @!attribute [rw] methods
409
+ # @return [::Array<::String>]
410
+ # An allowlist of the fully qualified names of RPCs that should be included
411
+ # on public client surfaces.
412
+ class SelectiveGapicGeneration
413
+ include ::Google::Protobuf::MessageExts
414
+ extend ::Google::Protobuf::MessageExts::ClassMethods
415
+ end
416
+
357
417
  # The organization for which the client libraries are being published.
358
418
  # Affects the url where generated docs are published, etc.
359
419
  module ClientLibraryOrganization
@@ -124,8 +124,13 @@ module Google
124
124
  # @return [::String]
125
125
  # The plural name used in the resource name and permission names, such as
126
126
  # 'projects' for the resource name of 'projects/\\{project}' and the permission
127
- # name of 'cloudresourcemanager.googleapis.com/projects.get'. It is the same
128
- # concept of the `plural` field in k8s CRD spec
127
+ # name of 'cloudresourcemanager.googleapis.com/projects.get'. One exception
128
+ # to this is for Nested Collections that have stuttering names, as defined
129
+ # in [AIP-122](https://google.aip.dev/122#nested-collections), where the
130
+ # collection ID in the resource name pattern does not necessarily directly
131
+ # match the `plural` value.
132
+ #
133
+ # It is the same concept of the `plural` field in k8s CRD spec
129
134
  # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
130
135
  #
131
136
  # Note: The plural form is required even for singleton resources. See
@@ -42,10 +42,14 @@ module Google
42
42
  # @return [::Boolean]
43
43
  # When set to `true`, the target document must exist.
44
44
  # When set to `false`, the target document must not exist.
45
+ #
46
+ # Note: The following fields are mutually exclusive: `exists`, `update_time`. If a field in that set is populated, all other fields in the set will automatically be cleared.
45
47
  # @!attribute [rw] update_time
46
48
  # @return [::Google::Protobuf::Timestamp]
47
49
  # When set, the target document must exist and have been last updated at
48
50
  # that time. Timestamp must be microsecond aligned.
51
+ #
52
+ # Note: The following fields are mutually exclusive: `update_time`, `exists`. If a field in that set is populated, all other fields in the set will automatically be cleared.
49
53
  class Precondition
50
54
  include ::Google::Protobuf::MessageExts
51
55
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -55,9 +59,13 @@ module Google
55
59
  # @!attribute [rw] read_only
56
60
  # @return [::Google::Cloud::Firestore::V1::TransactionOptions::ReadOnly]
57
61
  # The transaction can only be used for read operations.
62
+ #
63
+ # Note: The following fields are mutually exclusive: `read_only`, `read_write`. If a field in that set is populated, all other fields in the set will automatically be cleared.
58
64
  # @!attribute [rw] read_write
59
65
  # @return [::Google::Cloud::Firestore::V1::TransactionOptions::ReadWrite]
60
66
  # The transaction can be used for both read and write operations.
67
+ #
68
+ # Note: The following fields are mutually exclusive: `read_write`, `read_only`. If a field in that set is populated, all other fields in the set will automatically be cleared.
61
69
  class TransactionOptions
62
70
  include ::Google::Protobuf::MessageExts
63
71
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -86,21 +86,31 @@ module Google
86
86
  # @!attribute [rw] null_value
87
87
  # @return [::Google::Protobuf::NullValue]
88
88
  # A null value.
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.
89
91
  # @!attribute [rw] boolean_value
90
92
  # @return [::Boolean]
91
93
  # A boolean value.
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.
92
96
  # @!attribute [rw] integer_value
93
97
  # @return [::Integer]
94
98
  # An integer value.
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.
95
101
  # @!attribute [rw] double_value
96
102
  # @return [::Float]
97
103
  # A double value.
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.
98
106
  # @!attribute [rw] timestamp_value
99
107
  # @return [::Google::Protobuf::Timestamp]
100
108
  # A timestamp value.
101
109
  #
102
110
  # Precise only to microseconds. When stored, any additional precision is
103
111
  # rounded down.
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.
104
114
  # @!attribute [rw] string_value
105
115
  # @return [::String]
106
116
  # A string value.
@@ -108,28 +118,40 @@ module Google
108
118
  # The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes.
109
119
  # Only the first 1,500 bytes of the UTF-8 representation are considered by
110
120
  # queries.
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.
111
123
  # @!attribute [rw] bytes_value
112
124
  # @return [::String]
113
125
  # A bytes value.
114
126
  #
115
127
  # Must not exceed 1 MiB - 89 bytes.
116
128
  # Only the first 1,500 bytes are considered by queries.
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.
117
131
  # @!attribute [rw] reference_value
118
132
  # @return [::String]
119
133
  # A reference to a document. For example:
120
134
  # `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
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.
121
137
  # @!attribute [rw] geo_point_value
122
138
  # @return [::Google::Type::LatLng]
123
139
  # A geo point value representing a point on the surface of Earth.
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.
124
142
  # @!attribute [rw] array_value
125
143
  # @return [::Google::Cloud::Firestore::V1::ArrayValue]
126
144
  # An array value.
127
145
  #
128
- # Cannot directly contain another array value, though can contain an
146
+ # Cannot directly contain another array value, though can contain a
129
147
  # map which contains another array.
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.
130
150
  # @!attribute [rw] map_value
131
151
  # @return [::Google::Cloud::Firestore::V1::MapValue]
132
152
  # A map value.
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.
133
155
  class Value
134
156
  include ::Google::Protobuf::MessageExts
135
157
  extend ::Google::Protobuf::MessageExts::ClassMethods