google-cloud-datastore-v1 1.0.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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,