google-cloud-dialogflow-v2 1.18.0 → 1.20.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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/lib/google/cloud/dialogflow/v2/agent_coaching_instruction_pb.rb +1 -1
  3. data/lib/google/cloud/dialogflow/v2/agent_pb.rb +1 -1
  4. data/lib/google/cloud/dialogflow/v2/answer_record_pb.rb +1 -1
  5. data/lib/google/cloud/dialogflow/v2/audio_config_pb.rb +1 -1
  6. data/lib/google/cloud/dialogflow/v2/ces_app_pb.rb +1 -1
  7. data/lib/google/cloud/dialogflow/v2/ces_tool_pb.rb +1 -1
  8. data/lib/google/cloud/dialogflow/v2/companion_agent_pb.rb +1 -1
  9. data/lib/google/cloud/dialogflow/v2/context_pb.rb +1 -1
  10. data/lib/google/cloud/dialogflow/v2/conversation_dataset_pb.rb +1 -1
  11. data/lib/google/cloud/dialogflow/v2/conversation_model_pb.rb +1 -1
  12. data/lib/google/cloud/dialogflow/v2/conversation_pb.rb +1 -1
  13. data/lib/google/cloud/dialogflow/v2/conversation_profile_pb.rb +1 -1
  14. data/lib/google/cloud/dialogflow/v2/document_pb.rb +1 -1
  15. data/lib/google/cloud/dialogflow/v2/encryption_spec_pb.rb +1 -1
  16. data/lib/google/cloud/dialogflow/v2/entity_type_pb.rb +1 -1
  17. data/lib/google/cloud/dialogflow/v2/environment_pb.rb +1 -1
  18. data/lib/google/cloud/dialogflow/v2/fulfillment_pb.rb +1 -1
  19. data/lib/google/cloud/dialogflow/v2/gcs_pb.rb +1 -1
  20. data/lib/google/cloud/dialogflow/v2/generator_evaluation_pb.rb +1 -1
  21. data/lib/google/cloud/dialogflow/v2/generator_pb.rb +1 -1
  22. data/lib/google/cloud/dialogflow/v2/grounding_pb.rb +1 -1
  23. data/lib/google/cloud/dialogflow/v2/intent_pb.rb +1 -1
  24. data/lib/google/cloud/dialogflow/v2/knowledge_base_pb.rb +1 -1
  25. data/lib/google/cloud/dialogflow/v2/operations_pb.rb +1 -1
  26. data/lib/google/cloud/dialogflow/v2/participant_pb.rb +8 -1
  27. data/lib/google/cloud/dialogflow/v2/session_entity_type_pb.rb +1 -1
  28. data/lib/google/cloud/dialogflow/v2/session_pb.rb +1 -1
  29. data/lib/google/cloud/dialogflow/v2/sip_trunk_pb.rb +9 -1
  30. data/lib/google/cloud/dialogflow/v2/tool_call_pb.rb +1 -1
  31. data/lib/google/cloud/dialogflow/v2/tool_pb.rb +1 -1
  32. data/lib/google/cloud/dialogflow/v2/toolset_pb.rb +1 -1
  33. data/lib/google/cloud/dialogflow/v2/version.rb +1 -1
  34. data/lib/google/cloud/dialogflow/v2/version_pb.rb +1 -1
  35. data/proto_docs/google/cloud/dialogflow/v2/audio_config.rb +8 -5
  36. data/proto_docs/google/cloud/dialogflow/v2/conversation_profile.rb +4 -3
  37. data/proto_docs/google/cloud/dialogflow/v2/generator.rb +4 -3
  38. data/proto_docs/google/cloud/dialogflow/v2/participant.rb +162 -0
  39. data/proto_docs/google/cloud/dialogflow/v2/session.rb +5 -0
  40. data/proto_docs/google/cloud/dialogflow/v2/sip_trunk.rb +130 -0
  41. metadata +3 -3
@@ -568,9 +568,10 @@ module Google
568
568
  # Section name: "reason_for_cancellation".
569
569
  REASON_FOR_CANCELLATION = 4
570
570
 
571
- # "Unsatisfied" or "Satisfied" depending on the customer's feelings at
572
- # the end of the conversation.
573
- # Section name: "customer_satisfaction".
571
+ # Customer satisfaction derived from the text transcript only (not
572
+ # audio). Categorized based on customer statements by the end of the
573
+ # conversation. `D` for dissatisfied and `N` for neutral or satisfied
574
+ # (default). Section name: `customer_satisfaction`.
574
575
  CUSTOMER_SATISFACTION = 5
575
576
 
576
577
  # Key entities extracted from the conversation, such as ticket number,
@@ -286,9 +286,10 @@ module Google
286
286
  # Section name: "reason_for_cancellation".
287
287
  REASON_FOR_CANCELLATION = 4
288
288
 
289
- # "Unsatisfied" or "Satisfied" depending on the customer's feelings at
290
- # the end of the conversation.
291
- # Section name: "customer_satisfaction".
289
+ # Customer satisfaction derived from the text transcript only (not audio).
290
+ # Categorized based on customer statements by the end of the conversation.
291
+ # `D` for dissatisfied and `N` for neutral or satisfied (default).
292
+ # Section name: `customer_satisfaction`.
292
293
  CUSTOMER_SATISFACTION = 5
293
294
 
294
295
  # Key entities extracted from the conversation, such as ticket number,
@@ -170,6 +170,9 @@ module Google
170
170
  # @return [::String]
171
171
  # Optional. The message content.
172
172
  # Only one of `content` and `companion_query` should be set - not both.
173
+ # @!attribute [rw] response_messages
174
+ # @return [::Array<::Google::Cloud::Dialogflow::V2::ResponseMessage>]
175
+ # Optional. Automated agent responses.
173
176
  # @!attribute [rw] language_code
174
177
  # @return [::String]
175
178
  # Optional. The message language.
@@ -967,6 +970,30 @@ module Google
967
970
  # Response of the Dialogflow
968
971
  # {::Google::Cloud::Dialogflow::V2::Sessions::Client#detect_intent Sessions.DetectIntent}
969
972
  # call.
973
+ # @!attribute [rw] response_messages
974
+ # @return [::Array<::Google::Cloud::Dialogflow::V2::ResponseMessage>]
975
+ # Response messages from the automated agent.
976
+ # @!attribute [rw] intent
977
+ # @return [::String]
978
+ # Name of the intent if an intent is matched for the query.
979
+ # For a V2 query, the value format is `projects/<Project ID>/locations/
980
+ # <Location ID>/agent/intents/<Intent ID>`.
981
+ # For a V3 query, the value format is `projects/<Project ID>/locations/
982
+ # <Location ID>/agents/<Agent ID>/intents/<Intent ID>`.
983
+ # @!attribute [rw] event
984
+ # @return [::String]
985
+ # Event name if an event is triggered for the query.
986
+ # @!attribute [rw] match_confidence
987
+ # @return [::Float]
988
+ # The confidence of the match. Values range from 0.0 (completely uncertain)
989
+ # to 1.0 (completely certain).
990
+ # This value is for informational purpose only and is only used to help match
991
+ # the best intent within the classification threshold. This value may change
992
+ # for the same end-user expression at any time due to a model retraining or
993
+ # change in implementation.
994
+ # @!attribute [rw] parameters
995
+ # @return [::Google::Protobuf::Struct]
996
+ # The collection of current parameters at the time of this response.
970
997
  # @!attribute [rw] automated_agent_reply_type
971
998
  # @return [::Google::Cloud::Dialogflow::V2::AutomatedAgentReply::AutomatedAgentReplyType]
972
999
  # AutomatedAgentReply type.
@@ -980,6 +1007,9 @@ module Google
980
1007
  # The unique identifier of the current Dialogflow CX conversation page.
981
1008
  # Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent
982
1009
  # ID>/flows/<Flow ID>/pages/<Page ID>`.
1010
+ # @!attribute [rw] call_companion_auth_code
1011
+ # @return [::String]
1012
+ # The auth code for accessing Call Companion UI.
983
1013
  class AutomatedAgentReply
984
1014
  include ::Google::Protobuf::MessageExts
985
1015
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1316,6 +1346,134 @@ module Google
1316
1346
  end
1317
1347
  end
1318
1348
 
1349
+ # Response messages from an automated agent.
1350
+ # @!attribute [rw] text
1351
+ # @return [::Google::Cloud::Dialogflow::V2::ResponseMessage::Text]
1352
+ # Returns a text response.
1353
+ #
1354
+ # Note: The following fields are mutually exclusive: `text`, `payload`, `live_agent_handoff`, `end_interaction`, `mixed_audio`, `telephony_transfer_call`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1355
+ # @!attribute [rw] payload
1356
+ # @return [::Google::Protobuf::Struct]
1357
+ # Returns a response containing a custom, platform-specific payload.
1358
+ #
1359
+ # Note: The following fields are mutually exclusive: `payload`, `text`, `live_agent_handoff`, `end_interaction`, `mixed_audio`, `telephony_transfer_call`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1360
+ # @!attribute [rw] live_agent_handoff
1361
+ # @return [::Google::Cloud::Dialogflow::V2::ResponseMessage::LiveAgentHandoff]
1362
+ # Hands off conversation to a live agent.
1363
+ #
1364
+ # Note: The following fields are mutually exclusive: `live_agent_handoff`, `text`, `payload`, `end_interaction`, `mixed_audio`, `telephony_transfer_call`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1365
+ # @!attribute [rw] end_interaction
1366
+ # @return [::Google::Cloud::Dialogflow::V2::ResponseMessage::EndInteraction]
1367
+ # A signal that indicates the interaction with the Dialogflow agent has
1368
+ # ended.
1369
+ #
1370
+ # Note: The following fields are mutually exclusive: `end_interaction`, `text`, `payload`, `live_agent_handoff`, `mixed_audio`, `telephony_transfer_call`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1371
+ # @!attribute [rw] mixed_audio
1372
+ # @return [::Google::Cloud::Dialogflow::V2::ResponseMessage::MixedAudio]
1373
+ # An audio response message composed of both the synthesized Dialogflow
1374
+ # agent responses and the audios hosted in places known to the client.
1375
+ #
1376
+ # Note: The following fields are mutually exclusive: `mixed_audio`, `text`, `payload`, `live_agent_handoff`, `end_interaction`, `telephony_transfer_call`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1377
+ # @!attribute [rw] telephony_transfer_call
1378
+ # @return [::Google::Cloud::Dialogflow::V2::ResponseMessage::TelephonyTransferCall]
1379
+ # A signal that the client should transfer the phone call connected to
1380
+ # this agent to a third-party endpoint.
1381
+ #
1382
+ # Note: The following fields are mutually exclusive: `telephony_transfer_call`, `text`, `payload`, `live_agent_handoff`, `end_interaction`, `mixed_audio`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1383
+ class ResponseMessage
1384
+ include ::Google::Protobuf::MessageExts
1385
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1386
+
1387
+ # The text response message.
1388
+ # @!attribute [rw] text
1389
+ # @return [::Array<::String>]
1390
+ # A collection of text response variants. If multiple variants are
1391
+ # defined, only one text response variant is returned at runtime.
1392
+ class Text
1393
+ include ::Google::Protobuf::MessageExts
1394
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1395
+ end
1396
+
1397
+ # Indicates that the conversation should be handed off to a human agent.
1398
+ #
1399
+ # Dialogflow only uses this to determine which conversations were handed off
1400
+ # to a human agent for measurement purposes. What else to do with this signal
1401
+ # is up to you and your handoff procedures.
1402
+ #
1403
+ # You may set this, for example:
1404
+ #
1405
+ # * In the entry fulfillment of a CX Page if entering the page indicates
1406
+ # something went extremely wrong in the conversation.
1407
+ # * In a webhook response when you determine that the customer issue can only
1408
+ # be handled by a human.
1409
+ # @!attribute [rw] metadata
1410
+ # @return [::Google::Protobuf::Struct]
1411
+ # Custom metadata for your handoff procedure. Dialogflow doesn't impose
1412
+ # any structure on this.
1413
+ class LiveAgentHandoff
1414
+ include ::Google::Protobuf::MessageExts
1415
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1416
+ end
1417
+
1418
+ # Indicates that interaction with the Dialogflow agent has ended.
1419
+ class EndInteraction
1420
+ include ::Google::Protobuf::MessageExts
1421
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1422
+ end
1423
+
1424
+ # Represents an audio message that is composed of both segments
1425
+ # synthesized from the Dialogflow agent prompts and ones hosted externally
1426
+ # at the specified URIs.
1427
+ # @!attribute [rw] segments
1428
+ # @return [::Array<::Google::Cloud::Dialogflow::V2::ResponseMessage::MixedAudio::Segment>]
1429
+ # Segments this audio response is composed of.
1430
+ class MixedAudio
1431
+ include ::Google::Protobuf::MessageExts
1432
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1433
+
1434
+ # Represents one segment of audio.
1435
+ # @!attribute [rw] audio
1436
+ # @return [::String]
1437
+ # Raw audio synthesized from the Dialogflow agent's response using
1438
+ # the output config specified in the request.
1439
+ #
1440
+ # Note: The following fields are mutually exclusive: `audio`, `uri`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1441
+ # @!attribute [rw] uri
1442
+ # @return [::String]
1443
+ # Client-specific URI that points to an audio clip accessible to the
1444
+ # client.
1445
+ #
1446
+ # Note: The following fields are mutually exclusive: `uri`, `audio`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1447
+ # @!attribute [rw] allow_playback_interruption
1448
+ # @return [::Boolean]
1449
+ # Whether the playback of this segment can be interrupted by the end
1450
+ # user's speech and the client should then start the next Dialogflow
1451
+ # request.
1452
+ class Segment
1453
+ include ::Google::Protobuf::MessageExts
1454
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1455
+ end
1456
+ end
1457
+
1458
+ # Represents the signal that telles the client to transfer the phone call
1459
+ # connected to the agent to a third-party endpoint.
1460
+ # @!attribute [rw] phone_number
1461
+ # @return [::String]
1462
+ # Transfer the call to a phone number
1463
+ # in [E.164 format](https://en.wikipedia.org/wiki/E.164).
1464
+ #
1465
+ # Note: The following fields are mutually exclusive: `phone_number`, `sip_uri`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1466
+ # @!attribute [rw] sip_uri
1467
+ # @return [::String]
1468
+ # Transfer the call to a SIP endpoint.
1469
+ #
1470
+ # Note: The following fields are mutually exclusive: `sip_uri`, `phone_number`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1471
+ class TelephonyTransferCall
1472
+ include ::Google::Protobuf::MessageExts
1473
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1474
+ end
1475
+ end
1476
+
1319
1477
  # The request message for
1320
1478
  # {::Google::Cloud::Dialogflow::V2::Participants::Client#suggest_knowledge_assist Participants.SuggestKnowledgeAssist}.
1321
1479
  # @!attribute [rw] parent
@@ -1961,6 +2119,10 @@ module Google
1961
2119
  # Optional. If true, Gemini ASR will be used for transcription instead of
1962
2120
  # Cloud Speech-to-Text. If false, Cloud Speech-to-Text will be used.
1963
2121
  # If unset, this setting is inherited from the ConversationProfile.
2122
+ # @!attribute [rw] disable_interim_input_transcripts
2123
+ # @return [::Boolean]
2124
+ # Optional. Disables emission of interim input transcriptions when set to
2125
+ # `true`.
1964
2126
  class VoiceSessionConfig
1965
2127
  include ::Google::Protobuf::MessageExts
1966
2128
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -754,6 +754,11 @@ module Google
754
754
  # @!attribute [rw] query_text_sentiment
755
755
  # @return [::Google::Cloud::Dialogflow::V2::Sentiment]
756
756
  # The sentiment analysis result for `query_text`.
757
+ # @!attribute [r] status
758
+ # @return [::Google::Rpc::Status]
759
+ # Output only. The status of the sentiment analysis operation.
760
+ # If the operation failed, this field will contain the error details.
761
+ # For example, it might indicate a quota issue (RESOURCE_EXHAUSTED).
757
762
  class SentimentAnalysisResult
758
763
  include ::Google::Protobuf::MessageExts
759
764
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -122,9 +122,24 @@ module Google
122
122
  # @!attribute [rw] display_name
123
123
  # @return [::String]
124
124
  # Optional. Human readable alias for this trunk.
125
+ # @!attribute [rw] peer_hostnames
126
+ # @return [::Array<::Google::Cloud::Dialogflow::V2::SipHostname>]
127
+ # Required. Peer hostnames of the SIP trunk.
128
+ # @!attribute [rw] google_root_cert_file
129
+ # @return [::Google::Cloud::Dialogflow::V2::SipTrunk::GoogleRootCertFile]
130
+ # Optional. The root certificate file to use for this SIP trunk.
125
131
  class SipTrunk
126
132
  include ::Google::Protobuf::MessageExts
127
133
  extend ::Google::Protobuf::MessageExts::ClassMethods
134
+
135
+ # The type of Google root certificate file used for mTLS.
136
+ module GoogleRootCertFile
137
+ # Unspecified root certificate file.
138
+ CERT_FILE_UNSPECIFIED = 0
139
+
140
+ # Use external private CA.
141
+ EXTERNAL_PRIVATE_CA = 5
142
+ end
128
143
  end
129
144
 
130
145
  # Represents a connection for SIP Trunk.
@@ -205,6 +220,121 @@ module Google
205
220
  CERTIFICATE_QUOTA_EXCEEDED = 8
206
221
  end
207
222
  end
223
+
224
+ # Represents a peer hostname for SIP Trunk.
225
+ # @!attribute [rw] peer_hostname
226
+ # @return [::String]
227
+ # Required. Peer hostname name.
228
+ # @!attribute [r] enabled_sip_ping
229
+ # @return [::Boolean]
230
+ # Output only. Peer hostname enabled for SIP ping.
231
+ # @!attribute [r] ping_interval
232
+ # @return [::Google::Protobuf::Duration]
233
+ # Output only. How often the sip ping should occur.
234
+ # @!attribute [r] peer_socket_address
235
+ # @return [::String]
236
+ # Output only. The peer_socket address of the partner SBC pinged.
237
+ # @!attribute [r] probe_details
238
+ # @return [::Google::Cloud::Dialogflow::V2::ProbeDetails]
239
+ # Output only. The details from the options probe.
240
+ # @!attribute [r] connection_state
241
+ # @return [::Google::Cloud::Dialogflow::V2::SipHostname::ConnectionState]
242
+ # Output only. State of the connection.
243
+ # @!attribute [r] error_details
244
+ # @return [::Google::Cloud::Dialogflow::V2::SipHostname::HostnameErrorDetails]
245
+ # Output only. The error details for the connection. Only populated when
246
+ # authentication errors occur.
247
+ class SipHostname
248
+ include ::Google::Protobuf::MessageExts
249
+ extend ::Google::Protobuf::MessageExts::ClassMethods
250
+
251
+ # The error details of Sip Trunk hostnameconnection authentication.
252
+ # @!attribute [r] certificate_state
253
+ # @return [::Google::Cloud::Dialogflow::V2::SipHostname::HostnameCertificateState]
254
+ # Output only. The status of the certificate authentication.
255
+ # @!attribute [r] error_message
256
+ # @return [::String]
257
+ # Output only. The error message provided from SIP trunking auth service
258
+ class HostnameErrorDetails
259
+ include ::Google::Protobuf::MessageExts
260
+ extend ::Google::Protobuf::MessageExts::ClassMethods
261
+ end
262
+
263
+ # The state of SBC hostname connection.
264
+ module ConnectionState
265
+ # SBC hostname connection state is Not specified.
266
+ CONNECTION_STATE_UNSPECIFIED = 0
267
+
268
+ # SBC hostname connection is connected.
269
+ CONNECTED = 1
270
+
271
+ # SBC hostname connection is disconnected.
272
+ DISCONNECTED = 2
273
+
274
+ # SBC hostname connection has authentication error.
275
+ AUTHENTICATION_FAILED = 3
276
+
277
+ # SBC hostname connection is keepalive.
278
+ KEEPALIVE = 4
279
+ end
280
+
281
+ # The state of Sip Trunk certificate authentication.
282
+ module HostnameCertificateState
283
+ # Certificate state is not specified.
284
+ HOSTNAME_CERTIFICATE_STATE_UNSPECIFIED = 0
285
+
286
+ # Certificate is valid.
287
+ VALID = 1
288
+
289
+ # Catch all for any error not specified.
290
+ INVALID = 2
291
+
292
+ # Certificate leaf node has expired.
293
+ EXPIRED = 3
294
+
295
+ # There is no hostname defined to authenticate in SipTrunkingServer.
296
+ HOSTNAME_NOT_FOUND = 4
297
+
298
+ # No path found from the leaf certificate to any root.
299
+ UNAUTHENTICATED = 5
300
+
301
+ # Trust store does not exist.
302
+ TRUST_STORE_NOT_FOUND = 6
303
+
304
+ # Hostname has invalid format.
305
+ HOSTNAME_INVALID_FORMAT = 7
306
+
307
+ # Certificate has exhausted its quota.
308
+ QUOTA_EXCEEDED = 8
309
+ end
310
+ end
311
+
312
+ # The probe details of Sip Trunk peer hostname.
313
+ # @!attribute [r] options_latency
314
+ # @return [::Google::Protobuf::Duration]
315
+ # Output only. Duration between OPTIONS send and OPTIONS 200 received.
316
+ # @!attribute [r] probe_status
317
+ # @return [::Google::Cloud::Dialogflow::V2::ProbeDetails::ProbeStatus]
318
+ # Output only. Result of the probe.
319
+ # @!attribute [r] init_time
320
+ # @return [::Google::Protobuf::Timestamp]
321
+ # Output only. When the options probe was started.
322
+ class ProbeDetails
323
+ include ::Google::Protobuf::MessageExts
324
+ extend ::Google::Protobuf::MessageExts::ClassMethods
325
+
326
+ # The status of InitiateSipOptionsPing to peer hostname.
327
+ module ProbeStatus
328
+ # Peer hostname ping state is not specified.
329
+ PROBE_STATUS_UNSPECIFIED = 0
330
+
331
+ # Peer hostname ping succeeded.
332
+ PROBE_STATUS_SUCCESS = 1
333
+
334
+ # Peer hostname ping failed.
335
+ PROBE_STATUS_FAILED = 2
336
+ end
337
+ end
208
338
  end
209
339
  end
210
340
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-dialogflow-v2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.18.0
4
+ version: 1.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '1.3'
18
+ version: '1.6'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '1.3'
25
+ version: '1.6'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: google-cloud-errors
28
28
  requirement: !ruby/object:Gem::Requirement