google-cloud-datastore 0.21.0 → 0.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +7 -0
- data/LICENSE +201 -0
- data/README.md +75 -0
- data/lib/google-cloud-datastore.rb +2 -2
- data/lib/google/cloud/datastore.rb +24 -0
- data/lib/google/cloud/datastore/commit.rb +17 -2
- data/lib/google/cloud/datastore/cursor.rb +1 -1
- data/lib/google/cloud/datastore/dataset.rb +143 -4
- data/lib/google/cloud/datastore/dataset/lookup_results.rb +21 -5
- data/lib/google/cloud/datastore/dataset/query_results.rb +14 -4
- data/lib/google/cloud/datastore/entity.rb +88 -9
- data/lib/google/cloud/datastore/gql_query.rb +12 -0
- data/lib/google/cloud/datastore/key.rb +21 -1
- data/lib/google/cloud/datastore/query.rb +82 -0
- data/lib/google/cloud/datastore/service.rb +2 -2
- data/lib/google/cloud/datastore/transaction.rb +45 -11
- data/lib/google/cloud/datastore/v1.rb +1 -1
- data/lib/google/cloud/datastore/v1/{datastore_api.rb → datastore_client.rb} +42 -42
- data/lib/google/cloud/datastore/v1/doc/google/datastore/v1/datastore.rb +240 -0
- data/lib/google/cloud/datastore/v1/doc/google/datastore/v1/entity.rb +187 -0
- data/lib/google/cloud/datastore/v1/doc/google/datastore/v1/query.rb +292 -0
- data/lib/google/cloud/datastore/v1/doc/google/protobuf/wrappers.rb +89 -0
- data/lib/google/cloud/datastore/version.rb +1 -1
- metadata +13 -6
@@ -34,7 +34,7 @@ module Google
|
|
34
34
|
client_config: nil
|
35
35
|
@project = project
|
36
36
|
@credentials = credentials
|
37
|
-
@host = host || V1::
|
37
|
+
@host = host || V1::DatastoreClient::SERVICE_ADDRESS
|
38
38
|
@timeout = timeout
|
39
39
|
@client_config = client_config || {}
|
40
40
|
end
|
@@ -53,7 +53,7 @@ module Google
|
|
53
53
|
|
54
54
|
def service
|
55
55
|
return mocked_service if mocked_service
|
56
|
-
@service ||= V1::
|
56
|
+
@service ||= V1::DatastoreClient.new(
|
57
57
|
service_path: host,
|
58
58
|
channel: channel,
|
59
59
|
timeout: timeout,
|
@@ -27,6 +27,10 @@ module Google
|
|
27
27
|
# Transactions
|
28
28
|
#
|
29
29
|
# @example Transactional update:
|
30
|
+
# require "google/cloud/datastore"
|
31
|
+
#
|
32
|
+
# datastore = Google::Cloud::Datastore.new
|
33
|
+
#
|
30
34
|
# def transfer_funds from_key, to_key, amount
|
31
35
|
# datastore.transaction do |tx|
|
32
36
|
# from = tx.find from_key
|
@@ -37,16 +41,11 @@ module Google
|
|
37
41
|
# end
|
38
42
|
# end
|
39
43
|
#
|
40
|
-
# @example Retry logic using the transactional update example above:
|
41
|
-
# (1..5).each do |i|
|
42
|
-
# begin
|
43
|
-
# return transfer_funds from_key, to_key, amount
|
44
|
-
# rescue Google::Cloud::Error => e
|
45
|
-
# raise e if i == 5
|
46
|
-
# end
|
47
|
-
# end
|
48
|
-
#
|
49
44
|
# @example Transactional read:
|
45
|
+
# require "google/cloud/datastore"
|
46
|
+
#
|
47
|
+
# datastore = Google::Cloud::Datastore.new
|
48
|
+
#
|
50
49
|
# task_list_key = datastore.key "TaskList", "default"
|
51
50
|
# datastore.transaction do |tx|
|
52
51
|
# task_list = tx.find task_list_key
|
@@ -70,6 +69,10 @@ module Google
|
|
70
69
|
# Persist entities in a transaction.
|
71
70
|
#
|
72
71
|
# @example Transactional get or create:
|
72
|
+
# require "google/cloud/datastore"
|
73
|
+
#
|
74
|
+
# datastore = Google::Cloud::Datastore.new
|
75
|
+
#
|
73
76
|
# task_key = datastore.key "Task", "sampleTask"
|
74
77
|
#
|
75
78
|
# task = nil
|
@@ -98,6 +101,10 @@ module Google
|
|
98
101
|
# if the entities cannot be inserted.
|
99
102
|
#
|
100
103
|
# @example Transactional insert:
|
104
|
+
# require "google/cloud/datastore"
|
105
|
+
#
|
106
|
+
# datastore = Google::Cloud::Datastore.new
|
107
|
+
#
|
101
108
|
# task_key = datastore.key "Task", "sampleTask"
|
102
109
|
#
|
103
110
|
# task = nil
|
@@ -125,6 +132,10 @@ module Google
|
|
125
132
|
# if the entities cannot be updated.
|
126
133
|
#
|
127
134
|
# @example Transactional update:
|
135
|
+
# require "google/cloud/datastore"
|
136
|
+
#
|
137
|
+
# datastore = Google::Cloud::Datastore.new
|
138
|
+
#
|
128
139
|
# task_key = datastore.key "Task", "sampleTask"
|
129
140
|
#
|
130
141
|
# task = nil
|
@@ -146,6 +157,10 @@ module Google
|
|
146
157
|
# Remove entities in a transaction.
|
147
158
|
#
|
148
159
|
# @example
|
160
|
+
# require "google/cloud/datastore"
|
161
|
+
#
|
162
|
+
# datastore = Google::Cloud::Datastore.new
|
163
|
+
#
|
149
164
|
# datastore.transaction do |tx|
|
150
165
|
# if tx.find(task_list.key).nil?
|
151
166
|
# tx.delete task1, task2
|
@@ -167,10 +182,18 @@ module Google
|
|
167
182
|
# @return [Google::Cloud::Datastore::Entity, nil]
|
168
183
|
#
|
169
184
|
# @example Finding an entity with a key:
|
185
|
+
# require "google/cloud/datastore"
|
186
|
+
#
|
187
|
+
# datastore = Google::Cloud::Datastore.new
|
188
|
+
#
|
170
189
|
# task_key = datastore.key "Task", "sampleTask"
|
171
190
|
# task = datastore.find task_key
|
172
191
|
#
|
173
192
|
# @example Finding an entity with a `kind` and `id`/`name`:
|
193
|
+
# require "google/cloud/datastore"
|
194
|
+
#
|
195
|
+
# datastore = Google::Cloud::Datastore.new
|
196
|
+
#
|
174
197
|
# task = datastore.find "Task", "sampleTask"
|
175
198
|
#
|
176
199
|
def find key_or_kind, id_or_name = nil
|
@@ -191,7 +214,10 @@ module Google
|
|
191
214
|
# @return [Google::Cloud::Datastore::Dataset::LookupResults]
|
192
215
|
#
|
193
216
|
# @example
|
217
|
+
# require "google/cloud/datastore"
|
218
|
+
#
|
194
219
|
# datastore = Google::Cloud::Datastore.new
|
220
|
+
#
|
195
221
|
# task_key1 = datastore.key "Task", 123456
|
196
222
|
# task_key2 = datastore.key "Task", 987654
|
197
223
|
# tasks = datastore.find_all task_key1, task_key2
|
@@ -214,6 +240,10 @@ module Google
|
|
214
240
|
# @return [Google::Cloud::Datastore::Dataset::QueryResults]
|
215
241
|
#
|
216
242
|
# @example
|
243
|
+
# require "google/cloud/datastore"
|
244
|
+
#
|
245
|
+
# datastore = Google::Cloud::Datastore.new
|
246
|
+
#
|
217
247
|
# query = datastore.query("Task").
|
218
248
|
# where("done", "=", false)
|
219
249
|
# datastore.transaction do |tx|
|
@@ -221,6 +251,10 @@ module Google
|
|
221
251
|
# end
|
222
252
|
#
|
223
253
|
# @example Run the query within a namespace with the `namespace` option:
|
254
|
+
# require "google/cloud/datastore"
|
255
|
+
#
|
256
|
+
# datastore = Google::Cloud::Datastore.new
|
257
|
+
#
|
224
258
|
# query = Google::Cloud::Datastore::Query.new.kind("Task").
|
225
259
|
# where("done", "=", false)
|
226
260
|
# datastore.transaction do |tx|
|
@@ -287,8 +321,8 @@ module Google
|
|
287
321
|
# tx = datastore.transaction
|
288
322
|
# begin
|
289
323
|
# tx.commit do |c|
|
290
|
-
#
|
291
|
-
#
|
324
|
+
# c.save task3, task4
|
325
|
+
# c.delete task1, task2
|
292
326
|
# end
|
293
327
|
# rescue
|
294
328
|
# tx.rollback
|
@@ -41,7 +41,7 @@ module Google
|
|
41
41
|
#
|
42
42
|
# @!attribute [r] datastore_stub
|
43
43
|
# @return [Google::Datastore::V1::Datastore::Stub]
|
44
|
-
class
|
44
|
+
class DatastoreClient
|
45
45
|
attr_reader :datastore_stub
|
46
46
|
|
47
47
|
# The default address of the service.
|
@@ -165,27 +165,27 @@ module Google
|
|
165
165
|
# @return [Google::Datastore::V1::LookupResponse]
|
166
166
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
167
167
|
# @example
|
168
|
-
# require "google/cloud/datastore/v1/
|
168
|
+
# require "google/cloud/datastore/v1/datastore_client"
|
169
169
|
#
|
170
|
-
#
|
170
|
+
# DatastoreClient = Google::Cloud::Datastore::V1::DatastoreClient
|
171
171
|
# ReadOptions = Google::Datastore::V1::ReadOptions
|
172
172
|
#
|
173
|
-
#
|
173
|
+
# datastore_client = DatastoreClient.new
|
174
174
|
# project_id = ''
|
175
175
|
# read_options = ReadOptions.new
|
176
176
|
# keys = []
|
177
|
-
# response =
|
177
|
+
# response = datastore_client.lookup(project_id, read_options, keys)
|
178
178
|
|
179
179
|
def lookup \
|
180
180
|
project_id,
|
181
181
|
read_options,
|
182
182
|
keys,
|
183
183
|
options: nil
|
184
|
-
req = Google::Datastore::V1::LookupRequest.new(
|
184
|
+
req = Google::Datastore::V1::LookupRequest.new({
|
185
185
|
project_id: project_id,
|
186
186
|
read_options: read_options,
|
187
187
|
keys: keys
|
188
|
-
)
|
188
|
+
}.delete_if { |_, v| v.nil? })
|
189
189
|
@lookup.call(req, options)
|
190
190
|
end
|
191
191
|
|
@@ -210,17 +210,17 @@ module Google
|
|
210
210
|
# @return [Google::Datastore::V1::RunQueryResponse]
|
211
211
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
212
212
|
# @example
|
213
|
-
# require "google/cloud/datastore/v1/
|
213
|
+
# require "google/cloud/datastore/v1/datastore_client"
|
214
214
|
#
|
215
|
-
#
|
215
|
+
# DatastoreClient = Google::Cloud::Datastore::V1::DatastoreClient
|
216
216
|
# PartitionId = Google::Datastore::V1::PartitionId
|
217
217
|
# ReadOptions = Google::Datastore::V1::ReadOptions
|
218
218
|
#
|
219
|
-
#
|
219
|
+
# datastore_client = DatastoreClient.new
|
220
220
|
# project_id = ''
|
221
221
|
# partition_id = PartitionId.new
|
222
222
|
# read_options = ReadOptions.new
|
223
|
-
# response =
|
223
|
+
# response = datastore_client.run_query(project_id, partition_id, read_options)
|
224
224
|
|
225
225
|
def run_query \
|
226
226
|
project_id,
|
@@ -229,13 +229,13 @@ module Google
|
|
229
229
|
query: nil,
|
230
230
|
gql_query: nil,
|
231
231
|
options: nil
|
232
|
-
req = Google::Datastore::V1::RunQueryRequest.new(
|
232
|
+
req = Google::Datastore::V1::RunQueryRequest.new({
|
233
233
|
project_id: project_id,
|
234
234
|
partition_id: partition_id,
|
235
|
-
read_options: read_options
|
236
|
-
|
237
|
-
|
238
|
-
|
235
|
+
read_options: read_options,
|
236
|
+
query: query,
|
237
|
+
gql_query: gql_query
|
238
|
+
}.delete_if { |_, v| v.nil? })
|
239
239
|
@run_query.call(req, options)
|
240
240
|
end
|
241
241
|
|
@@ -249,20 +249,20 @@ module Google
|
|
249
249
|
# @return [Google::Datastore::V1::BeginTransactionResponse]
|
250
250
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
251
251
|
# @example
|
252
|
-
# require "google/cloud/datastore/v1/
|
252
|
+
# require "google/cloud/datastore/v1/datastore_client"
|
253
253
|
#
|
254
|
-
#
|
254
|
+
# DatastoreClient = Google::Cloud::Datastore::V1::DatastoreClient
|
255
255
|
#
|
256
|
-
#
|
256
|
+
# datastore_client = DatastoreClient.new
|
257
257
|
# project_id = ''
|
258
|
-
# response =
|
258
|
+
# response = datastore_client.begin_transaction(project_id)
|
259
259
|
|
260
260
|
def begin_transaction \
|
261
261
|
project_id,
|
262
262
|
options: nil
|
263
|
-
req = Google::Datastore::V1::BeginTransactionRequest.new(
|
263
|
+
req = Google::Datastore::V1::BeginTransactionRequest.new({
|
264
264
|
project_id: project_id
|
265
|
-
)
|
265
|
+
}.delete_if { |_, v| v.nil? })
|
266
266
|
@begin_transaction.call(req, options)
|
267
267
|
end
|
268
268
|
|
@@ -297,16 +297,16 @@ module Google
|
|
297
297
|
# @return [Google::Datastore::V1::CommitResponse]
|
298
298
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
299
299
|
# @example
|
300
|
-
# require "google/cloud/datastore/v1/
|
300
|
+
# require "google/cloud/datastore/v1/datastore_client"
|
301
301
|
#
|
302
|
-
#
|
302
|
+
# DatastoreClient = Google::Cloud::Datastore::V1::DatastoreClient
|
303
303
|
# Mode = Google::Datastore::V1::CommitRequest::Mode
|
304
304
|
#
|
305
|
-
#
|
305
|
+
# datastore_client = DatastoreClient.new
|
306
306
|
# project_id = ''
|
307
307
|
# mode = Mode::MODE_UNSPECIFIED
|
308
308
|
# mutations = []
|
309
|
-
# response =
|
309
|
+
# response = datastore_client.commit(project_id, mode, mutations)
|
310
310
|
|
311
311
|
def commit \
|
312
312
|
project_id,
|
@@ -314,12 +314,12 @@ module Google
|
|
314
314
|
mutations,
|
315
315
|
transaction: nil,
|
316
316
|
options: nil
|
317
|
-
req = Google::Datastore::V1::CommitRequest.new(
|
317
|
+
req = Google::Datastore::V1::CommitRequest.new({
|
318
318
|
project_id: project_id,
|
319
319
|
mode: mode,
|
320
|
-
mutations: mutations
|
321
|
-
|
322
|
-
|
320
|
+
mutations: mutations,
|
321
|
+
transaction: transaction
|
322
|
+
}.delete_if { |_, v| v.nil? })
|
323
323
|
@commit.call(req, options)
|
324
324
|
end
|
325
325
|
|
@@ -336,23 +336,23 @@ module Google
|
|
336
336
|
# @return [Google::Datastore::V1::RollbackResponse]
|
337
337
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
338
338
|
# @example
|
339
|
-
# require "google/cloud/datastore/v1/
|
339
|
+
# require "google/cloud/datastore/v1/datastore_client"
|
340
340
|
#
|
341
|
-
#
|
341
|
+
# DatastoreClient = Google::Cloud::Datastore::V1::DatastoreClient
|
342
342
|
#
|
343
|
-
#
|
343
|
+
# datastore_client = DatastoreClient.new
|
344
344
|
# project_id = ''
|
345
345
|
# transaction = ''
|
346
|
-
# response =
|
346
|
+
# response = datastore_client.rollback(project_id, transaction)
|
347
347
|
|
348
348
|
def rollback \
|
349
349
|
project_id,
|
350
350
|
transaction,
|
351
351
|
options: nil
|
352
|
-
req = Google::Datastore::V1::RollbackRequest.new(
|
352
|
+
req = Google::Datastore::V1::RollbackRequest.new({
|
353
353
|
project_id: project_id,
|
354
354
|
transaction: transaction
|
355
|
-
)
|
355
|
+
}.delete_if { |_, v| v.nil? })
|
356
356
|
@rollback.call(req, options)
|
357
357
|
end
|
358
358
|
|
@@ -370,23 +370,23 @@ module Google
|
|
370
370
|
# @return [Google::Datastore::V1::AllocateIdsResponse]
|
371
371
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
372
372
|
# @example
|
373
|
-
# require "google/cloud/datastore/v1/
|
373
|
+
# require "google/cloud/datastore/v1/datastore_client"
|
374
374
|
#
|
375
|
-
#
|
375
|
+
# DatastoreClient = Google::Cloud::Datastore::V1::DatastoreClient
|
376
376
|
#
|
377
|
-
#
|
377
|
+
# datastore_client = DatastoreClient.new
|
378
378
|
# project_id = ''
|
379
379
|
# keys = []
|
380
|
-
# response =
|
380
|
+
# response = datastore_client.allocate_ids(project_id, keys)
|
381
381
|
|
382
382
|
def allocate_ids \
|
383
383
|
project_id,
|
384
384
|
keys,
|
385
385
|
options: nil
|
386
|
-
req = Google::Datastore::V1::AllocateIdsRequest.new(
|
386
|
+
req = Google::Datastore::V1::AllocateIdsRequest.new({
|
387
387
|
project_id: project_id,
|
388
388
|
keys: keys
|
389
|
-
)
|
389
|
+
}.delete_if { |_, v| v.nil? })
|
390
390
|
@allocate_ids.call(req, options)
|
391
391
|
end
|
392
392
|
end
|
@@ -0,0 +1,240 @@
|
|
1
|
+
# Copyright 2016 Google Inc. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module Google
|
16
|
+
module Datastore
|
17
|
+
module V1
|
18
|
+
# The request for Datastore::Lookup.
|
19
|
+
# @!attribute [rw] project_id
|
20
|
+
# @return [String]
|
21
|
+
# The ID of the project against which to make the request.
|
22
|
+
# @!attribute [rw] read_options
|
23
|
+
# @return [Google::Datastore::V1::ReadOptions]
|
24
|
+
# The options for this lookup request.
|
25
|
+
# @!attribute [rw] keys
|
26
|
+
# @return [Array<Google::Datastore::V1::Key>]
|
27
|
+
# Keys of entities to look up.
|
28
|
+
class LookupRequest; end
|
29
|
+
|
30
|
+
# The response for Datastore::Lookup.
|
31
|
+
# @!attribute [rw] found
|
32
|
+
# @return [Array<Google::Datastore::V1::EntityResult>]
|
33
|
+
# Entities found as +ResultType.FULL+ entities. The order of results in this
|
34
|
+
# field is undefined and has no relation to the order of the keys in the
|
35
|
+
# input.
|
36
|
+
# @!attribute [rw] missing
|
37
|
+
# @return [Array<Google::Datastore::V1::EntityResult>]
|
38
|
+
# Entities not found as +ResultType.KEY_ONLY+ entities. The order of results
|
39
|
+
# in this field is undefined and has no relation to the order of the keys
|
40
|
+
# in the input.
|
41
|
+
# @!attribute [rw] deferred
|
42
|
+
# @return [Array<Google::Datastore::V1::Key>]
|
43
|
+
# A list of keys that were not looked up due to resource constraints. The
|
44
|
+
# order of results in this field is undefined and has no relation to the
|
45
|
+
# order of the keys in the input.
|
46
|
+
class LookupResponse; end
|
47
|
+
|
48
|
+
# The request for Datastore::RunQuery.
|
49
|
+
# @!attribute [rw] project_id
|
50
|
+
# @return [String]
|
51
|
+
# The ID of the project against which to make the request.
|
52
|
+
# @!attribute [rw] partition_id
|
53
|
+
# @return [Google::Datastore::V1::PartitionId]
|
54
|
+
# Entities are partitioned into subsets, identified by a partition ID.
|
55
|
+
# Queries are scoped to a single partition.
|
56
|
+
# This partition ID is normalized with the standard default context
|
57
|
+
# partition ID.
|
58
|
+
# @!attribute [rw] read_options
|
59
|
+
# @return [Google::Datastore::V1::ReadOptions]
|
60
|
+
# The options for this query.
|
61
|
+
# @!attribute [rw] query
|
62
|
+
# @return [Google::Datastore::V1::Query]
|
63
|
+
# The query to run.
|
64
|
+
# @!attribute [rw] gql_query
|
65
|
+
# @return [Google::Datastore::V1::GqlQuery]
|
66
|
+
# The GQL query to run.
|
67
|
+
class RunQueryRequest; end
|
68
|
+
|
69
|
+
# The response for Datastore::RunQuery.
|
70
|
+
# @!attribute [rw] batch
|
71
|
+
# @return [Google::Datastore::V1::QueryResultBatch]
|
72
|
+
# A batch of query results (always present).
|
73
|
+
# @!attribute [rw] query
|
74
|
+
# @return [Google::Datastore::V1::Query]
|
75
|
+
# The parsed form of the +GqlQuery+ from the request, if it was set.
|
76
|
+
class RunQueryResponse; end
|
77
|
+
|
78
|
+
# The request for Datastore::BeginTransaction.
|
79
|
+
# @!attribute [rw] project_id
|
80
|
+
# @return [String]
|
81
|
+
# The ID of the project against which to make the request.
|
82
|
+
class BeginTransactionRequest; end
|
83
|
+
|
84
|
+
# The response for Datastore::BeginTransaction.
|
85
|
+
# @!attribute [rw] transaction
|
86
|
+
# @return [String]
|
87
|
+
# The transaction identifier (always present).
|
88
|
+
class BeginTransactionResponse; end
|
89
|
+
|
90
|
+
# The request for Datastore::Rollback.
|
91
|
+
# @!attribute [rw] project_id
|
92
|
+
# @return [String]
|
93
|
+
# The ID of the project against which to make the request.
|
94
|
+
# @!attribute [rw] transaction
|
95
|
+
# @return [String]
|
96
|
+
# The transaction identifier, returned by a call to
|
97
|
+
# Datastore::BeginTransaction.
|
98
|
+
class RollbackRequest; end
|
99
|
+
|
100
|
+
# The response for Datastore::Rollback.
|
101
|
+
# (an empty message).
|
102
|
+
class RollbackResponse; end
|
103
|
+
|
104
|
+
# The request for Datastore::Commit.
|
105
|
+
# @!attribute [rw] project_id
|
106
|
+
# @return [String]
|
107
|
+
# The ID of the project against which to make the request.
|
108
|
+
# @!attribute [rw] mode
|
109
|
+
# @return [Google::Datastore::V1::CommitRequest::Mode]
|
110
|
+
# The type of commit to perform. Defaults to +TRANSACTIONAL+.
|
111
|
+
# @!attribute [rw] transaction
|
112
|
+
# @return [String]
|
113
|
+
# The identifier of the transaction associated with the commit. A
|
114
|
+
# transaction identifier is returned by a call to
|
115
|
+
# Datastore::BeginTransaction.
|
116
|
+
# @!attribute [rw] mutations
|
117
|
+
# @return [Array<Google::Datastore::V1::Mutation>]
|
118
|
+
# The mutations to perform.
|
119
|
+
#
|
120
|
+
# When mode is +TRANSACTIONAL+, mutations affecting a single entity are
|
121
|
+
# applied in order. The following sequences of mutations affecting a single
|
122
|
+
# entity are not permitted in a single +Commit+ request:
|
123
|
+
#
|
124
|
+
# - +insert+ followed by +insert+
|
125
|
+
# - +update+ followed by +insert+
|
126
|
+
# - +upsert+ followed by +insert+
|
127
|
+
# - +delete+ followed by +update+
|
128
|
+
#
|
129
|
+
# When mode is +NON_TRANSACTIONAL+, no two mutations may affect a single
|
130
|
+
# entity.
|
131
|
+
class CommitRequest
|
132
|
+
# The modes available for commits.
|
133
|
+
module Mode
|
134
|
+
# Unspecified. This value must not be used.
|
135
|
+
MODE_UNSPECIFIED = 0
|
136
|
+
|
137
|
+
# Transactional: The mutations are either all applied, or none are applied.
|
138
|
+
# Learn about transactions {here}[https://cloud.google.com/datastore/docs/concepts/transactions].
|
139
|
+
TRANSACTIONAL = 1
|
140
|
+
|
141
|
+
# Non-transactional: The mutations may not apply as all or none.
|
142
|
+
NON_TRANSACTIONAL = 2
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
# The response for Datastore::Commit.
|
147
|
+
# @!attribute [rw] mutation_results
|
148
|
+
# @return [Array<Google::Datastore::V1::MutationResult>]
|
149
|
+
# The result of performing the mutations.
|
150
|
+
# The i-th mutation result corresponds to the i-th mutation in the request.
|
151
|
+
# @!attribute [rw] index_updates
|
152
|
+
# @return [Integer]
|
153
|
+
# The number of index entries updated during the commit, or zero if none were
|
154
|
+
# updated.
|
155
|
+
class CommitResponse; end
|
156
|
+
|
157
|
+
# The request for Datastore::AllocateIds.
|
158
|
+
# @!attribute [rw] project_id
|
159
|
+
# @return [String]
|
160
|
+
# The ID of the project against which to make the request.
|
161
|
+
# @!attribute [rw] keys
|
162
|
+
# @return [Array<Google::Datastore::V1::Key>]
|
163
|
+
# A list of keys with incomplete key paths for which to allocate IDs.
|
164
|
+
# No key may be reserved/read-only.
|
165
|
+
class AllocateIdsRequest; end
|
166
|
+
|
167
|
+
# The response for Datastore::AllocateIds.
|
168
|
+
# @!attribute [rw] keys
|
169
|
+
# @return [Array<Google::Datastore::V1::Key>]
|
170
|
+
# The keys specified in the request (in the same order), each with
|
171
|
+
# its key path completed with a newly allocated ID.
|
172
|
+
class AllocateIdsResponse; end
|
173
|
+
|
174
|
+
# A mutation to apply to an entity.
|
175
|
+
# @!attribute [rw] insert
|
176
|
+
# @return [Google::Datastore::V1::Entity]
|
177
|
+
# The entity to insert. The entity must not already exist.
|
178
|
+
# The entity key's final path element may be incomplete.
|
179
|
+
# @!attribute [rw] update
|
180
|
+
# @return [Google::Datastore::V1::Entity]
|
181
|
+
# The entity to update. The entity must already exist.
|
182
|
+
# Must have a complete key path.
|
183
|
+
# @!attribute [rw] upsert
|
184
|
+
# @return [Google::Datastore::V1::Entity]
|
185
|
+
# The entity to upsert. The entity may or may not already exist.
|
186
|
+
# The entity key's final path element may be incomplete.
|
187
|
+
# @!attribute [rw] delete
|
188
|
+
# @return [Google::Datastore::V1::Key]
|
189
|
+
# The key of the entity to delete. The entity may or may not already exist.
|
190
|
+
# Must have a complete key path and must not be reserved/read-only.
|
191
|
+
# @!attribute [rw] base_version
|
192
|
+
# @return [Integer]
|
193
|
+
# The version of the entity that this mutation is being applied to. If this
|
194
|
+
# does not match the current version on the server, the mutation conflicts.
|
195
|
+
class Mutation; end
|
196
|
+
|
197
|
+
# The result of applying a mutation.
|
198
|
+
# @!attribute [rw] key
|
199
|
+
# @return [Google::Datastore::V1::Key]
|
200
|
+
# The automatically allocated key.
|
201
|
+
# Set only when the mutation allocated a key.
|
202
|
+
# @!attribute [rw] version
|
203
|
+
# @return [Integer]
|
204
|
+
# The version of the entity on the server after processing the mutation. If
|
205
|
+
# the mutation doesn't change anything on the server, then the version will
|
206
|
+
# be the version of the current entity or, if no entity is present, a version
|
207
|
+
# that is strictly greater than the version of any previous entity and less
|
208
|
+
# than the version of any possible future entity.
|
209
|
+
# @!attribute [rw] conflict_detected
|
210
|
+
# @return [true, false]
|
211
|
+
# Whether a conflict was detected for this mutation. Always false when a
|
212
|
+
# conflict detection strategy field is not set in the mutation.
|
213
|
+
class MutationResult; end
|
214
|
+
|
215
|
+
# The options shared by read requests.
|
216
|
+
# @!attribute [rw] read_consistency
|
217
|
+
# @return [Google::Datastore::V1::ReadOptions::ReadConsistency]
|
218
|
+
# The non-transactional read consistency to use.
|
219
|
+
# Cannot be set to +STRONG+ for global queries.
|
220
|
+
# @!attribute [rw] transaction
|
221
|
+
# @return [String]
|
222
|
+
# The identifier of the transaction in which to read. A
|
223
|
+
# transaction identifier is returned by a call to
|
224
|
+
# Datastore::BeginTransaction.
|
225
|
+
class ReadOptions
|
226
|
+
# The possible values for read consistencies.
|
227
|
+
module ReadConsistency
|
228
|
+
# Unspecified. This value must not be used.
|
229
|
+
READ_CONSISTENCY_UNSPECIFIED = 0
|
230
|
+
|
231
|
+
# Strong consistency.
|
232
|
+
STRONG = 1
|
233
|
+
|
234
|
+
# Eventual consistency.
|
235
|
+
EVENTUAL = 2
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
end
|
240
|
+
end
|