google-cloud-datastore-v1 1.0.1 → 1.2.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: 95cdefc0de0aa2261bc7688e8478975bdf066e3416c56fd2f5f2a27baf612e4e
4
- data.tar.gz: 42722734552068f351a6a9599cc942b760482da8a2a703959ff696c16ac2195a
3
+ metadata.gz: bce4adc08222050a5cd91ebe7fb5682dc14923137451cfee856feab22847a84a
4
+ data.tar.gz: 14943719fad88e1d8ced850cd73f4b00a152082f50f1c8d4bc27312c9a62482f
5
5
  SHA512:
6
- metadata.gz: bd287150b6dfcde52558fd96473fed171efb66122a3d05ca4e646b4e233fd7c7e084ff3eb26ad23ca69002f5da04939298bf90720ef40e60b82bf36c060669bb
7
- data.tar.gz: 9d229129e8a2de116401067cef93e248505f7c1bc8e2d7330b7a7effe620f7cd3dce683346f07f5413bbfe30d996b9271a35bfd2b59d867c2945064a1ef91a22
6
+ metadata.gz: 0c54259e5a7eafc81e52c8f72f0a5aca0060f68937b5ed618ba5b71bb2e2f057d2f0b83ee3be4a0a21f0aa094719524a78c1c05d358190b401dff9937c997719
7
+ data.tar.gz: eb4168dc576d1beb42637ec9e61452974d3c1650a089674c922c78b45cf46cab2f8743c6c71c6aeb4d35adfb0eaad07b0005e4e1fa426be26a5ecb5bb7b422c2
data/README.md CHANGED
@@ -43,33 +43,43 @@ for class and method documentation.
43
43
  See also the [Product Documentation](https://cloud.google.com/datastore)
44
44
  for general usage information.
45
45
 
46
- ## Enabling Logging
47
-
48
- To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library.
49
- The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/current/stdlibs/logger/Logger.html) as shown below,
50
- or a [`Google::Cloud::Logging::Logger`](https://cloud.google.com/ruby/docs/reference/google-cloud-logging/latest)
51
- that will write logs to [Cloud Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
52
- and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
53
-
54
- Configuring a Ruby stdlib logger:
46
+ ## Debug Logging
47
+
48
+ This library comes with opt-in Debug Logging that can help you troubleshoot
49
+ your application's integration with the API. When logging is activated, key
50
+ events such as requests and responses, along with data payloads and metadata
51
+ such as headers and client configuration, are logged to the standard error
52
+ stream.
53
+
54
+ **WARNING:** Client Library Debug Logging includes your data payloads in
55
+ plaintext, which could include sensitive data such as PII for yourself or your
56
+ customers, private keys, or other security data that could be compromising if
57
+ leaked. Always practice good data hygiene with your application logs, and follow
58
+ the principle of least access. Google also recommends that Client Library Debug
59
+ Logging be enabled only temporarily during active debugging, and not used
60
+ permanently in production.
61
+
62
+ To enable logging, set the environment variable `GOOGLE_SDK_RUBY_LOGGING_GEMS`
63
+ to the value `all`. Alternatively, you can set the value to a comma-delimited
64
+ list of client library gem names. This will select the default logging behavior,
65
+ which writes logs to the standard error stream. On a local workstation, this may
66
+ result in logs appearing on the console. When running on a Google Cloud hosting
67
+ service such as [Google Cloud Run](https://cloud.google.com/run), this generally
68
+ results in logs appearing alongside your application logs in the
69
+ [Google Cloud Logging](https://cloud.google.com/logging/) service.
70
+
71
+ You can customize logging by modifying the `logger` configuration when
72
+ constructing a client object. For example:
55
73
 
56
74
  ```ruby
75
+ require "google/cloud/datastore/v1"
57
76
  require "logger"
58
77
 
59
- module MyLogger
60
- LOGGER = Logger.new $stderr, level: Logger::WARN
61
- def logger
62
- LOGGER
63
- end
64
- end
65
-
66
- # Define a gRPC module-level logger method before grpc/logconfig.rb loads.
67
- module GRPC
68
- extend MyLogger
78
+ client = ::Google::Cloud::Datastore::V1::Datastore::Client.new do |config|
79
+ config.logger = Logger.new "my-app.log"
69
80
  end
70
81
  ```
71
82
 
72
-
73
83
  ## Google Cloud Samples
74
84
 
75
85
  To browse ready to use code samples check [Google Cloud Samples](https://cloud.google.com/docs/samples).
@@ -188,8 +188,28 @@ module Google
188
188
  universe_domain: @config.universe_domain,
189
189
  channel_args: @config.channel_args,
190
190
  interceptors: @config.interceptors,
191
- channel_pool_config: @config.channel_pool
191
+ channel_pool_config: @config.channel_pool,
192
+ logger: @config.logger
192
193
  )
194
+
195
+ @datastore_stub.stub_logger&.info do |entry|
196
+ entry.set_system_name
197
+ entry.set_service
198
+ entry.message = "Created client for #{entry.service}"
199
+ entry.set_credentials_fields credentials
200
+ entry.set "customEndpoint", @config.endpoint if @config.endpoint
201
+ entry.set "defaultTimeout", @config.timeout if @config.timeout
202
+ entry.set "quotaProject", @quota_project_id if @quota_project_id
203
+ end
204
+ end
205
+
206
+ ##
207
+ # The logger used for request/response debug logging.
208
+ #
209
+ # @return [Logger]
210
+ #
211
+ def logger
212
+ @datastore_stub.logger
193
213
  end
194
214
 
195
215
  # Service calls
@@ -293,7 +313,6 @@ module Google
293
313
 
294
314
  @datastore_stub.call_rpc :lookup, request, options: options do |response, operation|
295
315
  yield response, operation if block_given?
296
- return response
297
316
  end
298
317
  rescue ::GRPC::BadStatus => e
299
318
  raise ::Google::Cloud::Error.from_error(e)
@@ -407,7 +426,6 @@ module Google
407
426
 
408
427
  @datastore_stub.call_rpc :run_query, request, options: options do |response, operation|
409
428
  yield response, operation if block_given?
410
- return response
411
429
  end
412
430
  rescue ::GRPC::BadStatus => e
413
431
  raise ::Google::Cloud::Error.from_error(e)
@@ -515,7 +533,6 @@ module Google
515
533
 
516
534
  @datastore_stub.call_rpc :run_aggregation_query, request, options: options do |response, operation|
517
535
  yield response, operation if block_given?
518
- return response
519
536
  end
520
537
  rescue ::GRPC::BadStatus => e
521
538
  raise ::Google::Cloud::Error.from_error(e)
@@ -611,7 +628,6 @@ module Google
611
628
 
612
629
  @datastore_stub.call_rpc :begin_transaction, request, options: options do |response, operation|
613
630
  yield response, operation if block_given?
614
- return response
615
631
  end
616
632
  rescue ::GRPC::BadStatus => e
617
633
  raise ::Google::Cloud::Error.from_error(e)
@@ -731,7 +747,6 @@ module Google
731
747
 
732
748
  @datastore_stub.call_rpc :commit, request, options: options do |response, operation|
733
749
  yield response, operation if block_given?
734
- return response
735
750
  end
736
751
  rescue ::GRPC::BadStatus => e
737
752
  raise ::Google::Cloud::Error.from_error(e)
@@ -828,7 +843,6 @@ module Google
828
843
 
829
844
  @datastore_stub.call_rpc :rollback, request, options: options do |response, operation|
830
845
  yield response, operation if block_given?
831
- return response
832
846
  end
833
847
  rescue ::GRPC::BadStatus => e
834
848
  raise ::Google::Cloud::Error.from_error(e)
@@ -926,7 +940,6 @@ module Google
926
940
 
927
941
  @datastore_stub.call_rpc :allocate_ids, request, options: options do |response, operation|
928
942
  yield response, operation if block_given?
929
- return response
930
943
  end
931
944
  rescue ::GRPC::BadStatus => e
932
945
  raise ::Google::Cloud::Error.from_error(e)
@@ -1024,7 +1037,6 @@ module Google
1024
1037
 
1025
1038
  @datastore_stub.call_rpc :reserve_ids, request, options: options do |response, operation|
1026
1039
  yield response, operation if block_given?
1027
- return response
1028
1040
  end
1029
1041
  rescue ::GRPC::BadStatus => e
1030
1042
  raise ::Google::Cloud::Error.from_error(e)
@@ -1113,6 +1125,11 @@ module Google
1113
1125
  # default endpoint URL. The default value of nil uses the environment
1114
1126
  # universe (usually the default "googleapis.com" universe).
1115
1127
  # @return [::String,nil]
1128
+ # @!attribute [rw] logger
1129
+ # A custom logger to use for request/response debug logging, or the value
1130
+ # `:default` (the default) to construct a default logger, or `nil` to
1131
+ # explicitly disable logging.
1132
+ # @return [::Logger,:default,nil]
1116
1133
  #
1117
1134
  class Configuration
1118
1135
  extend ::Gapic::Config
@@ -1137,6 +1154,7 @@ module Google
1137
1154
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
1138
1155
  config_attr :quota_project, nil, ::String, nil
1139
1156
  config_attr :universe_domain, nil, ::String, nil
1157
+ config_attr :logger, :default, ::Logger, nil, :default
1140
1158
 
1141
1159
  # @private
1142
1160
  def initialize parent_config = nil
@@ -181,8 +181,28 @@ module Google
181
181
  endpoint: @config.endpoint,
182
182
  endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
183
183
  universe_domain: @config.universe_domain,
184
- credentials: credentials
184
+ credentials: credentials,
185
+ logger: @config.logger
185
186
  )
187
+
188
+ @datastore_stub.logger(stub: true)&.info do |entry|
189
+ entry.set_system_name
190
+ entry.set_service
191
+ entry.message = "Created client for #{entry.service}"
192
+ entry.set_credentials_fields credentials
193
+ entry.set "customEndpoint", @config.endpoint if @config.endpoint
194
+ entry.set "defaultTimeout", @config.timeout if @config.timeout
195
+ entry.set "quotaProject", @quota_project_id if @quota_project_id
196
+ end
197
+ end
198
+
199
+ ##
200
+ # The logger used for request/response debug logging.
201
+ #
202
+ # @return [Logger]
203
+ #
204
+ def logger
205
+ @datastore_stub.logger
186
206
  end
187
207
 
188
208
  # Service calls
@@ -276,7 +296,6 @@ module Google
276
296
 
277
297
  @datastore_stub.lookup request, options do |result, operation|
278
298
  yield result, operation if block_given?
279
- return result
280
299
  end
281
300
  rescue ::Gapic::Rest::Error => e
282
301
  raise ::Google::Cloud::Error.from_error(e)
@@ -380,7 +399,6 @@ module Google
380
399
 
381
400
  @datastore_stub.run_query request, options do |result, operation|
382
401
  yield result, operation if block_given?
383
- return result
384
402
  end
385
403
  rescue ::Gapic::Rest::Error => e
386
404
  raise ::Google::Cloud::Error.from_error(e)
@@ -478,7 +496,6 @@ module Google
478
496
 
479
497
  @datastore_stub.run_aggregation_query request, options do |result, operation|
480
498
  yield result, operation if block_given?
481
- return result
482
499
  end
483
500
  rescue ::Gapic::Rest::Error => e
484
501
  raise ::Google::Cloud::Error.from_error(e)
@@ -564,7 +581,6 @@ module Google
564
581
 
565
582
  @datastore_stub.begin_transaction request, options do |result, operation|
566
583
  yield result, operation if block_given?
567
- return result
568
584
  end
569
585
  rescue ::Gapic::Rest::Error => e
570
586
  raise ::Google::Cloud::Error.from_error(e)
@@ -674,7 +690,6 @@ module Google
674
690
 
675
691
  @datastore_stub.commit request, options do |result, operation|
676
692
  yield result, operation if block_given?
677
- return result
678
693
  end
679
694
  rescue ::Gapic::Rest::Error => e
680
695
  raise ::Google::Cloud::Error.from_error(e)
@@ -761,7 +776,6 @@ module Google
761
776
 
762
777
  @datastore_stub.rollback request, options do |result, operation|
763
778
  yield result, operation if block_given?
764
- return result
765
779
  end
766
780
  rescue ::Gapic::Rest::Error => e
767
781
  raise ::Google::Cloud::Error.from_error(e)
@@ -849,7 +863,6 @@ module Google
849
863
 
850
864
  @datastore_stub.allocate_ids request, options do |result, operation|
851
865
  yield result, operation if block_given?
852
- return result
853
866
  end
854
867
  rescue ::Gapic::Rest::Error => e
855
868
  raise ::Google::Cloud::Error.from_error(e)
@@ -937,7 +950,6 @@ module Google
937
950
 
938
951
  @datastore_stub.reserve_ids request, options do |result, operation|
939
952
  yield result, operation if block_given?
940
- return result
941
953
  end
942
954
  rescue ::Gapic::Rest::Error => e
943
955
  raise ::Google::Cloud::Error.from_error(e)
@@ -1017,6 +1029,11 @@ module Google
1017
1029
  # default endpoint URL. The default value of nil uses the environment
1018
1030
  # universe (usually the default "googleapis.com" universe).
1019
1031
  # @return [::String,nil]
1032
+ # @!attribute [rw] logger
1033
+ # A custom logger to use for request/response debug logging, or the value
1034
+ # `:default` (the default) to construct a default logger, or `nil` to
1035
+ # explicitly disable logging.
1036
+ # @return [::Logger,:default,nil]
1020
1037
  #
1021
1038
  class Configuration
1022
1039
  extend ::Gapic::Config
@@ -1038,6 +1055,7 @@ module Google
1038
1055
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
1039
1056
  config_attr :quota_project, nil, ::String, nil
1040
1057
  config_attr :universe_domain, nil, ::String, nil
1058
+ config_attr :logger, :default, ::Logger, nil, :default
1041
1059
 
1042
1060
  # @private
1043
1061
  def initialize parent_config = nil
@@ -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 lookup 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: "lookup",
93
106
  options: options
94
107
  )
95
108
  operation = ::Gapic::Rest::TransportOperation.new response
96
109
  result = ::Google::Cloud::Datastore::V1::LookupResponse.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: "run_query",
131
146
  options: options
132
147
  )
133
148
  operation = ::Gapic::Rest::TransportOperation.new response
134
149
  result = ::Google::Cloud::Datastore::V1::RunQueryResponse.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: "run_aggregation_query",
169
186
  options: options
170
187
  )
171
188
  operation = ::Gapic::Rest::TransportOperation.new response
172
189
  result = ::Google::Cloud::Datastore::V1::RunAggregationQueryResponse.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: "begin_transaction",
207
226
  options: options
208
227
  )
209
228
  operation = ::Gapic::Rest::TransportOperation.new response
210
229
  result = ::Google::Cloud::Datastore::V1::BeginTransactionResponse.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,16 +259,18 @@ module Google
239
259
 
240
260
  response = @client_stub.make_http_request(
241
261
  verb,
242
- uri: uri,
243
- body: body || "",
244
- params: query_string_params,
262
+ uri: uri,
263
+ body: body || "",
264
+ params: query_string_params,
265
+ method_name: "commit",
245
266
  options: options
246
267
  )
247
268
  operation = ::Gapic::Rest::TransportOperation.new response
248
269
  result = ::Google::Cloud::Datastore::V1::CommitResponse.decode_json response.body, ignore_unknown_fields: true
249
-
250
- yield result, operation if block_given?
251
- result
270
+ catch :response do
271
+ yield result, operation if block_given?
272
+ result
273
+ end
252
274
  end
253
275
 
254
276
  ##
@@ -277,16 +299,18 @@ module Google
277
299
 
278
300
  response = @client_stub.make_http_request(
279
301
  verb,
280
- uri: uri,
281
- body: body || "",
282
- params: query_string_params,
302
+ uri: uri,
303
+ body: body || "",
304
+ params: query_string_params,
305
+ method_name: "rollback",
283
306
  options: options
284
307
  )
285
308
  operation = ::Gapic::Rest::TransportOperation.new response
286
309
  result = ::Google::Cloud::Datastore::V1::RollbackResponse.decode_json response.body, ignore_unknown_fields: true
287
-
288
- yield result, operation if block_given?
289
- result
310
+ catch :response do
311
+ yield result, operation if block_given?
312
+ result
313
+ end
290
314
  end
291
315
 
292
316
  ##
@@ -315,16 +339,18 @@ module Google
315
339
 
316
340
  response = @client_stub.make_http_request(
317
341
  verb,
318
- uri: uri,
319
- body: body || "",
320
- params: query_string_params,
342
+ uri: uri,
343
+ body: body || "",
344
+ params: query_string_params,
345
+ method_name: "allocate_ids",
321
346
  options: options
322
347
  )
323
348
  operation = ::Gapic::Rest::TransportOperation.new response
324
349
  result = ::Google::Cloud::Datastore::V1::AllocateIdsResponse.decode_json response.body, ignore_unknown_fields: true
325
-
326
- yield result, operation if block_given?
327
- result
350
+ catch :response do
351
+ yield result, operation if block_given?
352
+ result
353
+ end
328
354
  end
329
355
 
330
356
  ##
@@ -353,16 +379,18 @@ module Google
353
379
 
354
380
  response = @client_stub.make_http_request(
355
381
  verb,
356
- uri: uri,
357
- body: body || "",
358
- params: query_string_params,
382
+ uri: uri,
383
+ body: body || "",
384
+ params: query_string_params,
385
+ method_name: "reserve_ids",
359
386
  options: options
360
387
  )
361
388
  operation = ::Gapic::Rest::TransportOperation.new response
362
389
  result = ::Google::Cloud::Datastore::V1::ReserveIdsResponse.decode_json response.body, ignore_unknown_fields: true
363
-
364
- yield result, operation if block_given?
365
- result
390
+ catch :response do
391
+ yield result, operation if block_given?
392
+ result
393
+ end
366
394
  end
367
395
 
368
396
  ##
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module Datastore
23
23
  module V1
24
- VERSION = "1.0.1"
24
+ VERSION = "1.2.0"
25
25
  end
26
26
  end
27
27
  end
@@ -15,7 +15,7 @@ require 'google/datastore/v1/query_profile_pb'
15
15
  require 'google/protobuf/timestamp_pb'
16
16
 
17
17
 
18
- descriptor_data = "\n#google/datastore/v1/datastore.proto\x12\x13google.datastore.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x18google/api/routing.proto\x1a,google/datastore/v1/aggregation_result.proto\x1a google/datastore/v1/entity.proto\x1a\x1fgoogle/datastore/v1/query.proto\x1a\'google/datastore/v1/query_profile.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xdc\x01\n\rLookupRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12\x36\n\x0cread_options\x18\x01 \x01(\x0b\x32 .google.datastore.v1.ReadOptions\x12+\n\x04keys\x18\x03 \x03(\x0b\x32\x18.google.datastore.v1.KeyB\x03\xe0\x41\x02\x12\x38\n\rproperty_mask\x18\x05 \x01(\x0b\x32!.google.datastore.v1.PropertyMask\"\xe6\x01\n\x0eLookupResponse\x12\x30\n\x05\x66ound\x18\x01 \x03(\x0b\x32!.google.datastore.v1.EntityResult\x12\x32\n\x07missing\x18\x02 \x03(\x0b\x32!.google.datastore.v1.EntityResult\x12*\n\x08\x64\x65\x66\x65rred\x18\x03 \x03(\x0b\x32\x18.google.datastore.v1.Key\x12\x13\n\x0btransaction\x18\x05 \x01(\x0c\x12-\n\tread_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x9b\x03\n\x0fRunQueryRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12\x36\n\x0cpartition_id\x18\x02 \x01(\x0b\x32 .google.datastore.v1.PartitionId\x12\x36\n\x0cread_options\x18\x01 \x01(\x0b\x32 .google.datastore.v1.ReadOptions\x12+\n\x05query\x18\x03 \x01(\x0b\x32\x1a.google.datastore.v1.QueryH\x00\x12\x32\n\tgql_query\x18\x07 \x01(\x0b\x32\x1d.google.datastore.v1.GqlQueryH\x00\x12\x38\n\rproperty_mask\x18\n \x01(\x0b\x32!.google.datastore.v1.PropertyMask\x12\x41\n\x0f\x65xplain_options\x18\x0c \x01(\x0b\x32#.google.datastore.v1.ExplainOptionsB\x03\xe0\x41\x01\x42\x0c\n\nquery_type\"\xc6\x01\n\x10RunQueryResponse\x12\x34\n\x05\x62\x61tch\x18\x01 \x01(\x0b\x32%.google.datastore.v1.QueryResultBatch\x12)\n\x05query\x18\x02 \x01(\x0b\x32\x1a.google.datastore.v1.Query\x12\x13\n\x0btransaction\x18\x05 \x01(\x0c\x12<\n\x0f\x65xplain_metrics\x18\t \x01(\x0b\x32#.google.datastore.v1.ExplainMetrics\"\x83\x03\n\x1aRunAggregationQueryRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12\x36\n\x0cpartition_id\x18\x02 \x01(\x0b\x32 .google.datastore.v1.PartitionId\x12\x36\n\x0cread_options\x18\x01 \x01(\x0b\x32 .google.datastore.v1.ReadOptions\x12\x42\n\x11\x61ggregation_query\x18\x03 \x01(\x0b\x32%.google.datastore.v1.AggregationQueryH\x00\x12\x32\n\tgql_query\x18\x07 \x01(\x0b\x32\x1d.google.datastore.v1.GqlQueryH\x00\x12\x41\n\x0f\x65xplain_options\x18\x0b \x01(\x0b\x32#.google.datastore.v1.ExplainOptionsB\x03\xe0\x41\x01\x42\x0c\n\nquery_type\"\xe2\x01\n\x1bRunAggregationQueryResponse\x12:\n\x05\x62\x61tch\x18\x01 \x01(\x0b\x32+.google.datastore.v1.AggregationResultBatch\x12\x34\n\x05query\x18\x02 \x01(\x0b\x32%.google.datastore.v1.AggregationQuery\x12\x13\n\x0btransaction\x18\x05 \x01(\x0c\x12<\n\x0f\x65xplain_metrics\x18\t \x01(\x0b\x32#.google.datastore.v1.ExplainMetrics\"\x8d\x01\n\x17\x42\x65ginTransactionRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12\x44\n\x13transaction_options\x18\n \x01(\x0b\x32\'.google.datastore.v1.TransactionOptions\"/\n\x18\x42\x65ginTransactionResponse\x12\x13\n\x0btransaction\x18\x01 \x01(\x0c\"Y\n\x0fRollbackRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12\x18\n\x0btransaction\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\"\x12\n\x10RollbackResponse\"\xe8\x02\n\rCommitRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12\x35\n\x04mode\x18\x05 \x01(\x0e\x32\'.google.datastore.v1.CommitRequest.Mode\x12\x15\n\x0btransaction\x18\x01 \x01(\x0cH\x00\x12I\n\x16single_use_transaction\x18\n \x01(\x0b\x32\'.google.datastore.v1.TransactionOptionsH\x00\x12\x30\n\tmutations\x18\x06 \x03(\x0b\x32\x1d.google.datastore.v1.Mutation\"F\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x11\n\rTRANSACTIONAL\x10\x01\x12\x15\n\x11NON_TRANSACTIONAL\x10\x02\x42\x16\n\x14transaction_selector\"\x97\x01\n\x0e\x43ommitResponse\x12=\n\x10mutation_results\x18\x03 \x03(\x0b\x32#.google.datastore.v1.MutationResult\x12\x15\n\rindex_updates\x18\x04 \x01(\x05\x12/\n\x0b\x63ommit_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"o\n\x12\x41llocateIdsRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12+\n\x04keys\x18\x01 \x03(\x0b\x32\x18.google.datastore.v1.KeyB\x03\xe0\x41\x02\"=\n\x13\x41llocateIdsResponse\x12&\n\x04keys\x18\x01 \x03(\x0b\x32\x18.google.datastore.v1.Key\"n\n\x11ReserveIdsRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12+\n\x04keys\x18\x01 \x03(\x0b\x32\x18.google.datastore.v1.KeyB\x03\xe0\x41\x02\"\x14\n\x12ReserveIdsResponse\"\xf4\x02\n\x08Mutation\x12-\n\x06insert\x18\x04 \x01(\x0b\x32\x1b.google.datastore.v1.EntityH\x00\x12-\n\x06update\x18\x05 \x01(\x0b\x32\x1b.google.datastore.v1.EntityH\x00\x12-\n\x06upsert\x18\x06 \x01(\x0b\x32\x1b.google.datastore.v1.EntityH\x00\x12*\n\x06\x64\x65lete\x18\x07 \x01(\x0b\x32\x18.google.datastore.v1.KeyH\x00\x12\x16\n\x0c\x62\x61se_version\x18\x08 \x01(\x03H\x01\x12\x31\n\x0bupdate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x12\x38\n\rproperty_mask\x18\t \x01(\x0b\x32!.google.datastore.v1.PropertyMaskB\x0b\n\toperationB\x1d\n\x1b\x63onflict_detection_strategy\"\xc5\x01\n\x0eMutationResult\x12%\n\x03key\x18\x03 \x01(\x0b\x32\x18.google.datastore.v1.Key\x12\x0f\n\x07version\x18\x04 \x01(\x03\x12/\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11\x63onflict_detected\x18\x05 \x01(\x08\"\x1d\n\x0cPropertyMask\x12\r\n\x05paths\x18\x01 \x03(\t\"\xca\x02\n\x0bReadOptions\x12L\n\x10read_consistency\x18\x01 \x01(\x0e\x32\x30.google.datastore.v1.ReadOptions.ReadConsistencyH\x00\x12\x15\n\x0btransaction\x18\x02 \x01(\x0cH\x00\x12\x42\n\x0fnew_transaction\x18\x03 \x01(\x0b\x32\'.google.datastore.v1.TransactionOptionsH\x00\x12/\n\tread_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\"M\n\x0fReadConsistency\x12 \n\x1cREAD_CONSISTENCY_UNSPECIFIED\x10\x00\x12\n\n\x06STRONG\x10\x01\x12\x0c\n\x08\x45VENTUAL\x10\x02\x42\x12\n\x10\x63onsistency_type\"\x92\x02\n\x12TransactionOptions\x12G\n\nread_write\x18\x01 \x01(\x0b\x32\x31.google.datastore.v1.TransactionOptions.ReadWriteH\x00\x12\x45\n\tread_only\x18\x02 \x01(\x0b\x32\x30.google.datastore.v1.TransactionOptions.ReadOnlyH\x00\x1a)\n\tReadWrite\x12\x1c\n\x14previous_transaction\x18\x01 \x01(\x0c\x1a\x39\n\x08ReadOnly\x12-\n\tread_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\n\x04mode2\xe1\r\n\tDatastore\x12\xc0\x01\n\x06Lookup\x12\".google.datastore.v1.LookupRequest\x1a#.google.datastore.v1.LookupResponse\"m\xda\x41\x1cproject_id,read_options,keys\x82\xd3\xe4\x93\x02%\" /v1/projects/{project_id}:lookup:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xa9\x01\n\x08RunQuery\x12$.google.datastore.v1.RunQueryRequest\x1a%.google.datastore.v1.RunQueryResponse\"P\x82\xd3\xe4\x93\x02\'\"\"/v1/projects/{project_id}:runQuery:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xd5\x01\n\x13RunAggregationQuery\x12/.google.datastore.v1.RunAggregationQueryRequest\x1a\x30.google.datastore.v1.RunAggregationQueryResponse\"[\x82\xd3\xe4\x93\x02\x32\"-/v1/projects/{project_id}:runAggregationQuery:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xd6\x01\n\x10\x42\x65ginTransaction\x12,.google.datastore.v1.BeginTransactionRequest\x1a-.google.datastore.v1.BeginTransactionResponse\"e\xda\x41\nproject_id\x82\xd3\xe4\x93\x02/\"*/v1/projects/{project_id}:beginTransaction:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xe6\x01\n\x06\x43ommit\x12\".google.datastore.v1.CommitRequest\x1a#.google.datastore.v1.CommitResponse\"\x92\x01\xda\x41%project_id,mode,transaction,mutations\xda\x41\x19project_id,mode,mutations\x82\xd3\xe4\x93\x02%\" /v1/projects/{project_id}:commit:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xc2\x01\n\x08Rollback\x12$.google.datastore.v1.RollbackRequest\x1a%.google.datastore.v1.RollbackResponse\"i\xda\x41\x16project_id,transaction\x82\xd3\xe4\x93\x02\'\"\"/v1/projects/{project_id}:rollback:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xc7\x01\n\x0b\x41llocateIds\x12\'.google.datastore.v1.AllocateIdsRequest\x1a(.google.datastore.v1.AllocateIdsResponse\"e\xda\x41\x0fproject_id,keys\x82\xd3\xe4\x93\x02*\"%/v1/projects/{project_id}:allocateIds:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xc3\x01\n\nReserveIds\x12&.google.datastore.v1.ReserveIdsRequest\x1a\'.google.datastore.v1.ReserveIdsResponse\"d\xda\x41\x0fproject_id,keys\x82\xd3\xe4\x93\x02)\"$/v1/projects/{project_id}:reserveIds:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x1av\xca\x41\x18\x64\x61tastore.googleapis.com\xd2\x41Xhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/datastoreB\xbf\x01\n\x17\x63om.google.datastore.v1B\x0e\x44\x61tastoreProtoP\x01Z;cloud.google.com/go/datastore/apiv1/datastorepb;datastorepb\xaa\x02\x19Google.Cloud.Datastore.V1\xca\x02\x19Google\\Cloud\\Datastore\\V1\xea\x02\x1cGoogle::Cloud::Datastore::V1b\x06proto3"
18
+ descriptor_data = "\n#google/datastore/v1/datastore.proto\x12\x13google.datastore.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x18google/api/routing.proto\x1a,google/datastore/v1/aggregation_result.proto\x1a google/datastore/v1/entity.proto\x1a\x1fgoogle/datastore/v1/query.proto\x1a\'google/datastore/v1/query_profile.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xdc\x01\n\rLookupRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12\x36\n\x0cread_options\x18\x01 \x01(\x0b\x32 .google.datastore.v1.ReadOptions\x12+\n\x04keys\x18\x03 \x03(\x0b\x32\x18.google.datastore.v1.KeyB\x03\xe0\x41\x02\x12\x38\n\rproperty_mask\x18\x05 \x01(\x0b\x32!.google.datastore.v1.PropertyMask\"\xe6\x01\n\x0eLookupResponse\x12\x30\n\x05\x66ound\x18\x01 \x03(\x0b\x32!.google.datastore.v1.EntityResult\x12\x32\n\x07missing\x18\x02 \x03(\x0b\x32!.google.datastore.v1.EntityResult\x12*\n\x08\x64\x65\x66\x65rred\x18\x03 \x03(\x0b\x32\x18.google.datastore.v1.Key\x12\x13\n\x0btransaction\x18\x05 \x01(\x0c\x12-\n\tread_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x9b\x03\n\x0fRunQueryRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12\x36\n\x0cpartition_id\x18\x02 \x01(\x0b\x32 .google.datastore.v1.PartitionId\x12\x36\n\x0cread_options\x18\x01 \x01(\x0b\x32 .google.datastore.v1.ReadOptions\x12+\n\x05query\x18\x03 \x01(\x0b\x32\x1a.google.datastore.v1.QueryH\x00\x12\x32\n\tgql_query\x18\x07 \x01(\x0b\x32\x1d.google.datastore.v1.GqlQueryH\x00\x12\x38\n\rproperty_mask\x18\n \x01(\x0b\x32!.google.datastore.v1.PropertyMask\x12\x41\n\x0f\x65xplain_options\x18\x0c \x01(\x0b\x32#.google.datastore.v1.ExplainOptionsB\x03\xe0\x41\x01\x42\x0c\n\nquery_type\"\xc6\x01\n\x10RunQueryResponse\x12\x34\n\x05\x62\x61tch\x18\x01 \x01(\x0b\x32%.google.datastore.v1.QueryResultBatch\x12)\n\x05query\x18\x02 \x01(\x0b\x32\x1a.google.datastore.v1.Query\x12\x13\n\x0btransaction\x18\x05 \x01(\x0c\x12<\n\x0f\x65xplain_metrics\x18\t \x01(\x0b\x32#.google.datastore.v1.ExplainMetrics\"\x83\x03\n\x1aRunAggregationQueryRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12\x36\n\x0cpartition_id\x18\x02 \x01(\x0b\x32 .google.datastore.v1.PartitionId\x12\x36\n\x0cread_options\x18\x01 \x01(\x0b\x32 .google.datastore.v1.ReadOptions\x12\x42\n\x11\x61ggregation_query\x18\x03 \x01(\x0b\x32%.google.datastore.v1.AggregationQueryH\x00\x12\x32\n\tgql_query\x18\x07 \x01(\x0b\x32\x1d.google.datastore.v1.GqlQueryH\x00\x12\x41\n\x0f\x65xplain_options\x18\x0b \x01(\x0b\x32#.google.datastore.v1.ExplainOptionsB\x03\xe0\x41\x01\x42\x0c\n\nquery_type\"\xe2\x01\n\x1bRunAggregationQueryResponse\x12:\n\x05\x62\x61tch\x18\x01 \x01(\x0b\x32+.google.datastore.v1.AggregationResultBatch\x12\x34\n\x05query\x18\x02 \x01(\x0b\x32%.google.datastore.v1.AggregationQuery\x12\x13\n\x0btransaction\x18\x05 \x01(\x0c\x12<\n\x0f\x65xplain_metrics\x18\t \x01(\x0b\x32#.google.datastore.v1.ExplainMetrics\"\x8d\x01\n\x17\x42\x65ginTransactionRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12\x44\n\x13transaction_options\x18\n \x01(\x0b\x32\'.google.datastore.v1.TransactionOptions\"/\n\x18\x42\x65ginTransactionResponse\x12\x13\n\x0btransaction\x18\x01 \x01(\x0c\"Y\n\x0fRollbackRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12\x18\n\x0btransaction\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\"\x12\n\x10RollbackResponse\"\xe8\x02\n\rCommitRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12\x35\n\x04mode\x18\x05 \x01(\x0e\x32\'.google.datastore.v1.CommitRequest.Mode\x12\x15\n\x0btransaction\x18\x01 \x01(\x0cH\x00\x12I\n\x16single_use_transaction\x18\n \x01(\x0b\x32\'.google.datastore.v1.TransactionOptionsH\x00\x12\x30\n\tmutations\x18\x06 \x03(\x0b\x32\x1d.google.datastore.v1.Mutation\"F\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x11\n\rTRANSACTIONAL\x10\x01\x12\x15\n\x11NON_TRANSACTIONAL\x10\x02\x42\x16\n\x14transaction_selector\"\x97\x01\n\x0e\x43ommitResponse\x12=\n\x10mutation_results\x18\x03 \x03(\x0b\x32#.google.datastore.v1.MutationResult\x12\x15\n\rindex_updates\x18\x04 \x01(\x05\x12/\n\x0b\x63ommit_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"o\n\x12\x41llocateIdsRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12+\n\x04keys\x18\x01 \x03(\x0b\x32\x18.google.datastore.v1.KeyB\x03\xe0\x41\x02\"=\n\x13\x41llocateIdsResponse\x12&\n\x04keys\x18\x01 \x03(\x0b\x32\x18.google.datastore.v1.Key\"n\n\x11ReserveIdsRequest\x12\x17\n\nproject_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x61tabase_id\x18\t \x01(\t\x12+\n\x04keys\x18\x01 \x03(\x0b\x32\x18.google.datastore.v1.KeyB\x03\xe0\x41\x02\"\x14\n\x12ReserveIdsResponse\"\xf2\x04\n\x08Mutation\x12-\n\x06insert\x18\x04 \x01(\x0b\x32\x1b.google.datastore.v1.EntityH\x00\x12-\n\x06update\x18\x05 \x01(\x0b\x32\x1b.google.datastore.v1.EntityH\x00\x12-\n\x06upsert\x18\x06 \x01(\x0b\x32\x1b.google.datastore.v1.EntityH\x00\x12*\n\x06\x64\x65lete\x18\x07 \x01(\x0b\x32\x18.google.datastore.v1.KeyH\x00\x12\x16\n\x0c\x62\x61se_version\x18\x08 \x01(\x03H\x01\x12\x31\n\x0bupdate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x12^\n\x1c\x63onflict_resolution_strategy\x18\n \x01(\x0e\x32\x38.google.datastore.v1.Mutation.ConflictResolutionStrategy\x12\x38\n\rproperty_mask\x18\t \x01(\x0b\x32!.google.datastore.v1.PropertyMask\x12H\n\x13property_transforms\x18\x0c \x03(\x0b\x32&.google.datastore.v1.PropertyTransformB\x03\xe0\x41\x01\"R\n\x1a\x43onflictResolutionStrategy\x12\x18\n\x14STRATEGY_UNSPECIFIED\x10\x00\x12\x10\n\x0cSERVER_VALUE\x10\x01\x12\x08\n\x04\x46\x41IL\x10\x03\x42\x0b\n\toperationB\x1d\n\x1b\x63onflict_detection_strategy\"\xe3\x03\n\x11PropertyTransform\x12\x15\n\x08property\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12Q\n\x13set_to_server_value\x18\x02 \x01(\x0e\x32\x32.google.datastore.v1.PropertyTransform.ServerValueH\x00\x12/\n\tincrement\x18\x03 \x01(\x0b\x32\x1a.google.datastore.v1.ValueH\x00\x12-\n\x07maximum\x18\x04 \x01(\x0b\x32\x1a.google.datastore.v1.ValueH\x00\x12-\n\x07minimum\x18\x05 \x01(\x0b\x32\x1a.google.datastore.v1.ValueH\x00\x12\x42\n\x17\x61ppend_missing_elements\x18\x06 \x01(\x0b\x32\x1f.google.datastore.v1.ArrayValueH\x00\x12@\n\x15remove_all_from_array\x18\x07 \x01(\x0b\x32\x1f.google.datastore.v1.ArrayValueH\x00\"=\n\x0bServerValue\x12\x1c\n\x18SERVER_VALUE_UNSPECIFIED\x10\x00\x12\x10\n\x0cREQUEST_TIME\x10\x01\x42\x10\n\x0etransform_type\"\xfc\x01\n\x0eMutationResult\x12%\n\x03key\x18\x03 \x01(\x0b\x32\x18.google.datastore.v1.Key\x12\x0f\n\x07version\x18\x04 \x01(\x03\x12/\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11\x63onflict_detected\x18\x05 \x01(\x08\x12\x35\n\x11transform_results\x18\x08 \x03(\x0b\x32\x1a.google.datastore.v1.Value\"\x1d\n\x0cPropertyMask\x12\r\n\x05paths\x18\x01 \x03(\t\"\xca\x02\n\x0bReadOptions\x12L\n\x10read_consistency\x18\x01 \x01(\x0e\x32\x30.google.datastore.v1.ReadOptions.ReadConsistencyH\x00\x12\x15\n\x0btransaction\x18\x02 \x01(\x0cH\x00\x12\x42\n\x0fnew_transaction\x18\x03 \x01(\x0b\x32\'.google.datastore.v1.TransactionOptionsH\x00\x12/\n\tread_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\"M\n\x0fReadConsistency\x12 \n\x1cREAD_CONSISTENCY_UNSPECIFIED\x10\x00\x12\n\n\x06STRONG\x10\x01\x12\x0c\n\x08\x45VENTUAL\x10\x02\x42\x12\n\x10\x63onsistency_type\"\x92\x02\n\x12TransactionOptions\x12G\n\nread_write\x18\x01 \x01(\x0b\x32\x31.google.datastore.v1.TransactionOptions.ReadWriteH\x00\x12\x45\n\tread_only\x18\x02 \x01(\x0b\x32\x30.google.datastore.v1.TransactionOptions.ReadOnlyH\x00\x1a)\n\tReadWrite\x12\x1c\n\x14previous_transaction\x18\x01 \x01(\x0c\x1a\x39\n\x08ReadOnly\x12-\n\tread_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\n\x04mode2\xe1\r\n\tDatastore\x12\xc0\x01\n\x06Lookup\x12\".google.datastore.v1.LookupRequest\x1a#.google.datastore.v1.LookupResponse\"m\xda\x41\x1cproject_id,read_options,keys\x82\xd3\xe4\x93\x02%\" /v1/projects/{project_id}:lookup:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xa9\x01\n\x08RunQuery\x12$.google.datastore.v1.RunQueryRequest\x1a%.google.datastore.v1.RunQueryResponse\"P\x82\xd3\xe4\x93\x02\'\"\"/v1/projects/{project_id}:runQuery:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xd5\x01\n\x13RunAggregationQuery\x12/.google.datastore.v1.RunAggregationQueryRequest\x1a\x30.google.datastore.v1.RunAggregationQueryResponse\"[\x82\xd3\xe4\x93\x02\x32\"-/v1/projects/{project_id}:runAggregationQuery:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xd6\x01\n\x10\x42\x65ginTransaction\x12,.google.datastore.v1.BeginTransactionRequest\x1a-.google.datastore.v1.BeginTransactionResponse\"e\xda\x41\nproject_id\x82\xd3\xe4\x93\x02/\"*/v1/projects/{project_id}:beginTransaction:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xe6\x01\n\x06\x43ommit\x12\".google.datastore.v1.CommitRequest\x1a#.google.datastore.v1.CommitResponse\"\x92\x01\xda\x41%project_id,mode,transaction,mutations\xda\x41\x19project_id,mode,mutations\x82\xd3\xe4\x93\x02%\" /v1/projects/{project_id}:commit:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xc2\x01\n\x08Rollback\x12$.google.datastore.v1.RollbackRequest\x1a%.google.datastore.v1.RollbackResponse\"i\xda\x41\x16project_id,transaction\x82\xd3\xe4\x93\x02\'\"\"/v1/projects/{project_id}:rollback:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xc7\x01\n\x0b\x41llocateIds\x12\'.google.datastore.v1.AllocateIdsRequest\x1a(.google.datastore.v1.AllocateIdsResponse\"e\xda\x41\x0fproject_id,keys\x82\xd3\xe4\x93\x02*\"%/v1/projects/{project_id}:allocateIds:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x12\xc3\x01\n\nReserveIds\x12&.google.datastore.v1.ReserveIdsRequest\x1a\'.google.datastore.v1.ReserveIdsResponse\"d\xda\x41\x0fproject_id,keys\x82\xd3\xe4\x93\x02)\"$/v1/projects/{project_id}:reserveIds:\x01*\x8a\xd3\xe4\x93\x02\x1d\x12\x0c\n\nproject_id\x12\r\n\x0b\x64\x61tabase_id\x1av\xca\x41\x18\x64\x61tastore.googleapis.com\xd2\x41Xhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/datastoreB\xbf\x01\n\x17\x63om.google.datastore.v1B\x0e\x44\x61tastoreProtoP\x01Z;cloud.google.com/go/datastore/apiv1/datastorepb;datastorepb\xaa\x02\x19Google.Cloud.Datastore.V1\xca\x02\x19Google\\Cloud\\Datastore\\V1\xea\x02\x1cGoogle::Cloud::Datastore::V1b\x06proto3"
19
19
 
20
20
  pool = Google::Protobuf::DescriptorPool.generated_pool
21
21
 
@@ -68,6 +68,9 @@ module Google
68
68
  ReserveIdsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.ReserveIdsRequest").msgclass
69
69
  ReserveIdsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.ReserveIdsResponse").msgclass
70
70
  Mutation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.Mutation").msgclass
71
+ Mutation::ConflictResolutionStrategy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.Mutation.ConflictResolutionStrategy").enummodule
72
+ PropertyTransform = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.PropertyTransform").msgclass
73
+ PropertyTransform::ServerValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.PropertyTransform.ServerValue").enummodule
71
74
  MutationResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.MutationResult").msgclass
72
75
  PropertyMask = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.PropertyMask").msgclass
73
76
  ReadOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.ReadOptions").msgclass
@@ -10,7 +10,7 @@ require 'google/protobuf/timestamp_pb'
10
10
  require 'google/protobuf/wrappers_pb'
11
11
 
12
12
 
13
- descriptor_data = "\n\x1fgoogle/datastore/v1/query.proto\x12\x13google.datastore.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a google/datastore/v1/entity.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x91\x02\n\x0c\x45ntityResult\x12+\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1b.google.datastore.v1.Entity\x12\x0f\n\x07version\x18\x04 \x01(\x03\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06\x63ursor\x18\x03 \x01(\x0c\"Q\n\nResultType\x12\x1b\n\x17RESULT_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46ULL\x10\x01\x12\x0e\n\nPROJECTION\x10\x02\x12\x0c\n\x08KEY_ONLY\x10\x03\"\xf2\x02\n\x05Query\x12\x33\n\nprojection\x18\x02 \x03(\x0b\x32\x1f.google.datastore.v1.Projection\x12\x31\n\x04kind\x18\x03 \x03(\x0b\x32#.google.datastore.v1.KindExpression\x12+\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x1b.google.datastore.v1.Filter\x12\x31\n\x05order\x18\x05 \x03(\x0b\x32\".google.datastore.v1.PropertyOrder\x12;\n\x0b\x64istinct_on\x18\x06 \x03(\x0b\x32&.google.datastore.v1.PropertyReference\x12\x14\n\x0cstart_cursor\x18\x07 \x01(\x0c\x12\x12\n\nend_cursor\x18\x08 \x01(\x0c\x12\x0e\n\x06offset\x18\n \x01(\x05\x12*\n\x05limit\x18\x0c \x01(\x0b\x32\x1b.google.protobuf.Int32Value\"\xe4\x04\n\x10\x41ggregationQuery\x12\x32\n\x0cnested_query\x18\x01 \x01(\x0b\x32\x1a.google.datastore.v1.QueryH\x00\x12L\n\x0c\x61ggregations\x18\x03 \x03(\x0b\x32\x31.google.datastore.v1.AggregationQuery.AggregationB\x03\xe0\x41\x01\x1a\xbf\x03\n\x0b\x41ggregation\x12H\n\x05\x63ount\x18\x01 \x01(\x0b\x32\x37.google.datastore.v1.AggregationQuery.Aggregation.CountH\x00\x12\x44\n\x03sum\x18\x02 \x01(\x0b\x32\x35.google.datastore.v1.AggregationQuery.Aggregation.SumH\x00\x12\x44\n\x03\x61vg\x18\x03 \x01(\x0b\x32\x35.google.datastore.v1.AggregationQuery.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\x1a?\n\x03Sum\x12\x38\n\x08property\x18\x01 \x01(\x0b\x32&.google.datastore.v1.PropertyReference\x1a?\n\x03\x41vg\x12\x38\n\x08property\x18\x01 \x01(\x0b\x32&.google.datastore.v1.PropertyReferenceB\n\n\x08operatorB\x0c\n\nquery_type\"\x1e\n\x0eKindExpression\x12\x0c\n\x04name\x18\x01 \x01(\t\"!\n\x11PropertyReference\x12\x0c\n\x04name\x18\x02 \x01(\t\"F\n\nProjection\x12\x38\n\x08property\x18\x01 \x01(\x0b\x32&.google.datastore.v1.PropertyReference\"\xd1\x01\n\rPropertyOrder\x12\x38\n\x08property\x18\x01 \x01(\x0b\x32&.google.datastore.v1.PropertyReference\x12?\n\tdirection\x18\x02 \x01(\x0e\x32,.google.datastore.v1.PropertyOrder.Direction\"E\n\tDirection\x12\x19\n\x15\x44IRECTION_UNSPECIFIED\x10\x00\x12\r\n\tASCENDING\x10\x01\x12\x0e\n\nDESCENDING\x10\x02\"\x99\x01\n\x06\x46ilter\x12@\n\x10\x63omposite_filter\x18\x01 \x01(\x0b\x32$.google.datastore.v1.CompositeFilterH\x00\x12>\n\x0fproperty_filter\x18\x02 \x01(\x0b\x32#.google.datastore.v1.PropertyFilterH\x00\x42\r\n\x0b\x66ilter_type\"\xb1\x01\n\x0f\x43ompositeFilter\x12\x39\n\x02op\x18\x01 \x01(\x0e\x32-.google.datastore.v1.CompositeFilter.Operator\x12,\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x1b.google.datastore.v1.Filter\"5\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41ND\x10\x01\x12\x06\n\x02OR\x10\x02\"\xea\x02\n\x0ePropertyFilter\x12\x38\n\x08property\x18\x01 \x01(\x0b\x32&.google.datastore.v1.PropertyReference\x12\x38\n\x02op\x18\x02 \x01(\x0e\x32,.google.datastore.v1.PropertyFilter.Operator\x12)\n\x05value\x18\x03 \x01(\x0b\x32\x1a.google.datastore.v1.Value\"\xb8\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\x06\n\x02IN\x10\x06\x12\r\n\tNOT_EQUAL\x10\t\x12\x10\n\x0cHAS_ANCESTOR\x10\x0b\x12\n\n\x06NOT_IN\x10\r\"\xa5\x02\n\x08GqlQuery\x12\x14\n\x0cquery_string\x18\x01 \x01(\t\x12\x16\n\x0e\x61llow_literals\x18\x02 \x01(\x08\x12H\n\x0enamed_bindings\x18\x05 \x03(\x0b\x32\x30.google.datastore.v1.GqlQuery.NamedBindingsEntry\x12\x43\n\x13positional_bindings\x18\x04 \x03(\x0b\x32&.google.datastore.v1.GqlQueryParameter\x1a\\\n\x12NamedBindingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.google.datastore.v1.GqlQueryParameter:\x02\x38\x01\"d\n\x11GqlQueryParameter\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.datastore.v1.ValueH\x00\x12\x10\n\x06\x63ursor\x18\x03 \x01(\x0cH\x00\x42\x10\n\x0eparameter_type\"\x8d\x04\n\x10QueryResultBatch\x12\x17\n\x0fskipped_results\x18\x06 \x01(\x05\x12\x16\n\x0eskipped_cursor\x18\x03 \x01(\x0c\x12H\n\x12\x65ntity_result_type\x18\x01 \x01(\x0e\x32,.google.datastore.v1.EntityResult.ResultType\x12\x39\n\x0e\x65ntity_results\x18\x02 \x03(\x0b\x32!.google.datastore.v1.EntityResult\x12\x12\n\nend_cursor\x18\x04 \x01(\x0c\x12K\n\x0cmore_results\x18\x05 \x01(\x0e\x32\x35.google.datastore.v1.QueryResultBatch.MoreResultsType\x12\x18\n\x10snapshot_version\x18\x07 \x01(\x03\x12-\n\tread_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x98\x01\n\x0fMoreResultsType\x12!\n\x1dMORE_RESULTS_TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cNOT_FINISHED\x10\x01\x12\x1c\n\x18MORE_RESULTS_AFTER_LIMIT\x10\x02\x12\x1d\n\x19MORE_RESULTS_AFTER_CURSOR\x10\x04\x12\x13\n\x0fNO_MORE_RESULTS\x10\x03\x42\xbb\x01\n\x17\x63om.google.datastore.v1B\nQueryProtoP\x01Z;cloud.google.com/go/datastore/apiv1/datastorepb;datastorepb\xaa\x02\x19Google.Cloud.Datastore.V1\xca\x02\x19Google\\Cloud\\Datastore\\V1\xea\x02\x1cGoogle::Cloud::Datastore::V1b\x06proto3"
13
+ descriptor_data = "\n\x1fgoogle/datastore/v1/query.proto\x12\x13google.datastore.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a google/datastore/v1/entity.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x91\x02\n\x0c\x45ntityResult\x12+\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1b.google.datastore.v1.Entity\x12\x0f\n\x07version\x18\x04 \x01(\x03\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06\x63ursor\x18\x03 \x01(\x0c\"Q\n\nResultType\x12\x1b\n\x17RESULT_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46ULL\x10\x01\x12\x0e\n\nPROJECTION\x10\x02\x12\x0c\n\x08KEY_ONLY\x10\x03\"\xaf\x03\n\x05Query\x12\x33\n\nprojection\x18\x02 \x03(\x0b\x32\x1f.google.datastore.v1.Projection\x12\x31\n\x04kind\x18\x03 \x03(\x0b\x32#.google.datastore.v1.KindExpression\x12+\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x1b.google.datastore.v1.Filter\x12\x31\n\x05order\x18\x05 \x03(\x0b\x32\".google.datastore.v1.PropertyOrder\x12;\n\x0b\x64istinct_on\x18\x06 \x03(\x0b\x32&.google.datastore.v1.PropertyReference\x12\x14\n\x0cstart_cursor\x18\x07 \x01(\x0c\x12\x12\n\nend_cursor\x18\x08 \x01(\x0c\x12\x0e\n\x06offset\x18\n \x01(\x05\x12*\n\x05limit\x18\x0c \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12;\n\x0c\x66ind_nearest\x18\r \x01(\x0b\x32 .google.datastore.v1.FindNearestB\x03\xe0\x41\x01\"\xe4\x04\n\x10\x41ggregationQuery\x12\x32\n\x0cnested_query\x18\x01 \x01(\x0b\x32\x1a.google.datastore.v1.QueryH\x00\x12L\n\x0c\x61ggregations\x18\x03 \x03(\x0b\x32\x31.google.datastore.v1.AggregationQuery.AggregationB\x03\xe0\x41\x01\x1a\xbf\x03\n\x0b\x41ggregation\x12H\n\x05\x63ount\x18\x01 \x01(\x0b\x32\x37.google.datastore.v1.AggregationQuery.Aggregation.CountH\x00\x12\x44\n\x03sum\x18\x02 \x01(\x0b\x32\x35.google.datastore.v1.AggregationQuery.Aggregation.SumH\x00\x12\x44\n\x03\x61vg\x18\x03 \x01(\x0b\x32\x35.google.datastore.v1.AggregationQuery.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\x1a?\n\x03Sum\x12\x38\n\x08property\x18\x01 \x01(\x0b\x32&.google.datastore.v1.PropertyReference\x1a?\n\x03\x41vg\x12\x38\n\x08property\x18\x01 \x01(\x0b\x32&.google.datastore.v1.PropertyReferenceB\n\n\x08operatorB\x0c\n\nquery_type\"\x1e\n\x0eKindExpression\x12\x0c\n\x04name\x18\x01 \x01(\t\"!\n\x11PropertyReference\x12\x0c\n\x04name\x18\x02 \x01(\t\"F\n\nProjection\x12\x38\n\x08property\x18\x01 \x01(\x0b\x32&.google.datastore.v1.PropertyReference\"\xd1\x01\n\rPropertyOrder\x12\x38\n\x08property\x18\x01 \x01(\x0b\x32&.google.datastore.v1.PropertyReference\x12?\n\tdirection\x18\x02 \x01(\x0e\x32,.google.datastore.v1.PropertyOrder.Direction\"E\n\tDirection\x12\x19\n\x15\x44IRECTION_UNSPECIFIED\x10\x00\x12\r\n\tASCENDING\x10\x01\x12\x0e\n\nDESCENDING\x10\x02\"\x99\x01\n\x06\x46ilter\x12@\n\x10\x63omposite_filter\x18\x01 \x01(\x0b\x32$.google.datastore.v1.CompositeFilterH\x00\x12>\n\x0fproperty_filter\x18\x02 \x01(\x0b\x32#.google.datastore.v1.PropertyFilterH\x00\x42\r\n\x0b\x66ilter_type\"\xb1\x01\n\x0f\x43ompositeFilter\x12\x39\n\x02op\x18\x01 \x01(\x0e\x32-.google.datastore.v1.CompositeFilter.Operator\x12,\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x1b.google.datastore.v1.Filter\"5\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41ND\x10\x01\x12\x06\n\x02OR\x10\x02\"\xea\x02\n\x0ePropertyFilter\x12\x38\n\x08property\x18\x01 \x01(\x0b\x32&.google.datastore.v1.PropertyReference\x12\x38\n\x02op\x18\x02 \x01(\x0e\x32,.google.datastore.v1.PropertyFilter.Operator\x12)\n\x05value\x18\x03 \x01(\x0b\x32\x1a.google.datastore.v1.Value\"\xb8\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\x06\n\x02IN\x10\x06\x12\r\n\tNOT_EQUAL\x10\t\x12\x10\n\x0cHAS_ANCESTOR\x10\x0b\x12\n\n\x06NOT_IN\x10\r\"\xd3\x03\n\x0b\x46indNearest\x12\x44\n\x0fvector_property\x18\x01 \x01(\x0b\x32&.google.datastore.v1.PropertyReferenceB\x03\xe0\x41\x02\x12\x35\n\x0cquery_vector\x18\x02 \x01(\x0b\x32\x1a.google.datastore.v1.ValueB\x03\xe0\x41\x02\x12O\n\x10\x64istance_measure\x18\x03 \x01(\x0e\x32\x30.google.datastore.v1.FindNearest.DistanceMeasureB\x03\xe0\x41\x02\x12/\n\x05limit\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x03\xe0\x41\x02\x12%\n\x18\x64istance_result_property\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\"\xa5\x02\n\x08GqlQuery\x12\x14\n\x0cquery_string\x18\x01 \x01(\t\x12\x16\n\x0e\x61llow_literals\x18\x02 \x01(\x08\x12H\n\x0enamed_bindings\x18\x05 \x03(\x0b\x32\x30.google.datastore.v1.GqlQuery.NamedBindingsEntry\x12\x43\n\x13positional_bindings\x18\x04 \x03(\x0b\x32&.google.datastore.v1.GqlQueryParameter\x1a\\\n\x12NamedBindingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.google.datastore.v1.GqlQueryParameter:\x02\x38\x01\"d\n\x11GqlQueryParameter\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1a.google.datastore.v1.ValueH\x00\x12\x10\n\x06\x63ursor\x18\x03 \x01(\x0cH\x00\x42\x10\n\x0eparameter_type\"\x8d\x04\n\x10QueryResultBatch\x12\x17\n\x0fskipped_results\x18\x06 \x01(\x05\x12\x16\n\x0eskipped_cursor\x18\x03 \x01(\x0c\x12H\n\x12\x65ntity_result_type\x18\x01 \x01(\x0e\x32,.google.datastore.v1.EntityResult.ResultType\x12\x39\n\x0e\x65ntity_results\x18\x02 \x03(\x0b\x32!.google.datastore.v1.EntityResult\x12\x12\n\nend_cursor\x18\x04 \x01(\x0c\x12K\n\x0cmore_results\x18\x05 \x01(\x0e\x32\x35.google.datastore.v1.QueryResultBatch.MoreResultsType\x12\x18\n\x10snapshot_version\x18\x07 \x01(\x03\x12-\n\tread_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x98\x01\n\x0fMoreResultsType\x12!\n\x1dMORE_RESULTS_TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cNOT_FINISHED\x10\x01\x12\x1c\n\x18MORE_RESULTS_AFTER_LIMIT\x10\x02\x12\x1d\n\x19MORE_RESULTS_AFTER_CURSOR\x10\x04\x12\x13\n\x0fNO_MORE_RESULTS\x10\x03\x42\xbb\x01\n\x17\x63om.google.datastore.v1B\nQueryProtoP\x01Z;cloud.google.com/go/datastore/apiv1/datastorepb;datastorepb\xaa\x02\x19Google.Cloud.Datastore.V1\xca\x02\x19Google\\Cloud\\Datastore\\V1\xea\x02\x1cGoogle::Cloud::Datastore::V1b\x06proto3"
14
14
 
15
15
  pool = Google::Protobuf::DescriptorPool.generated_pool
16
16
 
@@ -61,6 +61,8 @@ module Google
61
61
  CompositeFilter::Operator = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.CompositeFilter.Operator").enummodule
62
62
  PropertyFilter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.PropertyFilter").msgclass
63
63
  PropertyFilter::Operator = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.PropertyFilter.Operator").enummodule
64
+ FindNearest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.FindNearest").msgclass
65
+ FindNearest::DistanceMeasure = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.FindNearest.DistanceMeasure").enummodule
64
66
  GqlQuery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.GqlQuery").msgclass
65
67
  GqlQueryParameter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.GqlQueryParameter").msgclass
66
68
  QueryResultBatch = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.datastore.v1.QueryResultBatch").msgclass
@@ -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
@@ -212,6 +215,12 @@ module Google
212
215
  # enabled. By default, asynchronous REST clients will not be generated.
213
216
  # This feature will be enabled by default 1 month after launching the
214
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.
215
224
  class ExperimentalFeatures
216
225
  include ::Google::Protobuf::MessageExts
217
226
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -297,9 +306,28 @@ module Google
297
306
  # @!attribute [rw] common
298
307
  # @return [::Google::Api::CommonLanguageSettings]
299
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
300
319
  class GoSettings
301
320
  include ::Google::Protobuf::MessageExts
302
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
303
331
  end
304
332
 
305
333
  # Describes the generator configuration for a method.
@@ -375,6 +403,17 @@ module Google
375
403
  end
376
404
  end
377
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
+
378
417
  # The organization for which the client libraries are being published.
379
418
  # Affects the url where generated docs are published, etc.
380
419
  module ClientLibraryOrganization
@@ -429,6 +429,11 @@ module Google
429
429
  # The update time of the entity that this mutation is being applied
430
430
  # to. If this does not match the current update time on the server, the
431
431
  # mutation conflicts.
432
+ # @!attribute [rw] conflict_resolution_strategy
433
+ # @return [::Google::Cloud::Datastore::V1::Mutation::ConflictResolutionStrategy]
434
+ # The strategy to use when a conflict is detected. Defaults to
435
+ # `SERVER_VALUE`.
436
+ # If this is set, then `conflict_detection_strategy` must also be set.
432
437
  # @!attribute [rw] property_mask
433
438
  # @return [::Google::Cloud::Datastore::V1::PropertyMask]
434
439
  # The properties to write in this mutation.
@@ -439,9 +444,126 @@ module Google
439
444
  # If the entity already exists, only properties referenced in the mask are
440
445
  # updated, others are left untouched.
441
446
  # Properties referenced in the mask but not in the entity are deleted.
447
+ # @!attribute [rw] property_transforms
448
+ # @return [::Array<::Google::Cloud::Datastore::V1::PropertyTransform>]
449
+ # Optional. The transforms to perform on the entity.
450
+ #
451
+ # This field can be set only when the operation is `insert`, `update`,
452
+ # or `upsert`. If present, the transforms are be applied to the entity
453
+ # regardless of the property mask, in order, after the operation.
442
454
  class Mutation
443
455
  include ::Google::Protobuf::MessageExts
444
456
  extend ::Google::Protobuf::MessageExts::ClassMethods
457
+
458
+ # The possible ways to resolve a conflict detected in a mutation.
459
+ module ConflictResolutionStrategy
460
+ # Unspecified. Defaults to `SERVER_VALUE`.
461
+ STRATEGY_UNSPECIFIED = 0
462
+
463
+ # The server entity is kept.
464
+ SERVER_VALUE = 1
465
+
466
+ # The whole commit request fails.
467
+ FAIL = 3
468
+ end
469
+ end
470
+
471
+ # A transformation of an entity property.
472
+ # @!attribute [rw] property
473
+ # @return [::String]
474
+ # Optional. The name of the property.
475
+ #
476
+ # Property paths (a list of property names separated by dots (`.`)) may be
477
+ # used to refer to properties inside entity values. For example `foo.bar`
478
+ # means the property `bar` inside the entity property `foo`.
479
+ #
480
+ # If a property name contains a dot `.` or a backlslash `\`, then that name
481
+ # must be escaped.
482
+ # @!attribute [rw] set_to_server_value
483
+ # @return [::Google::Cloud::Datastore::V1::PropertyTransform::ServerValue]
484
+ # Sets the property to the given server value.
485
+ # @!attribute [rw] increment
486
+ # @return [::Google::Cloud::Datastore::V1::Value]
487
+ # Adds the given value to the property's current value.
488
+ #
489
+ # This must be an integer or a double value.
490
+ # If the property is not an integer or double, or if the property does not
491
+ # yet exist, the transformation will set the property to the given value.
492
+ # If either of the given value or the current property value are doubles,
493
+ # both values will be interpreted as doubles. Double arithmetic and
494
+ # representation of double values follows IEEE 754 semantics.
495
+ # If there is positive/negative integer overflow, the property is resolved
496
+ # to the largest magnitude positive/negative integer.
497
+ # @!attribute [rw] maximum
498
+ # @return [::Google::Cloud::Datastore::V1::Value]
499
+ # Sets the property to the maximum of its current value and the given
500
+ # value.
501
+ #
502
+ # This must be an integer or a double value.
503
+ # If the property is not an integer or double, or if the property does not
504
+ # yet exist, the transformation will set the property to the given value.
505
+ # If a maximum operation is applied where the property and the input value
506
+ # are of mixed types (that is - one is an integer and one is a double)
507
+ # the property takes on the type of the larger operand. If the operands are
508
+ # equivalent (e.g. 3 and 3.0), the property does not change.
509
+ # 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and
510
+ # zero input value is always the stored value.
511
+ # The maximum of any numeric value x and NaN is NaN.
512
+ # @!attribute [rw] minimum
513
+ # @return [::Google::Cloud::Datastore::V1::Value]
514
+ # Sets the property to the minimum of its current value and the given
515
+ # value.
516
+ #
517
+ # This must be an integer or a double value.
518
+ # If the property is not an integer or double, or if the property does not
519
+ # yet exist, the transformation will set the property to the input value.
520
+ # If a minimum operation is applied where the property and the input value
521
+ # are of mixed types (that is - one is an integer and one is a double)
522
+ # the property takes on the type of the smaller operand. If the operands
523
+ # are equivalent (e.g. 3 and 3.0), the property does not change. 0, 0.0,
524
+ # and -0.0 are all zero. The minimum of a zero stored value and zero input
525
+ # value is always the stored value. The minimum of any numeric value x and
526
+ # NaN is NaN.
527
+ # @!attribute [rw] append_missing_elements
528
+ # @return [::Google::Cloud::Datastore::V1::ArrayValue]
529
+ # Appends the given elements in order if they are not already present in
530
+ # the current property value.
531
+ # If the property is not an array, or if the property does not yet exist,
532
+ # it is first set to the empty array.
533
+ #
534
+ # Equivalent numbers of different types (e.g. 3L and 3.0) are
535
+ # considered equal when checking if a value is missing.
536
+ # NaN is equal to NaN, and the null value is equal to the null value.
537
+ # If the input contains multiple equivalent values, only the first will
538
+ # be considered.
539
+ #
540
+ # The corresponding transform result will be the null value.
541
+ # @!attribute [rw] remove_all_from_array
542
+ # @return [::Google::Cloud::Datastore::V1::ArrayValue]
543
+ # Removes all of the given elements from the array in the property.
544
+ # If the property is not an array, or if the property does not yet exist,
545
+ # it is set to the empty array.
546
+ #
547
+ # Equivalent numbers of different types (e.g. 3L and 3.0) are
548
+ # considered equal when deciding whether an element should be removed.
549
+ # NaN is equal to NaN, and the null value is equal to the null value.
550
+ # This will remove all equivalent values if there are duplicates.
551
+ #
552
+ # The corresponding transform result will be the null value.
553
+ class PropertyTransform
554
+ include ::Google::Protobuf::MessageExts
555
+ extend ::Google::Protobuf::MessageExts::ClassMethods
556
+
557
+ # A value that is calculated by the server.
558
+ module ServerValue
559
+ # Unspecified. This value must not be used.
560
+ SERVER_VALUE_UNSPECIFIED = 0
561
+
562
+ # The time at which the server processed the request, with millisecond
563
+ # precision. If used on multiple properties (same or different entities)
564
+ # in a transaction, all the properties will get the same server timestamp.
565
+ REQUEST_TIME = 1
566
+ end
445
567
  end
446
568
 
447
569
  # The result of applying a mutation.
@@ -469,6 +591,11 @@ module Google
469
591
  # @return [::Boolean]
470
592
  # Whether a conflict was detected for this mutation. Always false when a
471
593
  # conflict detection strategy field is not set in the mutation.
594
+ # @!attribute [rw] transform_results
595
+ # @return [::Array<::Google::Cloud::Datastore::V1::Value>]
596
+ # The results of applying each
597
+ # {::Google::Cloud::Datastore::V1::PropertyTransform PropertyTransform}, in the same
598
+ # order of the request.
472
599
  class MutationResult
473
600
  include ::Google::Protobuf::MessageExts
474
601
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -77,6 +77,15 @@ module Google
77
77
  end
78
78
 
79
79
  # A query for entities.
80
+ #
81
+ # The query stages are executed in the following order:
82
+ # 1. kind
83
+ # 2. filter
84
+ # 3. projection
85
+ # 4. order + start_cursor + end_cursor
86
+ # 5. offset
87
+ # 6. limit
88
+ # 7. find_nearest
80
89
  # @!attribute [rw] projection
81
90
  # @return [::Array<::Google::Cloud::Datastore::V1::Projection>]
82
91
  # The projection to return. Defaults to returning all properties.
@@ -122,6 +131,13 @@ module Google
122
131
  # constraints. Optional.
123
132
  # Unspecified is interpreted as no limit.
124
133
  # Must be >= 0 if specified.
134
+ # @!attribute [rw] find_nearest
135
+ # @return [::Google::Cloud::Datastore::V1::FindNearest]
136
+ # Optional. A potential Nearest Neighbors Search.
137
+ #
138
+ # Applies after all other filters and ordering.
139
+ #
140
+ # Finds the closest vector embeddings to the given query vector.
125
141
  class Query
126
142
  include ::Google::Protobuf::MessageExts
127
143
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -459,6 +475,71 @@ module Google
459
475
  end
460
476
  end
461
477
 
478
+ # Nearest Neighbors search config. The ordering provided by FindNearest
479
+ # supersedes the order_by stage. If multiple documents have the same vector
480
+ # distance, the returned document order is not guaranteed to be stable between
481
+ # queries.
482
+ # @!attribute [rw] vector_property
483
+ # @return [::Google::Cloud::Datastore::V1::PropertyReference]
484
+ # Required. An indexed vector property to search upon. Only documents which
485
+ # contain vectors whose dimensionality match the query_vector can be
486
+ # returned.
487
+ # @!attribute [rw] query_vector
488
+ # @return [::Google::Cloud::Datastore::V1::Value]
489
+ # Required. The query vector that we are searching on. Must be a vector of no
490
+ # more than 2048 dimensions.
491
+ # @!attribute [rw] distance_measure
492
+ # @return [::Google::Cloud::Datastore::V1::FindNearest::DistanceMeasure]
493
+ # Required. The Distance Measure to use, required.
494
+ # @!attribute [rw] limit
495
+ # @return [::Google::Protobuf::Int32Value]
496
+ # Required. The number of nearest neighbors to return. Must be a positive
497
+ # integer of no more than 100.
498
+ # @!attribute [rw] distance_result_property
499
+ # @return [::String]
500
+ # Optional. Optional name of the field to output the result of the vector
501
+ # distance calculation. Must conform to [entity
502
+ # property][google.datastore.v1.Entity.properties] limitations.
503
+ # @!attribute [rw] distance_threshold
504
+ # @return [::Google::Protobuf::DoubleValue]
505
+ # Optional. Option to specify a threshold for which no less similar documents
506
+ # will be returned. The behavior of the specified `distance_measure` will
507
+ # affect the meaning of the distance threshold. Since DOT_PRODUCT distances
508
+ # increase when the vectors are more similar, the comparison is inverted.
509
+ #
510
+ # For EUCLIDEAN, COSINE: WHERE distance <= distance_threshold
511
+ # For DOT_PRODUCT: WHERE distance >= distance_threshold
512
+ class FindNearest
513
+ include ::Google::Protobuf::MessageExts
514
+ extend ::Google::Protobuf::MessageExts::ClassMethods
515
+
516
+ # The distance measure to use when comparing vectors.
517
+ module DistanceMeasure
518
+ # Should not be set.
519
+ DISTANCE_MEASURE_UNSPECIFIED = 0
520
+
521
+ # Measures the EUCLIDEAN distance between the vectors. See
522
+ # [Euclidean](https://en.wikipedia.org/wiki/Euclidean_distance) to learn
523
+ # more. The resulting distance decreases the more similar two vectors are.
524
+ EUCLIDEAN = 1
525
+
526
+ # COSINE distance compares vectors based on the angle between them, which
527
+ # allows you to measure similarity that isn't based on the vectors
528
+ # magnitude. We recommend using DOT_PRODUCT with unit normalized vectors
529
+ # instead of COSINE distance, which is mathematically equivalent with
530
+ # better performance. See [Cosine
531
+ # Similarity](https://en.wikipedia.org/wiki/Cosine_similarity) to learn
532
+ # more about COSINE similarity and COSINE distance. The resulting COSINE
533
+ # distance decreases the more similar two vectors are.
534
+ COSINE = 2
535
+
536
+ # Similar to cosine but is affected by the magnitude of the vectors. See
537
+ # [Dot Product](https://en.wikipedia.org/wiki/Dot_product) to learn more.
538
+ # The resulting distance increases the more similar two vectors are.
539
+ DOT_PRODUCT = 3
540
+ end
541
+ end
542
+
462
543
  # A [GQL
463
544
  # query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
464
545
  # @!attribute [rw] query_string
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-datastore-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-30 00:00:00.000000000 Z
11
+ date: 2024-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gapic-common
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.21.1
19
+ version: 0.24.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 2.a
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.21.1
29
+ version: 0.24.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.a
@@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  requirements: []
111
- rubygems_version: 3.5.6
111
+ rubygems_version: 3.5.23
112
112
  signing_key:
113
113
  specification_version: 4
114
114
  summary: Accesses the schemaless NoSQL database to provide fully managed, robust,