google-cloud-firestore 0.25.0 → 0.25.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +33 -12
  3. data/CHANGELOG.md +8 -1
  4. data/lib/google/cloud/firestore/client.rb +4 -4
  5. data/lib/google/cloud/firestore/collection_reference.rb +1 -1
  6. data/lib/google/cloud/firestore/document_reference.rb +3 -3
  7. data/lib/google/cloud/firestore/field_path.rb +5 -4
  8. data/lib/google/cloud/firestore/generate.rb +1 -1
  9. data/lib/google/cloud/firestore/query.rb +6 -6
  10. data/lib/google/cloud/firestore/transaction.rb +5 -5
  11. data/lib/google/cloud/firestore/v1.rb +1 -1
  12. data/lib/google/cloud/firestore/v1/doc/google/firestore/v1/query.rb +5 -5
  13. data/lib/google/cloud/firestore/v1/doc/google/firestore/v1/write.rb +1 -1
  14. data/lib/google/cloud/firestore/v1/doc/google/protobuf/any.rb +2 -1
  15. data/lib/google/cloud/firestore/v1/doc/google/protobuf/timestamp.rb +15 -13
  16. data/lib/google/cloud/firestore/v1/doc/google/rpc/status.rb +17 -14
  17. data/lib/google/cloud/firestore/v1/firestore_client.rb +60 -33
  18. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/query.rb +9 -9
  19. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/write.rb +1 -1
  20. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/any.rb +2 -1
  21. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/timestamp.rb +15 -13
  22. data/lib/google/cloud/firestore/v1beta1/doc/google/rpc/status.rb +17 -14
  23. data/lib/google/cloud/firestore/v1beta1/firestore_client.rb +60 -33
  24. data/lib/google/cloud/firestore/version.rb +1 -1
  25. data/lib/google/cloud/firestore/watch/enumerator_queue.rb +1 -1
  26. data/lib/google/cloud/firestore/watch/order.rb +2 -2
  27. data/lib/google/firestore/v1/common_pb.rb +1 -1
  28. data/lib/google/firestore/v1/document_pb.rb +1 -1
  29. data/lib/google/firestore/v1/firestore_services_pb.rb +1 -1
  30. data/lib/google/firestore/v1/query_pb.rb +5 -5
  31. data/lib/google/firestore/v1/write_pb.rb +1 -1
  32. data/lib/google/firestore/v1beta1/common_pb.rb +1 -1
  33. data/lib/google/firestore/v1beta1/document_pb.rb +1 -1
  34. data/lib/google/firestore/v1beta1/firestore_services_pb.rb +1 -1
  35. data/lib/google/firestore/v1beta1/query_pb.rb +5 -5
  36. data/lib/google/firestore/v1beta1/write_pb.rb +1 -1
  37. metadata +5 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 20e48c6792126fe8c5a79b40397c538b31ebc323b14047ffea02469105548a05
4
- data.tar.gz: fdc7adba72dfb45c176538777c3c7fcd75d0fe17938b2732589e2f7cae52ff73
3
+ metadata.gz: 827e034858a868b3f10ad1aa997efd49ae602d56a57d16cbc12fa57cd6d69f1c
4
+ data.tar.gz: 3a7e878306128346310111ec5c99ca008b48cb030c44096f7a86c1d9b99da6fc
5
5
  SHA512:
6
- metadata.gz: 4b878632115005af9f47874d6ac9655e12a20017786f234c8cf77949a54c3b3a8f67e86d73819e42fc7c0dc62102d5fdee54d3406932e724b4cee6efc99726e1
7
- data.tar.gz: feb031af0e58139b0e039e8230c1921f72a91e0cdfe5b31d8d3c39823fa1a30e12f1569f26d29a0623ebf0c6790eb5b49bf164c5405c36b447a0d561d0cbdf34
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 on Compute Engine
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 variables. Additionally, Cloud
11
- SDK credentials can also be discovered automatically, but this is only
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 as simple as
17
- possible, and provides several mechanisms to configure your system without
18
- providing **Project ID** and **Service Account Credentials** directly in code.
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 Firestore checks for project ID are:
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 Firestore checks for credentials are configured on {Google::Cloud::Firestore::V1beta1::Credentials}:
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
- firestore = Google::Cloud::Firestore.new
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
- firestore = Google::Cloud::Firestore.new
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 on Google Compute Engine, you need a Google
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 maintanining the current API
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(:cols) unless block_given?
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(collection_id) }
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(:get_all, docs, field_mask: field_mask)
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(result, self)
238
+ yield DocumentSnapshot.from_batch_result result, self
239
239
  end
240
240
  end
241
241
  alias get_docs get_all
@@ -75,7 +75,7 @@ module Google
75
75
  ##
76
76
  # @private The parent path for the collection.
77
77
  def parent_path
78
- path.split("/")[0...-1].join("/")
78
+ path.split("/")[0...-1].join "/"
79
79
  end
80
80
 
81
81
  # @!group Access
@@ -91,10 +91,10 @@ module Google
91
91
  def cols
92
92
  ensure_service!
93
93
 
94
- return enum_for(:cols) unless block_given?
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(collection_id) }
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
- return @memoized_field_paths[dotted_string] = new(dotted_string)
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(fields)
188
+ @memoized_field_paths[dotted_string] = new fields
188
189
  end
189
190
 
190
191
  ##
@@ -25,7 +25,7 @@ module Google
25
25
 
26
26
  def self.unique_id length: 20, chars: CHARS
27
27
  size = chars.size
28
- Array.new(length) do
28
+ Array.new length do
29
29
  chars[SecureRandom.random_number(size)]
30
30
  end.join
31
31
  end
@@ -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(value: num)
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(:get) unless block_given?
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(result, client)
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?(value)
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?(value)
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(values.first, query)
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(:get_all, docs, field_mask: field_mask)
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(result, client)
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?(DocumentReference)
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(:get, obj) unless block_given?
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(result, client)
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 ([Beta](https://github.com/googleapis/google-cloud-ruby#versioning))
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 tranformation to a document.
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. The last segment of the URL's path must represent
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
- # or calendar, represented as seconds and fractions of seconds at
20
- # nanosecond resolution in UTC Epoch time. It is encoded using the
21
- # Proleptic Gregorian Calendar which extends the Gregorian calendar
22
- # backwards to year one. It is encoded assuming all minutes are 60
23
- # seconds long, i.e. leap seconds are "smeared" so that no leap second
24
- # table is needed for interpretation. Range is from
25
- # 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
26
- # By restricting to that range, we ensure that we can convert to
27
- # and from RFC 3339 date strings.
28
- # See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
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 different
19
- # programming environments, including REST APIs and RPC APIs. It is used by
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 message,
28
- # and error details. The error code should be an enum value of
29
- # {Google::Rpc::Code}, but it may accept additional error codes if needed. The
30
- # error message should be a developer-facing English message that helps
31
- # developers *understand* and *resolve* the error. If a localized user-facing
32
- # error message is needed, put the localized message in the error details or
33
- # localize it in the client. The optional error details may contain arbitrary
34
- # information about the error. There is a predefined set of error detail types
35
- # in the package `google.rpc` that can be used for common error conditions.
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 {Google::Rpc::Code}.
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 by the client.
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