google-cloud-firestore-v1 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/AUTHENTICATION.md +72 -101
- data/README.md +2 -2
- data/lib/google/cloud/firestore/v1/firestore/client.rb +81 -29
- data/lib/google/cloud/firestore/v1/firestore/rest/client.rb +307 -20
- data/lib/google/cloud/firestore/v1/firestore/rest/service_stub.rb +37 -16
- data/lib/google/cloud/firestore/v1/version.rb +1 -1
- data/lib/google/firestore/v1/aggregation_result_pb.rb +25 -4
- data/lib/google/firestore/v1/bloom_filter_pb.rb +43 -0
- data/lib/google/firestore/v1/common_pb.rb +25 -24
- data/lib/google/firestore/v1/document_pb.rb +26 -28
- data/lib/google/firestore/v1/firestore_pb.rb +33 -219
- data/lib/google/firestore/v1/firestore_services_pb.rb +3 -3
- data/lib/google/firestore/v1/query_pb.rb +28 -96
- data/lib/google/firestore/v1/write_pb.rb +29 -53
- data/proto_docs/google/api/client.rb +81 -4
- data/proto_docs/google/api/field_behavior.rb +14 -0
- data/proto_docs/google/firestore/v1/bloom_filter.rb +79 -0
- data/proto_docs/google/firestore/v1/common.rb +7 -1
- data/proto_docs/google/firestore/v1/document.rb +12 -12
- data/proto_docs/google/firestore/v1/firestore.rb +58 -11
- data/proto_docs/google/firestore/v1/query.rb +82 -12
- data/proto_docs/google/firestore/v1/write.rb +18 -0
- data/proto_docs/google/protobuf/any.rb +7 -4
- data/proto_docs/google/protobuf/struct.rb +1 -1
- data/proto_docs/google/protobuf/timestamp.rb +1 -3
- metadata +11 -8
@@ -21,6 +21,7 @@ module Google
|
|
21
21
|
module Api
|
22
22
|
# Required information for every language.
|
23
23
|
# @!attribute [rw] reference_docs_uri
|
24
|
+
# @deprecated This field is deprecated and may be removed in the next major version update.
|
24
25
|
# @return [::String]
|
25
26
|
# Link to automatically generated reference documentation. Example:
|
26
27
|
# https://cloud.google.com/nodejs/docs/reference/asset/latest
|
@@ -35,7 +36,9 @@ module Google
|
|
35
36
|
# Details about how and where to publish client libraries.
|
36
37
|
# @!attribute [rw] version
|
37
38
|
# @return [::String]
|
38
|
-
# Version of the API to apply these settings to.
|
39
|
+
# Version of the API to apply these settings to. This is the full protobuf
|
40
|
+
# package for the API, ending in the version element.
|
41
|
+
# Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
|
39
42
|
# @!attribute [rw] launch_stage
|
40
43
|
# @return [::Google::Api::LaunchStage]
|
41
44
|
# Launch stage of this version of the API.
|
@@ -81,7 +84,7 @@ module Google
|
|
81
84
|
# long-running operation pattern.
|
82
85
|
# @!attribute [rw] new_issue_uri
|
83
86
|
# @return [::String]
|
84
|
-
# Link to a
|
87
|
+
# Link to a *public* URI where users can report issues. Example:
|
85
88
|
# https://issuetracker.google.com/issues/new?component=190865&template=1161103
|
86
89
|
# @!attribute [rw] documentation_uri
|
87
90
|
# @return [::String]
|
@@ -111,6 +114,10 @@ module Google
|
|
111
114
|
# Client library settings. If the same version string appears multiple
|
112
115
|
# times in this list, then the last one wins. Settings from earlier
|
113
116
|
# settings with the same version string are discarded.
|
117
|
+
# @!attribute [rw] proto_reference_documentation_uri
|
118
|
+
# @return [::String]
|
119
|
+
# Optional link to proto reference documentation. Example:
|
120
|
+
# https://cloud.google.com/pubsub/lite/docs/reference/rpc
|
114
121
|
class Publishing
|
115
122
|
include ::Google::Protobuf::MessageExts
|
116
123
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -203,9 +210,57 @@ module Google
|
|
203
210
|
# @!attribute [rw] common
|
204
211
|
# @return [::Google::Api::CommonLanguageSettings]
|
205
212
|
# Some settings.
|
213
|
+
# @!attribute [rw] renamed_services
|
214
|
+
# @return [::Google::Protobuf::Map{::String => ::String}]
|
215
|
+
# Map from original service names to renamed versions.
|
216
|
+
# This is used when the default generated types
|
217
|
+
# would cause a naming conflict. (Neither name is
|
218
|
+
# fully-qualified.)
|
219
|
+
# Example: Subscriber to SubscriberServiceApi.
|
220
|
+
# @!attribute [rw] renamed_resources
|
221
|
+
# @return [::Google::Protobuf::Map{::String => ::String}]
|
222
|
+
# Map from full resource types to the effective short name
|
223
|
+
# for the resource. This is used when otherwise resource
|
224
|
+
# named from different services would cause naming collisions.
|
225
|
+
# Example entry:
|
226
|
+
# "datalabeling.googleapis.com/Dataset": "DataLabelingDataset"
|
227
|
+
# @!attribute [rw] ignored_resources
|
228
|
+
# @return [::Array<::String>]
|
229
|
+
# List of full resource types to ignore during generation.
|
230
|
+
# This is typically used for API-specific Location resources,
|
231
|
+
# which should be handled by the generator as if they were actually
|
232
|
+
# the common Location resources.
|
233
|
+
# Example entry: "documentai.googleapis.com/Location"
|
234
|
+
# @!attribute [rw] forced_namespace_aliases
|
235
|
+
# @return [::Array<::String>]
|
236
|
+
# Namespaces which must be aliased in snippets due to
|
237
|
+
# a known (but non-generator-predictable) naming collision
|
238
|
+
# @!attribute [rw] handwritten_signatures
|
239
|
+
# @return [::Array<::String>]
|
240
|
+
# Method signatures (in the form "service.method(signature)")
|
241
|
+
# which are provided separately, so shouldn't be generated.
|
242
|
+
# Snippets *calling* these methods are still generated, however.
|
206
243
|
class DotnetSettings
|
207
244
|
include ::Google::Protobuf::MessageExts
|
208
245
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
246
|
+
|
247
|
+
# @!attribute [rw] key
|
248
|
+
# @return [::String]
|
249
|
+
# @!attribute [rw] value
|
250
|
+
# @return [::String]
|
251
|
+
class RenamedServicesEntry
|
252
|
+
include ::Google::Protobuf::MessageExts
|
253
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
254
|
+
end
|
255
|
+
|
256
|
+
# @!attribute [rw] key
|
257
|
+
# @return [::String]
|
258
|
+
# @!attribute [rw] value
|
259
|
+
# @return [::String]
|
260
|
+
class RenamedResourcesEntry
|
261
|
+
include ::Google::Protobuf::MessageExts
|
262
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
263
|
+
end
|
209
264
|
end
|
210
265
|
|
211
266
|
# Settings for Ruby client libraries.
|
@@ -240,8 +295,8 @@ module Google
|
|
240
295
|
# Example of a YAML configuration::
|
241
296
|
#
|
242
297
|
# publishing:
|
243
|
-
#
|
244
|
-
# - selector:
|
298
|
+
# method_settings:
|
299
|
+
# - selector: google.cloud.speech.v2.Speech.BatchRecognize
|
245
300
|
# long_running:
|
246
301
|
# initial_poll_delay:
|
247
302
|
# seconds: 60 # 1 minute
|
@@ -250,6 +305,19 @@ module Google
|
|
250
305
|
# seconds: 360 # 6 minutes
|
251
306
|
# total_poll_timeout:
|
252
307
|
# seconds: 54000 # 90 minutes
|
308
|
+
# @!attribute [rw] auto_populated_fields
|
309
|
+
# @return [::Array<::String>]
|
310
|
+
# List of top-level fields of the request message, that should be
|
311
|
+
# automatically populated by the client libraries based on their
|
312
|
+
# (google.api.field_info).format. Currently supported format: UUID4.
|
313
|
+
#
|
314
|
+
# Example of a YAML configuration:
|
315
|
+
#
|
316
|
+
# publishing:
|
317
|
+
# method_settings:
|
318
|
+
# - selector: google.example.v1.ExampleService.CreateExample
|
319
|
+
# auto_populated_fields:
|
320
|
+
# - request_id
|
253
321
|
class MethodSettings
|
254
322
|
include ::Google::Protobuf::MessageExts
|
255
323
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -299,6 +367,15 @@ module Google
|
|
299
367
|
|
300
368
|
# Street View Org.
|
301
369
|
STREET_VIEW = 4
|
370
|
+
|
371
|
+
# Shopping Org.
|
372
|
+
SHOPPING = 5
|
373
|
+
|
374
|
+
# Geo Org.
|
375
|
+
GEO = 6
|
376
|
+
|
377
|
+
# Generative AI - https://developers.generativeai.google
|
378
|
+
GENERATIVE_AI = 7
|
302
379
|
end
|
303
380
|
|
304
381
|
# To where should client libraries be published?
|
@@ -66,6 +66,20 @@ module Google
|
|
66
66
|
# a non-empty value will be returned. The user will not be aware of what
|
67
67
|
# non-empty value to expect.
|
68
68
|
NON_EMPTY_DEFAULT = 7
|
69
|
+
|
70
|
+
# Denotes that the field in a resource (a message annotated with
|
71
|
+
# google.api.resource) is used in the resource name to uniquely identify the
|
72
|
+
# resource. For AIP-compliant APIs, this should only be applied to the
|
73
|
+
# `name` field on the resource.
|
74
|
+
#
|
75
|
+
# This behavior should not be applied to references to other resources within
|
76
|
+
# the message.
|
77
|
+
#
|
78
|
+
# The identifier field of resources often have different field behavior
|
79
|
+
# depending on the request it is embedded in (e.g. for Create methods name
|
80
|
+
# is optional and unused, while for Update methods it is required). Instead
|
81
|
+
# of method-specific annotations, only `IDENTIFIER` is required.
|
82
|
+
IDENTIFIER = 8
|
69
83
|
end
|
70
84
|
end
|
71
85
|
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2023 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 sequence of bits, encoded in a byte array.
|
25
|
+
#
|
26
|
+
# Each byte in the `bitmap` byte array stores 8 bits of the sequence. The only
|
27
|
+
# exception is the last byte, which may store 8 _or fewer_ bits. The `padding`
|
28
|
+
# defines the number of bits of the last byte to be ignored as "padding". The
|
29
|
+
# values of these "padding" bits are unspecified and must be ignored.
|
30
|
+
#
|
31
|
+
# To retrieve the first bit, bit 0, calculate: `(bitmap[0] & 0x01) != 0`.
|
32
|
+
# To retrieve the second bit, bit 1, calculate: `(bitmap[0] & 0x02) != 0`.
|
33
|
+
# To retrieve the third bit, bit 2, calculate: `(bitmap[0] & 0x04) != 0`.
|
34
|
+
# To retrieve the fourth bit, bit 3, calculate: `(bitmap[0] & 0x08) != 0`.
|
35
|
+
# To retrieve bit n, calculate: `(bitmap[n / 8] & (0x01 << (n % 8))) != 0`.
|
36
|
+
#
|
37
|
+
# The "size" of a `BitSequence` (the number of bits it contains) is calculated
|
38
|
+
# by this formula: `(bitmap.length * 8) - padding`.
|
39
|
+
# @!attribute [rw] bitmap
|
40
|
+
# @return [::String]
|
41
|
+
# The bytes that encode the bit sequence.
|
42
|
+
# May have a length of zero.
|
43
|
+
# @!attribute [rw] padding
|
44
|
+
# @return [::Integer]
|
45
|
+
# The number of bits of the last byte in `bitmap` to ignore as "padding".
|
46
|
+
# If the length of `bitmap` is zero, then this value must be `0`.
|
47
|
+
# Otherwise, this value must be between 0 and 7, inclusive.
|
48
|
+
class BitSequence
|
49
|
+
include ::Google::Protobuf::MessageExts
|
50
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
51
|
+
end
|
52
|
+
|
53
|
+
# A bloom filter (https://en.wikipedia.org/wiki/Bloom_filter).
|
54
|
+
#
|
55
|
+
# The bloom filter hashes the entries with MD5 and treats the resulting 128-bit
|
56
|
+
# hash as 2 distinct 64-bit hash values, interpreted as unsigned integers
|
57
|
+
# using 2's complement encoding.
|
58
|
+
#
|
59
|
+
# These two hash values, named `h1` and `h2`, are then used to compute the
|
60
|
+
# `hash_count` hash values using the formula, starting at `i=0`:
|
61
|
+
#
|
62
|
+
# h(i) = h1 + (i * h2)
|
63
|
+
#
|
64
|
+
# These resulting values are then taken modulo the number of bits in the bloom
|
65
|
+
# filter to get the bits of the bloom filter to test for the given entry.
|
66
|
+
# @!attribute [rw] bits
|
67
|
+
# @return [::Google::Cloud::Firestore::V1::BitSequence]
|
68
|
+
# The bloom filter data.
|
69
|
+
# @!attribute [rw] hash_count
|
70
|
+
# @return [::Integer]
|
71
|
+
# The number of hashes used by the algorithm.
|
72
|
+
class BloomFilter
|
73
|
+
include ::Google::Protobuf::MessageExts
|
74
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -63,6 +63,9 @@ module Google
|
|
63
63
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
64
64
|
|
65
65
|
# Options for a transaction that can be used to read and write documents.
|
66
|
+
#
|
67
|
+
# Firestore does not allow 3rd party auth requests to create read-write.
|
68
|
+
# transactions.
|
66
69
|
# @!attribute [rw] retry_transaction
|
67
70
|
# @return [::String]
|
68
71
|
# An optional transaction to retry.
|
@@ -75,7 +78,10 @@ module Google
|
|
75
78
|
# @!attribute [rw] read_time
|
76
79
|
# @return [::Google::Protobuf::Timestamp]
|
77
80
|
# Reads documents at the given time.
|
78
|
-
#
|
81
|
+
#
|
82
|
+
# This must be a microsecond precision timestamp within the past one
|
83
|
+
# hour, or if Point-in-Time Recovery is enabled, can additionally be a
|
84
|
+
# whole minute timestamp within the past 7 days.
|
79
85
|
class ReadOnly
|
80
86
|
include ::Google::Protobuf::MessageExts
|
81
87
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -34,23 +34,23 @@ module Google
|
|
34
34
|
#
|
35
35
|
# The map keys represent field names.
|
36
36
|
#
|
37
|
-
# A simple field name contains only characters `a` to `z`, `A` to `Z`,
|
38
|
-
# `0` to `9`, or `_`, and must not start with `0` to `9`. For example,
|
39
|
-
# `foo_bar_17`.
|
40
|
-
#
|
41
37
|
# Field names matching the regular expression `__.*__` are reserved. Reserved
|
42
|
-
# field names are forbidden except in certain documented contexts. The
|
43
|
-
#
|
38
|
+
# field names are forbidden except in certain documented contexts. The field
|
39
|
+
# names, represented as UTF-8, must not exceed 1,500 bytes and cannot be
|
44
40
|
# empty.
|
45
41
|
#
|
46
42
|
# Field paths may be used in other contexts to refer to structured fields
|
47
|
-
# defined here. For `map_value`, the field path is represented by
|
48
|
-
#
|
49
|
-
# example, the
|
50
|
-
# `"foo" : { map_value: { "x&y" : { string_value: "hello"
|
51
|
-
# represented by the field path
|
43
|
+
# defined here. For `map_value`, the field path is represented by a
|
44
|
+
# dot-delimited (`.`) string of segments. Each segment is either a simple
|
45
|
+
# field name (defined below) or a quoted field name. For example, the
|
46
|
+
# structured field `"foo" : { map_value: { "x&y" : { string_value: "hello"
|
47
|
+
# }}}` would be represented by the field path `` foo.`x&y` ``.
|
48
|
+
#
|
49
|
+
# A simple field name contains only characters `a` to `z`, `A` to `Z`,
|
50
|
+
# `0` to `9`, or `_`, and must not start with `0` to `9`. For example,
|
51
|
+
# `foo_bar_17`.
|
52
52
|
#
|
53
|
-
#
|
53
|
+
# A quoted field name starts and ends with `` ` `` and
|
54
54
|
# may contain any character. Some characters, including `` ` ``, must be
|
55
55
|
# escaped using a `\`. For example, `` `x&y` `` represents `x&y` and
|
56
56
|
# `` `bak\`tik` `` represents `` bak`tik ``.
|
@@ -39,7 +39,10 @@ module Google
|
|
39
39
|
# @!attribute [rw] read_time
|
40
40
|
# @return [::Google::Protobuf::Timestamp]
|
41
41
|
# Reads the version of the document at the given time.
|
42
|
-
#
|
42
|
+
#
|
43
|
+
# This must be a microsecond precision timestamp within the past one hour,
|
44
|
+
# or if Point-in-Time Recovery is enabled, can additionally be a whole
|
45
|
+
# minute timestamp within the past 7 days.
|
43
46
|
class GetDocumentRequest
|
44
47
|
include ::Google::Protobuf::MessageExts
|
45
48
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -98,7 +101,9 @@ module Google
|
|
98
101
|
# @return [::Google::Protobuf::Timestamp]
|
99
102
|
# Perform the read at the provided time.
|
100
103
|
#
|
101
|
-
# This
|
104
|
+
# This must be a microsecond precision timestamp within the past one hour,
|
105
|
+
# or if Point-in-Time Recovery is enabled, can additionally be a whole
|
106
|
+
# minute timestamp within the past 7 days.
|
102
107
|
# @!attribute [rw] show_missing
|
103
108
|
# @return [::Boolean]
|
104
109
|
# If the list should show missing documents.
|
@@ -235,7 +240,10 @@ module Google
|
|
235
240
|
# @!attribute [rw] read_time
|
236
241
|
# @return [::Google::Protobuf::Timestamp]
|
237
242
|
# Reads documents as they were at the given time.
|
238
|
-
#
|
243
|
+
#
|
244
|
+
# This must be a microsecond precision timestamp within the past one hour,
|
245
|
+
# or if Point-in-Time Recovery is enabled, can additionally be a whole
|
246
|
+
# minute timestamp within the past 7 days.
|
239
247
|
class BatchGetDocumentsRequest
|
240
248
|
include ::Google::Protobuf::MessageExts
|
241
249
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -365,7 +373,10 @@ module Google
|
|
365
373
|
# @!attribute [rw] read_time
|
366
374
|
# @return [::Google::Protobuf::Timestamp]
|
367
375
|
# Reads documents as they were at the given time.
|
368
|
-
#
|
376
|
+
#
|
377
|
+
# This must be a microsecond precision timestamp within the past one hour,
|
378
|
+
# or if Point-in-Time Recovery is enabled, can additionally be a whole
|
379
|
+
# minute timestamp within the past 7 days.
|
369
380
|
class RunQueryRequest
|
370
381
|
include ::Google::Protobuf::MessageExts
|
371
382
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -433,9 +444,9 @@ module Google
|
|
433
444
|
# @return [::Google::Protobuf::Timestamp]
|
434
445
|
# Executes the query at the given timestamp.
|
435
446
|
#
|
436
|
-
#
|
437
|
-
#
|
438
|
-
#
|
447
|
+
# This must be a microsecond precision timestamp within the past one hour,
|
448
|
+
# or if Point-in-Time Recovery is enabled, can additionally be a whole
|
449
|
+
# minute timestamp within the past 7 days.
|
439
450
|
class RunAggregationQueryRequest
|
440
451
|
include ::Google::Protobuf::MessageExts
|
441
452
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -456,7 +467,14 @@ module Google
|
|
456
467
|
# a new transaction.
|
457
468
|
# @!attribute [rw] read_time
|
458
469
|
# @return [::Google::Protobuf::Timestamp]
|
459
|
-
# The time at which the aggregate
|
470
|
+
# The time at which the aggregate result was computed. This is always
|
471
|
+
# monotonically increasing; in this case, the previous AggregationResult in
|
472
|
+
# the result stream are guaranteed not to have changed between their
|
473
|
+
# `read_time` and this one.
|
474
|
+
#
|
475
|
+
# If the query returns no results, a response with `read_time` and no
|
476
|
+
# `result` will be sent, and this represents the time at which the query
|
477
|
+
# was run.
|
460
478
|
class RunAggregationQueryResponse
|
461
479
|
include ::Google::Protobuf::MessageExts
|
462
480
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -513,7 +531,10 @@ module Google
|
|
513
531
|
# @!attribute [rw] read_time
|
514
532
|
# @return [::Google::Protobuf::Timestamp]
|
515
533
|
# Reads documents as they were at the given time.
|
516
|
-
#
|
534
|
+
#
|
535
|
+
# This must be a microsecond precision timestamp within the past one hour,
|
536
|
+
# or if Point-in-Time Recovery is enabled, can additionally be a whole
|
537
|
+
# minute timestamp within the past 7 days.
|
517
538
|
class PartitionQueryRequest
|
518
539
|
include ::Google::Protobuf::MessageExts
|
519
540
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -539,7 +560,7 @@ module Google
|
|
539
560
|
# * query, start_at B
|
540
561
|
#
|
541
562
|
# An empty result may indicate that the query has too few results to be
|
542
|
-
# partitioned.
|
563
|
+
# partitioned, or that the query is not yet supported for partitioning.
|
543
564
|
# @!attribute [rw] next_page_token
|
544
565
|
# @return [::String]
|
545
566
|
# A page token that may be used to request an additional set of results, up
|
@@ -713,9 +734,32 @@ module Google
|
|
713
734
|
# @return [::Integer]
|
714
735
|
# The target ID that identifies the target on the stream. Must be a positive
|
715
736
|
# number and non-zero.
|
737
|
+
#
|
738
|
+
# If `target_id` is 0 (or unspecified), the server will assign an ID for this
|
739
|
+
# target and return that in a `TargetChange::ADD` event. Once a target with
|
740
|
+
# `target_id=0` is added, all subsequent targets must also have
|
741
|
+
# `target_id=0`. If an `AddTarget` request with `target_id != 0` is
|
742
|
+
# sent to the server after a target with `target_id=0` is added, the server
|
743
|
+
# will immediately send a response with a `TargetChange::Remove` event.
|
744
|
+
#
|
745
|
+
# Note that if the client sends multiple `AddTarget` requests
|
746
|
+
# without an ID, the order of IDs returned in `TargetChage.target_ids` are
|
747
|
+
# undefined. Therefore, clients should provide a target ID instead of relying
|
748
|
+
# on the server to assign one.
|
749
|
+
#
|
750
|
+
# If `target_id` is non-zero, there must not be an existing active target on
|
751
|
+
# this stream with the same ID.
|
716
752
|
# @!attribute [rw] once
|
717
753
|
# @return [::Boolean]
|
718
754
|
# If the target should be removed once it is current and consistent.
|
755
|
+
# @!attribute [rw] expected_count
|
756
|
+
# @return [::Google::Protobuf::Int32Value]
|
757
|
+
# The number of documents that last matched the query at the resume token or
|
758
|
+
# read time.
|
759
|
+
#
|
760
|
+
# This value is only relevant when a `resume_type` is provided. This value
|
761
|
+
# being present and greater than zero signals that the client wants
|
762
|
+
# `ExistenceFilter.unchanged_names` to be included in the response.
|
719
763
|
class Target
|
720
764
|
include ::Google::Protobuf::MessageExts
|
721
765
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -834,7 +878,10 @@ module Google
|
|
834
878
|
# @!attribute [rw] read_time
|
835
879
|
# @return [::Google::Protobuf::Timestamp]
|
836
880
|
# Reads documents as they were at the given time.
|
837
|
-
#
|
881
|
+
#
|
882
|
+
# This must be a microsecond precision timestamp within the past one hour,
|
883
|
+
# or if Point-in-Time Recovery is enabled, can additionally be a whole
|
884
|
+
# minute timestamp within the past 7 days.
|
838
885
|
class ListCollectionIdsRequest
|
839
886
|
include ::Google::Protobuf::MessageExts
|
840
887
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -22,9 +22,21 @@ module Google
|
|
22
22
|
module Firestore
|
23
23
|
module V1
|
24
24
|
# A Firestore query.
|
25
|
+
#
|
26
|
+
# The query stages are executed in the following order:
|
27
|
+
# 1. from
|
28
|
+
# 2. where
|
29
|
+
# 3. select
|
30
|
+
# 4. order_by + start_at + end_at
|
31
|
+
# 5. offset
|
32
|
+
# 6. limit
|
25
33
|
# @!attribute [rw] select
|
26
34
|
# @return [::Google::Cloud::Firestore::V1::StructuredQuery::Projection]
|
27
|
-
#
|
35
|
+
# Optional sub-set of the fields to return.
|
36
|
+
#
|
37
|
+
# This acts as a {::Google::Cloud::Firestore::V1::DocumentMask DocumentMask} over the
|
38
|
+
# documents returned from a query. When not set, assumes that the caller
|
39
|
+
# wants all fields returned.
|
28
40
|
# @!attribute [rw] from
|
29
41
|
# @return [::Array<::Google::Cloud::Firestore::V1::StructuredQuery::CollectionSelector>]
|
30
42
|
# The collections to query.
|
@@ -243,8 +255,9 @@ module Google
|
|
243
255
|
#
|
244
256
|
# Requires:
|
245
257
|
#
|
246
|
-
# * That `value` is a non-empty `ArrayValue
|
247
|
-
#
|
258
|
+
# * That `value` is a non-empty `ArrayValue`, subject to disjunction
|
259
|
+
# limits.
|
260
|
+
# * No `NOT_IN` filters in the same query.
|
248
261
|
IN = 8
|
249
262
|
|
250
263
|
# The given `field` is an array that contains any of the values in the
|
@@ -252,8 +265,10 @@ module Google
|
|
252
265
|
#
|
253
266
|
# Requires:
|
254
267
|
#
|
255
|
-
# * That `value` is a non-empty `ArrayValue
|
256
|
-
#
|
268
|
+
# * That `value` is a non-empty `ArrayValue`, subject to disjunction
|
269
|
+
# limits.
|
270
|
+
# * No other `ARRAY_CONTAINS_ANY` filters within the same disjunction.
|
271
|
+
# * No `NOT_IN` filters in the same query.
|
257
272
|
ARRAY_CONTAINS_ANY = 9
|
258
273
|
|
259
274
|
# The value of the `field` is not in the given array.
|
@@ -261,7 +276,7 @@ module Google
|
|
261
276
|
# Requires:
|
262
277
|
#
|
263
278
|
# * That `value` is a non-empty `ArrayValue` with at most 10 values.
|
264
|
-
# * No other `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`,
|
279
|
+
# * No other `OR`, `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`, `NOT_EQUAL`,
|
265
280
|
# `IS_NOT_NULL`, or `IS_NOT_NAN`.
|
266
281
|
# * That `field` comes first in the `order_by`.
|
267
282
|
NOT_IN = 10
|
@@ -323,11 +338,12 @@ module Google
|
|
323
338
|
# A reference to a field in a document, ex: `stats.operations`.
|
324
339
|
# @!attribute [rw] field_path
|
325
340
|
# @return [::String]
|
326
|
-
#
|
341
|
+
# A reference to a field in a document.
|
327
342
|
#
|
328
343
|
# Requires:
|
329
344
|
#
|
330
|
-
# *
|
345
|
+
# * MUST be a dot-delimited (`.`) string of segments, where each segment
|
346
|
+
# conforms to {::Google::Cloud::Firestore::V1::Document#fields document field name}
|
331
347
|
# limitations.
|
332
348
|
class FieldReference
|
333
349
|
include ::Google::Protobuf::MessageExts
|
@@ -376,10 +392,16 @@ module Google
|
|
376
392
|
include ::Google::Protobuf::MessageExts
|
377
393
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
378
394
|
|
379
|
-
# Defines
|
395
|
+
# Defines an aggregation that produces a single result.
|
380
396
|
# @!attribute [rw] count
|
381
397
|
# @return [::Google::Cloud::Firestore::V1::StructuredAggregationQuery::Aggregation::Count]
|
382
398
|
# Count aggregator.
|
399
|
+
# @!attribute [rw] sum
|
400
|
+
# @return [::Google::Cloud::Firestore::V1::StructuredAggregationQuery::Aggregation::Sum]
|
401
|
+
# Sum aggregator.
|
402
|
+
# @!attribute [rw] avg
|
403
|
+
# @return [::Google::Cloud::Firestore::V1::StructuredAggregationQuery::Aggregation::Avg]
|
404
|
+
# Average aggregator.
|
383
405
|
# @!attribute [rw] alias
|
384
406
|
# @return [::String]
|
385
407
|
# Optional. Optional name of the field to store the result of the
|
@@ -393,7 +415,7 @@ module Google
|
|
393
415
|
# COUNT_UP_TO(1) AS count_up_to_1,
|
394
416
|
# COUNT_UP_TO(2),
|
395
417
|
# COUNT_UP_TO(3) AS count_up_to_3,
|
396
|
-
#
|
418
|
+
# COUNT(*)
|
397
419
|
# OVER (
|
398
420
|
# ...
|
399
421
|
# );
|
@@ -406,7 +428,7 @@ module Google
|
|
406
428
|
# COUNT_UP_TO(1) AS count_up_to_1,
|
407
429
|
# COUNT_UP_TO(2) AS field_1,
|
408
430
|
# COUNT_UP_TO(3) AS count_up_to_3,
|
409
|
-
#
|
431
|
+
# COUNT(*) AS field_2
|
410
432
|
# OVER (
|
411
433
|
# ...
|
412
434
|
# );
|
@@ -431,7 +453,7 @@ module Google
|
|
431
453
|
# count.
|
432
454
|
#
|
433
455
|
# This provides a way to set an upper bound on the number of documents
|
434
|
-
# to scan, limiting latency and cost.
|
456
|
+
# to scan, limiting latency, and cost.
|
435
457
|
#
|
436
458
|
# Unspecified is interpreted as no bound.
|
437
459
|
#
|
@@ -448,6 +470,54 @@ module Google
|
|
448
470
|
include ::Google::Protobuf::MessageExts
|
449
471
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
450
472
|
end
|
473
|
+
|
474
|
+
# Sum of the values of the requested field.
|
475
|
+
#
|
476
|
+
# * Only numeric values will be aggregated. All non-numeric values
|
477
|
+
# including `NULL` are skipped.
|
478
|
+
#
|
479
|
+
# * If the aggregated values contain `NaN`, returns `NaN`. Infinity math
|
480
|
+
# follows IEEE-754 standards.
|
481
|
+
#
|
482
|
+
# * If the aggregated value set is empty, returns 0.
|
483
|
+
#
|
484
|
+
# * Returns a 64-bit integer if all aggregated numbers are integers and the
|
485
|
+
# sum result does not overflow. Otherwise, the result is returned as a
|
486
|
+
# double. Note that even if all the aggregated values are integers, the
|
487
|
+
# result is returned as a double if it cannot fit within a 64-bit signed
|
488
|
+
# integer. When this occurs, the returned value will lose precision.
|
489
|
+
#
|
490
|
+
# * When underflow occurs, floating-point aggregation is non-deterministic.
|
491
|
+
# This means that running the same query repeatedly without any changes to
|
492
|
+
# the underlying values could produce slightly different results each
|
493
|
+
# time. In those cases, values should be stored as integers over
|
494
|
+
# floating-point numbers.
|
495
|
+
# @!attribute [rw] field
|
496
|
+
# @return [::Google::Cloud::Firestore::V1::StructuredQuery::FieldReference]
|
497
|
+
# The field to aggregate on.
|
498
|
+
class Sum
|
499
|
+
include ::Google::Protobuf::MessageExts
|
500
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
501
|
+
end
|
502
|
+
|
503
|
+
# Average of the values of the requested field.
|
504
|
+
#
|
505
|
+
# * Only numeric values will be aggregated. All non-numeric values
|
506
|
+
# including `NULL` are skipped.
|
507
|
+
#
|
508
|
+
# * If the aggregated values contain `NaN`, returns `NaN`. Infinity math
|
509
|
+
# follows IEEE-754 standards.
|
510
|
+
#
|
511
|
+
# * If the aggregated value set is empty, returns `NULL`.
|
512
|
+
#
|
513
|
+
# * Always returns the result as a double.
|
514
|
+
# @!attribute [rw] field
|
515
|
+
# @return [::Google::Cloud::Firestore::V1::StructuredQuery::FieldReference]
|
516
|
+
# The field to aggregate on.
|
517
|
+
class Avg
|
518
|
+
include ::Google::Protobuf::MessageExts
|
519
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
520
|
+
end
|
451
521
|
end
|
452
522
|
end
|
453
523
|
|
@@ -271,6 +271,24 @@ module Google
|
|
271
271
|
#
|
272
272
|
# If different from the count of documents in the client that match, the
|
273
273
|
# client must manually determine which documents no longer match the target.
|
274
|
+
#
|
275
|
+
# The client can use the `unchanged_names` bloom filter to assist with
|
276
|
+
# this determination by testing ALL the document names against the filter;
|
277
|
+
# if the document name is NOT in the filter, it means the document no
|
278
|
+
# longer matches the target.
|
279
|
+
# @!attribute [rw] unchanged_names
|
280
|
+
# @return [::Google::Cloud::Firestore::V1::BloomFilter]
|
281
|
+
# A bloom filter that, despite its name, contains the UTF-8 byte encodings of
|
282
|
+
# the resource names of ALL the documents that match
|
283
|
+
# {::Google::Cloud::Firestore::V1::ExistenceFilter#target_id target_id}, in the form
|
284
|
+
# `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
285
|
+
#
|
286
|
+
# This bloom filter may be omitted at the server's discretion, such as if it
|
287
|
+
# is deemed that the client will not make use of it or if it is too
|
288
|
+
# computationally expensive to calculate or transmit. Clients must gracefully
|
289
|
+
# handle this field being absent by falling back to the logic used before
|
290
|
+
# this field existed; that is, re-add the target without a resume token to
|
291
|
+
# figure out which documents in the client's cache are out of sync.
|
274
292
|
class ExistenceFilter
|
275
293
|
include ::Google::Protobuf::MessageExts
|
276
294
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -43,8 +43,12 @@ module Google
|
|
43
43
|
# if (any.is(Foo.class)) {
|
44
44
|
# foo = any.unpack(Foo.class);
|
45
45
|
# }
|
46
|
+
# // or ...
|
47
|
+
# if (any.isSameTypeAs(Foo.getDefaultInstance())) {
|
48
|
+
# foo = any.unpack(Foo.getDefaultInstance());
|
49
|
+
# }
|
46
50
|
#
|
47
|
-
#
|
51
|
+
# Example 3: Pack and unpack a message in Python.
|
48
52
|
#
|
49
53
|
# foo = Foo(...)
|
50
54
|
# any = Any()
|
@@ -54,7 +58,7 @@ module Google
|
|
54
58
|
# any.Unpack(foo)
|
55
59
|
# ...
|
56
60
|
#
|
57
|
-
#
|
61
|
+
# Example 4: Pack and unpack a message in Go
|
58
62
|
#
|
59
63
|
# foo := &pb.Foo{...}
|
60
64
|
# any, err := anypb.New(foo)
|
@@ -73,9 +77,8 @@ module Google
|
|
73
77
|
# in the type URL, for example "foo.bar.com/x/y.z" will yield type
|
74
78
|
# name "y.z".
|
75
79
|
#
|
76
|
-
#
|
77
80
|
# JSON
|
78
|
-
#
|
81
|
+
# ====
|
79
82
|
# The JSON representation of an `Any` value uses the regular
|
80
83
|
# representation of the deserialized, embedded message, with an
|
81
84
|
# additional field `@type` which contains the type URL. Example:
|