google-cloud-language-v2 0.a → 0.1.0

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.
@@ -0,0 +1,501 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module Language
23
+ module V2
24
+ # Represents the input to API methods.
25
+ # @!attribute [rw] type
26
+ # @return [::Google::Cloud::Language::V2::Document::Type]
27
+ # Required. If the type is not set or is `TYPE_UNSPECIFIED`,
28
+ # returns an `INVALID_ARGUMENT` error.
29
+ # @!attribute [rw] content
30
+ # @return [::String]
31
+ # The content of the input in string format.
32
+ # Cloud audit logging exempt since it is based on user data.
33
+ # @!attribute [rw] gcs_content_uri
34
+ # @return [::String]
35
+ # The Google Cloud Storage URI where the file content is located.
36
+ # This URI must be of the form: gs://bucket_name/object_name. For more
37
+ # details, see https://cloud.google.com/storage/docs/reference-uris.
38
+ # NOTE: Cloud Storage object versioning is not supported.
39
+ # @!attribute [rw] language_code
40
+ # @return [::String]
41
+ # Optional. The language of the document (if not specified, the language is
42
+ # automatically detected). Both ISO and BCP-47 language codes are
43
+ # accepted.<br>
44
+ # [Language
45
+ # Support](https://cloud.google.com/natural-language/docs/languages) lists
46
+ # currently supported languages for each API method. If the language (either
47
+ # specified by the caller or automatically detected) is not supported by the
48
+ # called API method, an `INVALID_ARGUMENT` error is returned.
49
+ class Document
50
+ include ::Google::Protobuf::MessageExts
51
+ extend ::Google::Protobuf::MessageExts::ClassMethods
52
+
53
+ # The document types enum.
54
+ module Type
55
+ # The content type is not specified.
56
+ TYPE_UNSPECIFIED = 0
57
+
58
+ # Plain text
59
+ PLAIN_TEXT = 1
60
+
61
+ # HTML
62
+ HTML = 2
63
+ end
64
+ end
65
+
66
+ # Represents a sentence in the input document.
67
+ # @!attribute [rw] text
68
+ # @return [::Google::Cloud::Language::V2::TextSpan]
69
+ # The sentence text.
70
+ # @!attribute [rw] sentiment
71
+ # @return [::Google::Cloud::Language::V2::Sentiment]
72
+ # For calls to [AnalyzeSentiment][] or if
73
+ # {::Google::Cloud::Language::V2::AnnotateTextRequest::Features#extract_document_sentiment AnnotateTextRequest.Features.extract_document_sentiment}
74
+ # is set to true, this field will contain the sentiment for the sentence.
75
+ class Sentence
76
+ include ::Google::Protobuf::MessageExts
77
+ extend ::Google::Protobuf::MessageExts::ClassMethods
78
+ end
79
+
80
+ # Represents a phrase in the text that is a known entity, such as
81
+ # a person, an organization, or location. The API associates information, such
82
+ # as probability and mentions, with entities.
83
+ # @!attribute [rw] name
84
+ # @return [::String]
85
+ # The representative name for the entity.
86
+ # @!attribute [rw] type
87
+ # @return [::Google::Cloud::Language::V2::Entity::Type]
88
+ # The entity type.
89
+ # @!attribute [rw] metadata
90
+ # @return [::Google::Protobuf::Map{::String => ::String}]
91
+ # Metadata associated with the entity.
92
+ #
93
+ # For most entity types, the metadata is a Wikipedia URL (`wikipedia_url`)
94
+ # and Knowledge Graph MID (`mid`), if they are available. For the metadata
95
+ # associated with other entity types, see the Type table below.
96
+ # @!attribute [rw] mentions
97
+ # @return [::Array<::Google::Cloud::Language::V2::EntityMention>]
98
+ # The mentions of this entity in the input document. The API currently
99
+ # supports proper noun mentions.
100
+ # @!attribute [rw] sentiment
101
+ # @return [::Google::Cloud::Language::V2::Sentiment]
102
+ # For calls to [AnalyzeEntitySentiment][] or if
103
+ # [AnnotateTextRequest.Features.extract_entity_sentiment][google.cloud.language.v2.AnnotateTextRequest.Features.extract_entity_sentiment]
104
+ # is set to true, this field will contain the aggregate sentiment expressed
105
+ # for this entity in the provided document.
106
+ class Entity
107
+ include ::Google::Protobuf::MessageExts
108
+ extend ::Google::Protobuf::MessageExts::ClassMethods
109
+
110
+ # @!attribute [rw] key
111
+ # @return [::String]
112
+ # @!attribute [rw] value
113
+ # @return [::String]
114
+ class MetadataEntry
115
+ include ::Google::Protobuf::MessageExts
116
+ extend ::Google::Protobuf::MessageExts::ClassMethods
117
+ end
118
+
119
+ # The type of the entity. For most entity types, the associated metadata is a
120
+ # Wikipedia URL (`wikipedia_url`) and Knowledge Graph MID (`mid`). The table
121
+ # below lists the associated fields for entities that have different
122
+ # metadata.
123
+ module Type
124
+ # Unknown
125
+ UNKNOWN = 0
126
+
127
+ # Person
128
+ PERSON = 1
129
+
130
+ # Location
131
+ LOCATION = 2
132
+
133
+ # Organization
134
+ ORGANIZATION = 3
135
+
136
+ # Event
137
+ EVENT = 4
138
+
139
+ # Artwork
140
+ WORK_OF_ART = 5
141
+
142
+ # Consumer product
143
+ CONSUMER_GOOD = 6
144
+
145
+ # Other types of entities
146
+ OTHER = 7
147
+
148
+ # Phone number
149
+ #
150
+ # The metadata lists the phone number, formatted according to local
151
+ # convention, plus whichever additional elements appear in the text:
152
+ #
153
+ # * `number` - the actual number, broken down into sections as per local
154
+ # convention
155
+ # * `national_prefix` - country code, if detected
156
+ # * `area_code` - region or area code, if detected
157
+ # * `extension` - phone extension (to be dialed after connection), if
158
+ # detected
159
+ PHONE_NUMBER = 9
160
+
161
+ # Address
162
+ #
163
+ # The metadata identifies the street number and locality plus whichever
164
+ # additional elements appear in the text:
165
+ #
166
+ # * `street_number` - street number
167
+ # * `locality` - city or town
168
+ # * `street_name` - street/route name, if detected
169
+ # * `postal_code` - postal code, if detected
170
+ # * `country` - country, if detected<
171
+ # * `broad_region` - administrative area, such as the state, if detected
172
+ # * `narrow_region` - smaller administrative area, such as county, if
173
+ # detected
174
+ # * `sublocality` - used in Asian addresses to demark a district within a
175
+ # city, if detected
176
+ ADDRESS = 10
177
+
178
+ # Date
179
+ #
180
+ # The metadata identifies the components of the date:
181
+ #
182
+ # * `year` - four digit year, if detected
183
+ # * `month` - two digit month number, if detected
184
+ # * `day` - two digit day number, if detected
185
+ DATE = 11
186
+
187
+ # Number
188
+ #
189
+ # The metadata is the number itself.
190
+ NUMBER = 12
191
+
192
+ # Price
193
+ #
194
+ # The metadata identifies the `value` and `currency`.
195
+ PRICE = 13
196
+ end
197
+ end
198
+
199
+ # Represents the feeling associated with the entire text or entities in
200
+ # the text.
201
+ # @!attribute [rw] magnitude
202
+ # @return [::Float]
203
+ # A non-negative number in the [0, +inf) range, which represents
204
+ # the absolute magnitude of sentiment regardless of score (positive or
205
+ # negative).
206
+ # @!attribute [rw] score
207
+ # @return [::Float]
208
+ # Sentiment score between -1.0 (negative sentiment) and 1.0
209
+ # (positive sentiment).
210
+ class Sentiment
211
+ include ::Google::Protobuf::MessageExts
212
+ extend ::Google::Protobuf::MessageExts::ClassMethods
213
+ end
214
+
215
+ # Represents a mention for an entity in the text. Currently, proper noun
216
+ # mentions are supported.
217
+ # @!attribute [rw] text
218
+ # @return [::Google::Cloud::Language::V2::TextSpan]
219
+ # The mention text.
220
+ # @!attribute [rw] type
221
+ # @return [::Google::Cloud::Language::V2::EntityMention::Type]
222
+ # The type of the entity mention.
223
+ # @!attribute [rw] sentiment
224
+ # @return [::Google::Cloud::Language::V2::Sentiment]
225
+ # For calls to [AnalyzeEntitySentiment][] or if
226
+ # [AnnotateTextRequest.Features.extract_entity_sentiment][google.cloud.language.v2.AnnotateTextRequest.Features.extract_entity_sentiment]
227
+ # is set to true, this field will contain the sentiment expressed for this
228
+ # mention of the entity in the provided document.
229
+ # @!attribute [rw] probability
230
+ # @return [::Float]
231
+ # Probability score associated with the entity.
232
+ #
233
+ # The score shows the probability of the entity mention being the entity
234
+ # type. The score is in (0, 1] range.
235
+ class EntityMention
236
+ include ::Google::Protobuf::MessageExts
237
+ extend ::Google::Protobuf::MessageExts::ClassMethods
238
+
239
+ # The supported types of mentions.
240
+ module Type
241
+ # Unknown
242
+ TYPE_UNKNOWN = 0
243
+
244
+ # Proper name
245
+ PROPER = 1
246
+
247
+ # Common noun (or noun compound)
248
+ COMMON = 2
249
+ end
250
+ end
251
+
252
+ # Represents a text span in the input document.
253
+ # @!attribute [rw] content
254
+ # @return [::String]
255
+ # The content of the text span, which is a substring of the document.
256
+ # @!attribute [rw] begin_offset
257
+ # @return [::Integer]
258
+ # The API calculates the beginning offset of the content in the original
259
+ # document according to the
260
+ # {::Google::Cloud::Language::V2::EncodingType EncodingType} specified in the API
261
+ # request.
262
+ class TextSpan
263
+ include ::Google::Protobuf::MessageExts
264
+ extend ::Google::Protobuf::MessageExts::ClassMethods
265
+ end
266
+
267
+ # Represents a category returned from the text classifier.
268
+ # @!attribute [rw] name
269
+ # @return [::String]
270
+ # The name of the category representing the document.
271
+ # @!attribute [rw] confidence
272
+ # @return [::Float]
273
+ # The classifier's confidence of the category. Number represents how certain
274
+ # the classifier is that this category represents the given text.
275
+ class ClassificationCategory
276
+ include ::Google::Protobuf::MessageExts
277
+ extend ::Google::Protobuf::MessageExts::ClassMethods
278
+ end
279
+
280
+ # The sentiment analysis request message.
281
+ # @!attribute [rw] document
282
+ # @return [::Google::Cloud::Language::V2::Document]
283
+ # Required. Input document.
284
+ # @!attribute [rw] encoding_type
285
+ # @return [::Google::Cloud::Language::V2::EncodingType]
286
+ # The encoding type used by the API to calculate sentence offsets.
287
+ class AnalyzeSentimentRequest
288
+ include ::Google::Protobuf::MessageExts
289
+ extend ::Google::Protobuf::MessageExts::ClassMethods
290
+ end
291
+
292
+ # The sentiment analysis response message.
293
+ # @!attribute [rw] document_sentiment
294
+ # @return [::Google::Cloud::Language::V2::Sentiment]
295
+ # The overall sentiment of the input document.
296
+ # @!attribute [rw] language_code
297
+ # @return [::String]
298
+ # The language of the text, which will be the same as the language specified
299
+ # in the request or, if not specified, the automatically-detected language.
300
+ # See [Document.language][] field for more details.
301
+ # @!attribute [rw] sentences
302
+ # @return [::Array<::Google::Cloud::Language::V2::Sentence>]
303
+ # The sentiment for all the sentences in the document.
304
+ # @!attribute [rw] language_supported
305
+ # @return [::Boolean]
306
+ # Whether the language is officially supported. The API may still return a
307
+ # response when the language is not supported, but it is on a best effort
308
+ # basis.
309
+ class AnalyzeSentimentResponse
310
+ include ::Google::Protobuf::MessageExts
311
+ extend ::Google::Protobuf::MessageExts::ClassMethods
312
+ end
313
+
314
+ # The entity analysis request message.
315
+ # @!attribute [rw] document
316
+ # @return [::Google::Cloud::Language::V2::Document]
317
+ # Required. Input document.
318
+ # @!attribute [rw] encoding_type
319
+ # @return [::Google::Cloud::Language::V2::EncodingType]
320
+ # The encoding type used by the API to calculate offsets.
321
+ class AnalyzeEntitiesRequest
322
+ include ::Google::Protobuf::MessageExts
323
+ extend ::Google::Protobuf::MessageExts::ClassMethods
324
+ end
325
+
326
+ # The entity analysis response message.
327
+ # @!attribute [rw] entities
328
+ # @return [::Array<::Google::Cloud::Language::V2::Entity>]
329
+ # The recognized entities in the input document.
330
+ # @!attribute [rw] language_code
331
+ # @return [::String]
332
+ # The language of the text, which will be the same as the language specified
333
+ # in the request or, if not specified, the automatically-detected language.
334
+ # See [Document.language][] field for more details.
335
+ # @!attribute [rw] language_supported
336
+ # @return [::Boolean]
337
+ # Whether the language is officially supported. The API may still return a
338
+ # response when the language is not supported, but it is on a best effort
339
+ # basis.
340
+ class AnalyzeEntitiesResponse
341
+ include ::Google::Protobuf::MessageExts
342
+ extend ::Google::Protobuf::MessageExts::ClassMethods
343
+ end
344
+
345
+ # The document classification request message.
346
+ # @!attribute [rw] document
347
+ # @return [::Google::Cloud::Language::V2::Document]
348
+ # Required. Input document.
349
+ class ClassifyTextRequest
350
+ include ::Google::Protobuf::MessageExts
351
+ extend ::Google::Protobuf::MessageExts::ClassMethods
352
+ end
353
+
354
+ # The document classification response message.
355
+ # @!attribute [rw] categories
356
+ # @return [::Array<::Google::Cloud::Language::V2::ClassificationCategory>]
357
+ # Categories representing the input document.
358
+ # @!attribute [rw] language_code
359
+ # @return [::String]
360
+ # The language of the text, which will be the same as the language specified
361
+ # in the request or, if not specified, the automatically-detected language.
362
+ # See [Document.language][] field for more details.
363
+ # @!attribute [rw] language_supported
364
+ # @return [::Boolean]
365
+ # Whether the language is officially supported. The API may still return a
366
+ # response when the language is not supported, but it is on a best effort
367
+ # basis.
368
+ class ClassifyTextResponse
369
+ include ::Google::Protobuf::MessageExts
370
+ extend ::Google::Protobuf::MessageExts::ClassMethods
371
+ end
372
+
373
+ # The document moderation request message.
374
+ # @!attribute [rw] document
375
+ # @return [::Google::Cloud::Language::V2::Document]
376
+ # Required. Input document.
377
+ class ModerateTextRequest
378
+ include ::Google::Protobuf::MessageExts
379
+ extend ::Google::Protobuf::MessageExts::ClassMethods
380
+ end
381
+
382
+ # The document moderation response message.
383
+ # @!attribute [rw] moderation_categories
384
+ # @return [::Array<::Google::Cloud::Language::V2::ClassificationCategory>]
385
+ # Harmful and sensitive categories representing the input document.
386
+ # @!attribute [rw] language_code
387
+ # @return [::String]
388
+ # The language of the text, which will be the same as the language specified
389
+ # in the request or, if not specified, the automatically-detected language.
390
+ # See [Document.language][] field for more details.
391
+ # @!attribute [rw] language_supported
392
+ # @return [::Boolean]
393
+ # Whether the language is officially supported. The API may still return a
394
+ # response when the language is not supported, but it is on a best effort
395
+ # basis.
396
+ class ModerateTextResponse
397
+ include ::Google::Protobuf::MessageExts
398
+ extend ::Google::Protobuf::MessageExts::ClassMethods
399
+ end
400
+
401
+ # The request message for the text annotation API, which can perform multiple
402
+ # analysis types in one call.
403
+ # @!attribute [rw] document
404
+ # @return [::Google::Cloud::Language::V2::Document]
405
+ # Required. Input document.
406
+ # @!attribute [rw] features
407
+ # @return [::Google::Cloud::Language::V2::AnnotateTextRequest::Features]
408
+ # Required. The enabled features.
409
+ # @!attribute [rw] encoding_type
410
+ # @return [::Google::Cloud::Language::V2::EncodingType]
411
+ # The encoding type used by the API to calculate offsets.
412
+ class AnnotateTextRequest
413
+ include ::Google::Protobuf::MessageExts
414
+ extend ::Google::Protobuf::MessageExts::ClassMethods
415
+
416
+ # All available features.
417
+ # Setting each one to true will enable that specific analysis for the input.
418
+ # @!attribute [rw] extract_entities
419
+ # @return [::Boolean]
420
+ # Optional. Extract entities.
421
+ # @!attribute [rw] extract_document_sentiment
422
+ # @return [::Boolean]
423
+ # Optional. Extract document-level sentiment.
424
+ # @!attribute [rw] classify_text
425
+ # @return [::Boolean]
426
+ # Optional. Classify the full document into categories.
427
+ # @!attribute [rw] moderate_text
428
+ # @return [::Boolean]
429
+ # Optional. Moderate the document for harmful and sensitive categories.
430
+ class Features
431
+ include ::Google::Protobuf::MessageExts
432
+ extend ::Google::Protobuf::MessageExts::ClassMethods
433
+ end
434
+ end
435
+
436
+ # The text annotations response message.
437
+ # @!attribute [rw] sentences
438
+ # @return [::Array<::Google::Cloud::Language::V2::Sentence>]
439
+ # Sentences in the input document. Populated if the user enables
440
+ # {::Google::Cloud::Language::V2::AnnotateTextRequest::Features#extract_document_sentiment AnnotateTextRequest.Features.extract_document_sentiment}.
441
+ # @!attribute [rw] entities
442
+ # @return [::Array<::Google::Cloud::Language::V2::Entity>]
443
+ # Entities, along with their semantic information, in the input document.
444
+ # Populated if the user enables
445
+ # {::Google::Cloud::Language::V2::AnnotateTextRequest::Features#extract_entities AnnotateTextRequest.Features.extract_entities}
446
+ # or
447
+ # [AnnotateTextRequest.Features.extract_entity_sentiment][google.cloud.language.v2.AnnotateTextRequest.Features.extract_entity_sentiment].
448
+ # @!attribute [rw] document_sentiment
449
+ # @return [::Google::Cloud::Language::V2::Sentiment]
450
+ # The overall sentiment for the document. Populated if the user enables
451
+ # {::Google::Cloud::Language::V2::AnnotateTextRequest::Features#extract_document_sentiment AnnotateTextRequest.Features.extract_document_sentiment}.
452
+ # @!attribute [rw] language_code
453
+ # @return [::String]
454
+ # The language of the text, which will be the same as the language specified
455
+ # in the request or, if not specified, the automatically-detected language.
456
+ # See [Document.language][] field for more details.
457
+ # @!attribute [rw] categories
458
+ # @return [::Array<::Google::Cloud::Language::V2::ClassificationCategory>]
459
+ # Categories identified in the input document.
460
+ # @!attribute [rw] moderation_categories
461
+ # @return [::Array<::Google::Cloud::Language::V2::ClassificationCategory>]
462
+ # Harmful and sensitive categories identified in the input document.
463
+ # @!attribute [rw] language_supported
464
+ # @return [::Boolean]
465
+ # Whether the language is officially supported by all requested features.
466
+ # The API may still return a response when the language is not supported, but
467
+ # it is on a best effort basis.
468
+ class AnnotateTextResponse
469
+ include ::Google::Protobuf::MessageExts
470
+ extend ::Google::Protobuf::MessageExts::ClassMethods
471
+ end
472
+
473
+ # Represents the text encoding that the caller uses to process the output.
474
+ # Providing an `EncodingType` is recommended because the API provides the
475
+ # beginning offsets for various outputs, such as tokens and mentions, and
476
+ # languages that natively use different text encodings may access offsets
477
+ # differently.
478
+ module EncodingType
479
+ # If `EncodingType` is not specified, encoding-dependent information (such as
480
+ # `begin_offset`) will be set at `-1`.
481
+ NONE = 0
482
+
483
+ # Encoding-dependent information (such as `begin_offset`) is calculated based
484
+ # on the UTF-8 encoding of the input. C++ and Go are examples of languages
485
+ # that use this encoding natively.
486
+ UTF8 = 1
487
+
488
+ # Encoding-dependent information (such as `begin_offset`) is calculated based
489
+ # on the UTF-16 encoding of the input. Java and JavaScript are examples of
490
+ # languages that use this encoding natively.
491
+ UTF16 = 2
492
+
493
+ # Encoding-dependent information (such as `begin_offset`) is calculated based
494
+ # on the UTF-32 encoding of the input. Python is an example of a language
495
+ # that uses this encoding natively.
496
+ UTF32 = 3
497
+ end
498
+ end
499
+ end
500
+ end
501
+ end
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Protobuf
22
+ # A Duration represents a signed, fixed-length span of time represented
23
+ # as a count of seconds and fractions of seconds at nanosecond
24
+ # resolution. It is independent of any calendar and concepts like "day"
25
+ # or "month". It is related to Timestamp in that the difference between
26
+ # two Timestamp values is a Duration and it can be added or subtracted
27
+ # from a Timestamp. Range is approximately +-10,000 years.
28
+ #
29
+ # # Examples
30
+ #
31
+ # Example 1: Compute Duration from two Timestamps in pseudo code.
32
+ #
33
+ # Timestamp start = ...;
34
+ # Timestamp end = ...;
35
+ # Duration duration = ...;
36
+ #
37
+ # duration.seconds = end.seconds - start.seconds;
38
+ # duration.nanos = end.nanos - start.nanos;
39
+ #
40
+ # if (duration.seconds < 0 && duration.nanos > 0) {
41
+ # duration.seconds += 1;
42
+ # duration.nanos -= 1000000000;
43
+ # } else if (duration.seconds > 0 && duration.nanos < 0) {
44
+ # duration.seconds -= 1;
45
+ # duration.nanos += 1000000000;
46
+ # }
47
+ #
48
+ # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
49
+ #
50
+ # Timestamp start = ...;
51
+ # Duration duration = ...;
52
+ # Timestamp end = ...;
53
+ #
54
+ # end.seconds = start.seconds + duration.seconds;
55
+ # end.nanos = start.nanos + duration.nanos;
56
+ #
57
+ # if (end.nanos < 0) {
58
+ # end.seconds -= 1;
59
+ # end.nanos += 1000000000;
60
+ # } else if (end.nanos >= 1000000000) {
61
+ # end.seconds += 1;
62
+ # end.nanos -= 1000000000;
63
+ # }
64
+ #
65
+ # Example 3: Compute Duration from datetime.timedelta in Python.
66
+ #
67
+ # td = datetime.timedelta(days=3, minutes=10)
68
+ # duration = Duration()
69
+ # duration.FromTimedelta(td)
70
+ #
71
+ # # JSON Mapping
72
+ #
73
+ # In JSON format, the Duration type is encoded as a string rather than an
74
+ # object, where the string ends in the suffix "s" (indicating seconds) and
75
+ # is preceded by the number of seconds, with nanoseconds expressed as
76
+ # fractional seconds. For example, 3 seconds with 0 nanoseconds should be
77
+ # encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
78
+ # be expressed in JSON format as "3.000000001s", and 3 seconds and 1
79
+ # microsecond should be expressed in JSON format as "3.000001s".
80
+ # @!attribute [rw] seconds
81
+ # @return [::Integer]
82
+ # Signed seconds of the span of time. Must be from -315,576,000,000
83
+ # to +315,576,000,000 inclusive. Note: these bounds are computed from:
84
+ # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
85
+ # @!attribute [rw] nanos
86
+ # @return [::Integer]
87
+ # Signed fractions of a second at nanosecond resolution of the span
88
+ # of time. Durations less than one second are represented with a 0
89
+ # `seconds` field and a positive or negative `nanos` field. For durations
90
+ # of one second or more, a non-zero value for the `nanos` field must be
91
+ # of the same sign as the `seconds` field. Must be from -999,999,999
92
+ # to +999,999,999 inclusive.
93
+ class Duration
94
+ include ::Google::Protobuf::MessageExts
95
+ extend ::Google::Protobuf::MessageExts::ClassMethods
96
+ end
97
+ end
98
+ end