google-cloud-firestore 0.25.0 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/AUTHENTICATION.md +33 -12
- data/CHANGELOG.md +8 -1
- data/lib/google/cloud/firestore/client.rb +4 -4
- data/lib/google/cloud/firestore/collection_reference.rb +1 -1
- data/lib/google/cloud/firestore/document_reference.rb +3 -3
- data/lib/google/cloud/firestore/field_path.rb +5 -4
- data/lib/google/cloud/firestore/generate.rb +1 -1
- data/lib/google/cloud/firestore/query.rb +6 -6
- data/lib/google/cloud/firestore/transaction.rb +5 -5
- data/lib/google/cloud/firestore/v1.rb +1 -1
- data/lib/google/cloud/firestore/v1/doc/google/firestore/v1/query.rb +5 -5
- data/lib/google/cloud/firestore/v1/doc/google/firestore/v1/write.rb +1 -1
- data/lib/google/cloud/firestore/v1/doc/google/protobuf/any.rb +2 -1
- data/lib/google/cloud/firestore/v1/doc/google/protobuf/timestamp.rb +15 -13
- data/lib/google/cloud/firestore/v1/doc/google/rpc/status.rb +17 -14
- data/lib/google/cloud/firestore/v1/firestore_client.rb +60 -33
- data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/query.rb +9 -9
- data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/write.rb +1 -1
- data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/any.rb +2 -1
- data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/timestamp.rb +15 -13
- data/lib/google/cloud/firestore/v1beta1/doc/google/rpc/status.rb +17 -14
- data/lib/google/cloud/firestore/v1beta1/firestore_client.rb +60 -33
- data/lib/google/cloud/firestore/version.rb +1 -1
- data/lib/google/cloud/firestore/watch/enumerator_queue.rb +1 -1
- data/lib/google/cloud/firestore/watch/order.rb +2 -2
- data/lib/google/firestore/v1/common_pb.rb +1 -1
- data/lib/google/firestore/v1/document_pb.rb +1 -1
- data/lib/google/firestore/v1/firestore_services_pb.rb +1 -1
- data/lib/google/firestore/v1/query_pb.rb +5 -5
- data/lib/google/firestore/v1/write_pb.rb +1 -1
- data/lib/google/firestore/v1beta1/common_pb.rb +1 -1
- data/lib/google/firestore/v1beta1/document_pb.rb +1 -1
- data/lib/google/firestore/v1beta1/firestore_services_pb.rb +1 -1
- data/lib/google/firestore/v1beta1/query_pb.rb +5 -5
- data/lib/google/firestore/v1beta1/write_pb.rb +1 -1
- metadata +5 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 827e034858a868b3f10ad1aa997efd49ae602d56a57d16cbc12fa57cd6d69f1c
|
|
4
|
+
data.tar.gz: 3a7e878306128346310111ec5c99ca008b48cb030c44096f7a86c1d9b99da6fc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2bee3a7931f0dedec0666925e3e8e1485cd9c2865cc6a2d5909dba2121a15590f4282baa61190829d888610e289c33ef3d60421a19378cdd1019773a9d9bce86
|
|
7
|
+
data.tar.gz: afad9e59107345669f0918e6f28faf2fd5baefc01e445111e9e01abb6d19278e10789a7cff21930125f6229a5e03886c32bf63b8a8e17d70e1ac70b58917400c
|
data/AUTHENTICATION.md
CHANGED
|
@@ -2,20 +2,39 @@
|
|
|
2
2
|
|
|
3
3
|
In general, the google-cloud-firestore library uses [Service
|
|
4
4
|
Account](https://cloud.google.com/iam/docs/creating-managing-service-accounts)
|
|
5
|
-
credentials to connect to Google Cloud services. When running
|
|
5
|
+
credentials to connect to Google Cloud services. When running within [Google
|
|
6
|
+
Cloud Platform environments](#google-cloud-platform-environments)
|
|
6
7
|
the credentials will be discovered automatically. When running on other
|
|
7
8
|
environments, the Service Account credentials can be specified by providing the
|
|
8
9
|
path to the [JSON
|
|
9
10
|
keyfile](https://cloud.google.com/iam/docs/managing-service-account-keys) for
|
|
10
|
-
the account (or the JSON itself) in environment
|
|
11
|
-
SDK credentials can also
|
|
12
|
-
recommended during development.
|
|
11
|
+
the account (or the JSON itself) in [environment
|
|
12
|
+
variables](#environment-variables). Additionally, Cloud SDK credentials can also
|
|
13
|
+
be discovered automatically, but this is only recommended during development.
|
|
14
|
+
|
|
15
|
+
## Quickstart
|
|
16
|
+
|
|
17
|
+
1. [Create a service account and credentials](#creating-a-service-account).
|
|
18
|
+
2. Set the [environment variable](#environment-variables).
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
export FIRESTORE_CREDENTIALS=/path/to/json`
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
3. Initialize the client.
|
|
25
|
+
|
|
26
|
+
```ruby
|
|
27
|
+
require "google/cloud/firestore"
|
|
28
|
+
|
|
29
|
+
client = Google::Cloud::Firestore.new
|
|
30
|
+
```
|
|
13
31
|
|
|
14
32
|
## Project and Credential Lookup
|
|
15
33
|
|
|
16
|
-
The google-cloud-firestore library aims to make authentication
|
|
17
|
-
possible, and provides several mechanisms to configure your system
|
|
18
|
-
providing **Project ID** and **Service Account Credentials** directly in
|
|
34
|
+
The google-cloud-firestore library aims to make authentication
|
|
35
|
+
as simple as possible, and provides several mechanisms to configure your system
|
|
36
|
+
without providing **Project ID** and **Service Account Credentials** directly in
|
|
37
|
+
code.
|
|
19
38
|
|
|
20
39
|
**Project ID** is discovered in the following order:
|
|
21
40
|
|
|
@@ -23,6 +42,7 @@ providing **Project ID** and **Service Account Credentials** directly in code.
|
|
|
23
42
|
2. Specify project ID in configuration
|
|
24
43
|
3. Discover project ID in environment variables
|
|
25
44
|
4. Discover GCE project ID
|
|
45
|
+
5. Discover project ID in credentials JSON
|
|
26
46
|
|
|
27
47
|
**Credentials** are discovered in the following order:
|
|
28
48
|
|
|
@@ -73,12 +93,12 @@ environment variable, or the **Credentials JSON** itself can be stored for
|
|
|
73
93
|
environments such as Docker containers where writing files is difficult or not
|
|
74
94
|
encouraged.
|
|
75
95
|
|
|
76
|
-
The environment variables that
|
|
96
|
+
The environment variables that google-cloud-firestore checks for project ID are:
|
|
77
97
|
|
|
78
98
|
1. `FIRESTORE_PROJECT`
|
|
79
99
|
2. `GOOGLE_CLOUD_PROJECT`
|
|
80
100
|
|
|
81
|
-
The environment variables that
|
|
101
|
+
The environment variables that google-cloud-firestore checks for credentials are configured on {Google::Cloud::Firestore::V1::Credentials}:
|
|
82
102
|
|
|
83
103
|
1. `FIRESTORE_CREDENTIALS` - Path to JSON file, or JSON contents
|
|
84
104
|
2. `FIRESTORE_KEYFILE` - Path to JSON file, or JSON contents
|
|
@@ -92,7 +112,7 @@ require "google/cloud/firestore"
|
|
|
92
112
|
ENV["FIRESTORE_PROJECT"] = "my-project-id"
|
|
93
113
|
ENV["FIRESTORE_CREDENTIALS"] = "path/to/keyfile.json"
|
|
94
114
|
|
|
95
|
-
|
|
115
|
+
client = Google::Cloud::Firestore.new
|
|
96
116
|
```
|
|
97
117
|
|
|
98
118
|
### Configuration
|
|
@@ -107,7 +127,7 @@ Google::Cloud::Firestore.configure do |config|
|
|
|
107
127
|
config.credentials = "path/to/keyfile.json"
|
|
108
128
|
end
|
|
109
129
|
|
|
110
|
-
|
|
130
|
+
client = Google::Cloud::Firestore.new
|
|
111
131
|
```
|
|
112
132
|
|
|
113
133
|
### Cloud SDK
|
|
@@ -140,7 +160,8 @@ Google Cloud requires a **Project ID** and **Service Account Credentials** to
|
|
|
140
160
|
connect to the APIs. You will use the **Project ID** and **JSON key file** to
|
|
141
161
|
connect to most services with google-cloud-firestore.
|
|
142
162
|
|
|
143
|
-
If you are not running this client
|
|
163
|
+
If you are not running this client within [Google Cloud Platform
|
|
164
|
+
environments](#google-cloud-platform-environments), you need a Google
|
|
144
165
|
Developers service account.
|
|
145
166
|
|
|
146
167
|
1. Visit the [Google Developers Console][dev-console].
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
+
### 0.25.1 / 2019-04-29
|
|
4
|
+
|
|
5
|
+
* Add AUTHENTICATION.md guide.
|
|
6
|
+
* Update documentation for V1 Server API to GA.
|
|
7
|
+
* Update generated documentation.
|
|
8
|
+
* Extract gRPC header values from request.
|
|
9
|
+
|
|
3
10
|
### 0.25.0 / 2019-02-01
|
|
4
11
|
|
|
5
12
|
* Switch Firestore to use the V1 API:
|
|
@@ -22,7 +29,7 @@
|
|
|
22
29
|
This value was added in googleauth 0.7.0.
|
|
23
30
|
* Loosen googleauth dependency
|
|
24
31
|
Allow for new releases up to 0.10.
|
|
25
|
-
The googleauth devs have committed to
|
|
32
|
+
The googleauth devs have committed to maintaining the current API
|
|
26
33
|
and will not make backwards compatible changes before 0.10.
|
|
27
34
|
* Add Firestore emulator support.
|
|
28
35
|
|
|
@@ -102,10 +102,10 @@ module Google
|
|
|
102
102
|
def cols
|
|
103
103
|
ensure_service!
|
|
104
104
|
|
|
105
|
-
return enum_for
|
|
105
|
+
return enum_for :cols unless block_given?
|
|
106
106
|
|
|
107
107
|
collection_ids = service.list_collections "#{path}/documents"
|
|
108
|
-
collection_ids.each { |collection_id| yield col
|
|
108
|
+
collection_ids.each { |collection_id| yield col collection_id }
|
|
109
109
|
end
|
|
110
110
|
alias collections cols
|
|
111
111
|
alias list_collections cols
|
|
@@ -217,7 +217,7 @@ module Google
|
|
|
217
217
|
ensure_service!
|
|
218
218
|
|
|
219
219
|
unless block_given?
|
|
220
|
-
return enum_for
|
|
220
|
+
return enum_for :get_all, docs, field_mask: field_mask
|
|
221
221
|
end
|
|
222
222
|
|
|
223
223
|
doc_paths = Array(docs).flatten.map do |doc_path|
|
|
@@ -235,7 +235,7 @@ module Google
|
|
|
235
235
|
results = service.get_documents doc_paths, mask: mask
|
|
236
236
|
results.each do |result|
|
|
237
237
|
next if result.result.nil?
|
|
238
|
-
yield DocumentSnapshot.from_batch_result
|
|
238
|
+
yield DocumentSnapshot.from_batch_result result, self
|
|
239
239
|
end
|
|
240
240
|
end
|
|
241
241
|
alias get_docs get_all
|
|
@@ -91,10 +91,10 @@ module Google
|
|
|
91
91
|
def cols
|
|
92
92
|
ensure_service!
|
|
93
93
|
|
|
94
|
-
return enum_for
|
|
94
|
+
return enum_for :cols unless block_given?
|
|
95
95
|
|
|
96
96
|
collection_ids = service.list_collections path
|
|
97
|
-
collection_ids.each { |collection_id| yield col
|
|
97
|
+
collection_ids.each { |collection_id| yield col collection_id }
|
|
98
98
|
end
|
|
99
99
|
alias collections cols
|
|
100
100
|
alias list_collections cols
|
|
@@ -473,7 +473,7 @@ module Google
|
|
|
473
473
|
##
|
|
474
474
|
# @private
|
|
475
475
|
def parent_path
|
|
476
|
-
path.split("/")[0...-1].join
|
|
476
|
+
path.split("/")[0...-1].join "/"
|
|
477
477
|
end
|
|
478
478
|
|
|
479
479
|
##
|
|
@@ -110,7 +110,7 @@ module Google
|
|
|
110
110
|
#
|
|
111
111
|
def formatted_string
|
|
112
112
|
escaped_fields = @fields.map { |field| escape_field_for_path field }
|
|
113
|
-
escaped_fields.join
|
|
113
|
+
escaped_fields.join "."
|
|
114
114
|
end
|
|
115
115
|
|
|
116
116
|
##
|
|
@@ -175,16 +175,17 @@ module Google
|
|
|
175
175
|
end
|
|
176
176
|
|
|
177
177
|
if dotted_string.is_a? Array
|
|
178
|
-
|
|
178
|
+
@memoized_field_paths[dotted_string] = new dotted_string
|
|
179
|
+
return @memoized_field_paths[dotted_string]
|
|
179
180
|
end
|
|
180
181
|
|
|
181
|
-
fields = String(dotted_string).split
|
|
182
|
+
fields = String(dotted_string).split "."
|
|
182
183
|
|
|
183
184
|
if fields.grep(INVALID_FIELD_PATH_CHARS).any?
|
|
184
185
|
raise ArgumentError, "invalid character, use FieldPath instead"
|
|
185
186
|
end
|
|
186
187
|
|
|
187
|
-
@memoized_field_paths[dotted_string] = new
|
|
188
|
+
@memoized_field_paths[dotted_string] = new fields
|
|
188
189
|
end
|
|
189
190
|
|
|
190
191
|
##
|
|
@@ -378,7 +378,7 @@ module Google
|
|
|
378
378
|
new_query = @query.dup
|
|
379
379
|
new_query ||= StructuredQuery.new
|
|
380
380
|
|
|
381
|
-
new_query.limit = Google::Protobuf::Int32Value.new
|
|
381
|
+
new_query.limit = Google::Protobuf::Int32Value.new value: num
|
|
382
382
|
|
|
383
383
|
Query.start new_query, parent_path, client
|
|
384
384
|
end
|
|
@@ -825,12 +825,12 @@ module Google
|
|
|
825
825
|
def get
|
|
826
826
|
ensure_service!
|
|
827
827
|
|
|
828
|
-
return enum_for
|
|
828
|
+
return enum_for :get unless block_given?
|
|
829
829
|
|
|
830
830
|
results = service.run_query parent_path, @query
|
|
831
831
|
results.each do |result|
|
|
832
832
|
next if result.document.nil?
|
|
833
|
-
yield DocumentSnapshot.from_query_result
|
|
833
|
+
yield DocumentSnapshot.from_query_result result, client
|
|
834
834
|
end
|
|
835
835
|
end
|
|
836
836
|
alias run get
|
|
@@ -923,13 +923,13 @@ module Google
|
|
|
923
923
|
].freeze
|
|
924
924
|
|
|
925
925
|
def value_nil? value
|
|
926
|
-
[nil, :null, :nil].include?
|
|
926
|
+
[nil, :null, :nil].include? value
|
|
927
927
|
end
|
|
928
928
|
|
|
929
929
|
def value_nan? value
|
|
930
930
|
# Comparing NaN values raises, so check for #nan? first.
|
|
931
931
|
return true if value.respond_to?(:nan?) && value.nan?
|
|
932
|
-
[:nan].include?
|
|
932
|
+
[:nan].include? value
|
|
933
933
|
end
|
|
934
934
|
|
|
935
935
|
def value_unary? value
|
|
@@ -994,7 +994,7 @@ module Google
|
|
|
994
994
|
|
|
995
995
|
def values_to_cursor values, query
|
|
996
996
|
if values.count == 1 && values.first.is_a?(DocumentSnapshot)
|
|
997
|
-
return snapshot_to_cursor
|
|
997
|
+
return snapshot_to_cursor values.first, query
|
|
998
998
|
end
|
|
999
999
|
|
|
1000
1000
|
# pair values with their field_paths to ensure correct formatting
|
|
@@ -131,7 +131,7 @@ module Google
|
|
|
131
131
|
ensure_service!
|
|
132
132
|
|
|
133
133
|
unless block_given?
|
|
134
|
-
return enum_for
|
|
134
|
+
return enum_for :get_all, docs, field_mask: field_mask
|
|
135
135
|
end
|
|
136
136
|
|
|
137
137
|
doc_paths = Array(docs).flatten.map do |doc_path|
|
|
@@ -151,7 +151,7 @@ module Google
|
|
|
151
151
|
results.each do |result|
|
|
152
152
|
extract_transaction_from_result! result
|
|
153
153
|
next if result.result.nil?
|
|
154
|
-
yield DocumentSnapshot.from_batch_result
|
|
154
|
+
yield DocumentSnapshot.from_batch_result result, client
|
|
155
155
|
end
|
|
156
156
|
end
|
|
157
157
|
alias get_docs get_all
|
|
@@ -251,20 +251,20 @@ module Google
|
|
|
251
251
|
|
|
252
252
|
obj = coalesce_get_argument obj
|
|
253
253
|
|
|
254
|
-
if obj.is_a?
|
|
254
|
+
if obj.is_a? DocumentReference
|
|
255
255
|
doc = get_all([obj]).first
|
|
256
256
|
yield doc if block_given?
|
|
257
257
|
return doc
|
|
258
258
|
end
|
|
259
259
|
|
|
260
|
-
return enum_for
|
|
260
|
+
return enum_for :get, obj unless block_given?
|
|
261
261
|
|
|
262
262
|
results = service.run_query obj.parent_path, obj.query,
|
|
263
263
|
transaction: transaction_or_create
|
|
264
264
|
results.each do |result|
|
|
265
265
|
extract_transaction_from_result! result
|
|
266
266
|
next if result.document.nil?
|
|
267
|
-
yield DocumentSnapshot.from_query_result
|
|
267
|
+
yield DocumentSnapshot.from_query_result result, client
|
|
268
268
|
end
|
|
269
269
|
end
|
|
270
270
|
alias run get
|
|
@@ -21,7 +21,7 @@ module Google
|
|
|
21
21
|
# rubocop:disable LineLength
|
|
22
22
|
|
|
23
23
|
##
|
|
24
|
-
# # Ruby Client for Google Cloud Firestore API ([
|
|
24
|
+
# # Ruby Client for Google Cloud Firestore API ([GA](https://github.com/googleapis/google-cloud-ruby#versioning))
|
|
25
25
|
#
|
|
26
26
|
# [Google Cloud Firestore API][Product Documentation]:
|
|
27
27
|
#
|
|
@@ -166,6 +166,11 @@ module Google
|
|
|
166
166
|
end
|
|
167
167
|
end
|
|
168
168
|
|
|
169
|
+
# A reference to a field, such as `max(messages.time) as max_time`.
|
|
170
|
+
# @!attribute [rw] field_path
|
|
171
|
+
# @return [String]
|
|
172
|
+
class FieldReference; end
|
|
173
|
+
|
|
169
174
|
# An order on a field.
|
|
170
175
|
# @!attribute [rw] field
|
|
171
176
|
# @return [Google::Firestore::V1::StructuredQuery::FieldReference]
|
|
@@ -175,11 +180,6 @@ module Google
|
|
|
175
180
|
# The direction to order by. Defaults to `ASCENDING`.
|
|
176
181
|
class Order; end
|
|
177
182
|
|
|
178
|
-
# A reference to a field, such as `max(messages.time) as max_time`.
|
|
179
|
-
# @!attribute [rw] field_path
|
|
180
|
-
# @return [String]
|
|
181
|
-
class FieldReference; end
|
|
182
|
-
|
|
183
183
|
# The projection of document's fields to return.
|
|
184
184
|
# @!attribute [rw] fields
|
|
185
185
|
# @return [Array<Google::Firestore::V1::StructuredQuery::FieldReference>]
|
|
@@ -26,7 +26,7 @@ module Google
|
|
|
26
26
|
# `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
|
|
27
27
|
# @!attribute [rw] transform
|
|
28
28
|
# @return [Google::Firestore::V1::DocumentTransform]
|
|
29
|
-
# Applies a
|
|
29
|
+
# Applies a transformation to a document.
|
|
30
30
|
# At most one `transform` per document is allowed in a given request.
|
|
31
31
|
# An `update` cannot follow a `transform` on the same document in a given
|
|
32
32
|
# request.
|
|
@@ -97,7 +97,8 @@ module Google
|
|
|
97
97
|
# @!attribute [rw] type_url
|
|
98
98
|
# @return [String]
|
|
99
99
|
# A URL/resource name that uniquely identifies the type of the serialized
|
|
100
|
-
# protocol buffer message.
|
|
100
|
+
# protocol buffer message. This string must contain at least
|
|
101
|
+
# one "/" character. The last segment of the URL's path must represent
|
|
101
102
|
# the fully qualified name of the type (as in
|
|
102
103
|
# `path/google.protobuf.Duration`). The name should be in a canonical form
|
|
103
104
|
# (e.g., leading "." is not accepted).
|
|
@@ -15,17 +15,19 @@
|
|
|
15
15
|
|
|
16
16
|
module Google
|
|
17
17
|
module Protobuf
|
|
18
|
-
# A Timestamp represents a point in time independent of any time zone
|
|
19
|
-
#
|
|
20
|
-
# nanosecond resolution
|
|
21
|
-
#
|
|
22
|
-
# backwards to year one.
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
#
|
|
18
|
+
# A Timestamp represents a point in time independent of any time zone or local
|
|
19
|
+
# calendar, encoded as a count of seconds and fractions of seconds at
|
|
20
|
+
# nanosecond resolution. The count is relative to an epoch at UTC midnight on
|
|
21
|
+
# January 1, 1970, in the proleptic Gregorian calendar which extends the
|
|
22
|
+
# Gregorian calendar backwards to year one.
|
|
23
|
+
#
|
|
24
|
+
# All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
|
|
25
|
+
# second table is needed for interpretation, using a [24-hour linear
|
|
26
|
+
# smear](https://developers.google.com/time/smear).
|
|
27
|
+
#
|
|
28
|
+
# The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
|
|
29
|
+
# restricting to that range, we ensure that we can convert to and from [RFC
|
|
30
|
+
# 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
|
|
29
31
|
#
|
|
30
32
|
# = Examples
|
|
31
33
|
#
|
|
@@ -86,12 +88,12 @@ module Google
|
|
|
86
88
|
# 01:30 UTC on January 15, 2017.
|
|
87
89
|
#
|
|
88
90
|
# In JavaScript, one can convert a Date object to this format using the
|
|
89
|
-
# standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
|
|
91
|
+
# standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
|
|
90
92
|
# method. In Python, a standard `datetime.datetime` object can be converted
|
|
91
93
|
# to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
|
|
92
94
|
# with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
|
|
93
95
|
# can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
|
|
94
|
-
# http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime
|
|
96
|
+
# http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
|
|
95
97
|
# ) to obtain a formatter capable of generating timestamps in this format.
|
|
96
98
|
# @!attribute [rw] seconds
|
|
97
99
|
# @return [Integer]
|
|
@@ -15,24 +15,25 @@
|
|
|
15
15
|
|
|
16
16
|
module Google
|
|
17
17
|
module Rpc
|
|
18
|
-
# The `Status` type defines a logical error model that is suitable for
|
|
19
|
-
# programming environments, including REST APIs and RPC APIs. It is
|
|
20
|
-
# [gRPC](https://github.com/grpc). The error model is designed to be:
|
|
18
|
+
# The `Status` type defines a logical error model that is suitable for
|
|
19
|
+
# different programming environments, including REST APIs and RPC APIs. It is
|
|
20
|
+
# used by [gRPC](https://github.com/grpc). The error model is designed to be:
|
|
21
21
|
#
|
|
22
22
|
# * Simple to use and understand for most users
|
|
23
23
|
# * Flexible enough to meet unexpected needs
|
|
24
24
|
#
|
|
25
25
|
# = Overview
|
|
26
26
|
#
|
|
27
|
-
# The `Status` message contains three pieces of data: error code, error
|
|
28
|
-
# and error details. The error code should be an enum value of
|
|
29
|
-
# {Google::Rpc::Code}, but it may accept additional error codes
|
|
30
|
-
# error message should be a developer-facing English message
|
|
31
|
-
# developers *understand* and *resolve* the error. If a localized
|
|
32
|
-
# error message is needed, put the localized message in the error
|
|
33
|
-
# localize it in the client. The optional error details may contain
|
|
34
|
-
# information about the error. There is a predefined set of error
|
|
35
|
-
# in the package `google.rpc` that can be used for common error
|
|
27
|
+
# The `Status` message contains three pieces of data: error code, error
|
|
28
|
+
# message, and error details. The error code should be an enum value of
|
|
29
|
+
# {Google::Rpc::Code}, but it may accept additional error codes
|
|
30
|
+
# if needed. The error message should be a developer-facing English message
|
|
31
|
+
# that helps developers *understand* and *resolve* the error. If a localized
|
|
32
|
+
# user-facing error message is needed, put the localized message in the error
|
|
33
|
+
# details or localize it in the client. The optional error details may contain
|
|
34
|
+
# arbitrary information about the error. There is a predefined set of error
|
|
35
|
+
# detail types in the package `google.rpc` that can be used for common error
|
|
36
|
+
# conditions.
|
|
36
37
|
#
|
|
37
38
|
# = Language mapping
|
|
38
39
|
#
|
|
@@ -69,12 +70,14 @@ module Google
|
|
|
69
70
|
# be used directly after any stripping needed for security/privacy reasons.
|
|
70
71
|
# @!attribute [rw] code
|
|
71
72
|
# @return [Integer]
|
|
72
|
-
# The status code, which should be an enum value of
|
|
73
|
+
# The status code, which should be an enum value of
|
|
74
|
+
# {Google::Rpc::Code}.
|
|
73
75
|
# @!attribute [rw] message
|
|
74
76
|
# @return [String]
|
|
75
77
|
# A developer-facing error message, which should be in English. Any
|
|
76
78
|
# user-facing error message should be localized and sent in the
|
|
77
|
-
# {Google::Rpc::Status#details} field, or localized
|
|
79
|
+
# {Google::Rpc::Status#details} field, or localized
|
|
80
|
+
# by the client.
|
|
78
81
|
# @!attribute [rw] details
|
|
79
82
|
# @return [Array<Google::Protobuf::Any>]
|
|
80
83
|
# A list of messages that carry the error details. There is a common set of
|