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.
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