falaai-api 1.21.49 → 1.21.51

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 (87) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +36 -38
  3. data/docs/RiskAuditRequest.md +1 -1
  4. data/docs/WhatsappApi.md +93 -0
  5. data/docs/WhatsappConversation.md +32 -0
  6. data/docs/WhatsappConversationsResponse.md +28 -0
  7. data/docs/WhatsappMeta.md +48 -0
  8. data/docs/WhatsappSpeaker.md +20 -0
  9. data/docs/WhatsappUsage.md +24 -0
  10. data/docs/index.html +32 -29
  11. data/docs/llms.txt +18 -0
  12. data/docs/robots.txt +4 -0
  13. data/docs/sitemap.xml +8 -0
  14. data/lib/falaai-api/api/analysis_api.rb +1 -1
  15. data/lib/falaai-api/api/email_alerts_api.rb +1 -1
  16. data/lib/falaai-api/api/health_api.rb +1 -1
  17. data/lib/falaai-api/api/speech_api.rb +1 -1
  18. data/lib/falaai-api/api/usage_api.rb +1 -1
  19. data/lib/falaai-api/api/version_api.rb +1 -1
  20. data/lib/falaai-api/api/webhooks_api.rb +1 -1
  21. data/lib/falaai-api/api/whatsapp_api.rb +129 -0
  22. data/lib/falaai-api/api_client.rb +1 -1
  23. data/lib/falaai-api/api_error.rb +1 -1
  24. data/lib/falaai-api/api_model_base.rb +1 -1
  25. data/lib/falaai-api/configuration.rb +1 -1
  26. data/lib/falaai-api/models/audio_event.rb +1 -1
  27. data/lib/falaai-api/models/audio_input_meta.rb +1 -1
  28. data/lib/falaai-api/models/create_email_alert_request.rb +1 -1
  29. data/lib/falaai-api/models/create_webhook_request.rb +1 -1
  30. data/lib/falaai-api/models/diagnostic_analysis_map.rb +1 -1
  31. data/lib/falaai-api/models/diagnostic_audio_event.rb +1 -1
  32. data/lib/falaai-api/models/diagnostic_categorical_analysis.rb +1 -1
  33. data/lib/falaai-api/models/diagnostic_participant.rb +1 -1
  34. data/lib/falaai-api/models/diagnostic_request.rb +1 -1
  35. data/lib/falaai-api/models/diagnostic_response.rb +1 -1
  36. data/lib/falaai-api/models/diagnostic_text_analysis.rb +1 -1
  37. data/lib/falaai-api/models/diagnostic_usage.rb +1 -1
  38. data/lib/falaai-api/models/email_alert_item.rb +1 -1
  39. data/lib/falaai-api/models/email_alert_list_response.rb +1 -1
  40. data/lib/falaai-api/models/email_alert_message_response.rb +1 -1
  41. data/lib/falaai-api/models/email_event.rb +1 -1
  42. data/lib/falaai-api/models/health_response.rb +1 -1
  43. data/lib/falaai-api/models/http_validation_error.rb +1 -1
  44. data/lib/falaai-api/models/location_inner.rb +1 -1
  45. data/lib/falaai-api/models/message_response.rb +1 -1
  46. data/lib/falaai-api/models/participant.rb +1 -1
  47. data/lib/falaai-api/models/participant_diagnostic.rb +1 -1
  48. data/lib/falaai-api/models/risk_audit_analysis_v2.rb +1 -1
  49. data/lib/falaai-api/models/risk_audit_applied_action_v2.rb +1 -1
  50. data/lib/falaai-api/models/risk_audit_audio_event_model_v2.rb +1 -1
  51. data/lib/falaai-api/models/risk_audit_audit_decisions_v2.rb +1 -1
  52. data/lib/falaai-api/models/risk_audit_conversation_scores_v2.rb +1 -1
  53. data/lib/falaai-api/models/risk_audit_detection_item_v2.rb +1 -1
  54. data/lib/falaai-api/models/risk_audit_detections_v2.rb +1 -1
  55. data/lib/falaai-api/models/risk_audit_indexer_v2.rb +1 -1
  56. data/lib/falaai-api/models/risk_audit_meta_v2.rb +1 -1
  57. data/lib/falaai-api/models/risk_audit_participant_v2.rb +1 -1
  58. data/lib/falaai-api/models/risk_audit_participants_v2.rb +1 -1
  59. data/lib/falaai-api/models/risk_audit_request.rb +9 -18
  60. data/lib/falaai-api/models/risk_audit_scores_v2.rb +1 -1
  61. data/lib/falaai-api/models/risk_audit_scoring_explanation_v2.rb +1 -1
  62. data/lib/falaai-api/models/risk_audit_summary_v2.rb +1 -1
  63. data/lib/falaai-api/models/risk_audit_timeline_v2.rb +1 -1
  64. data/lib/falaai-api/models/risk_audit_usage_v2.rb +1 -1
  65. data/lib/falaai-api/models/risk_audit_v2.rb +1 -1
  66. data/lib/falaai-api/models/risk_audit_v2_response.rb +1 -1
  67. data/lib/falaai-api/models/risk_audit_verdict_v2.rb +1 -1
  68. data/lib/falaai-api/models/transcription_response.rb +1 -1
  69. data/lib/falaai-api/models/transcription_usage.rb +1 -1
  70. data/lib/falaai-api/models/update_email_alert_request.rb +1 -1
  71. data/lib/falaai-api/models/update_webhook_request.rb +1 -1
  72. data/lib/falaai-api/models/usage_by_key_item.rb +1 -1
  73. data/lib/falaai-api/models/usage_log_item.rb +1 -1
  74. data/lib/falaai-api/models/usage_log_response.rb +1 -1
  75. data/lib/falaai-api/models/validation_error.rb +1 -1
  76. data/lib/falaai-api/models/version_response.rb +1 -1
  77. data/lib/falaai-api/models/webhook_event.rb +1 -1
  78. data/lib/falaai-api/models/webhook_item.rb +1 -1
  79. data/lib/falaai-api/models/webhook_list_response.rb +1 -1
  80. data/lib/falaai-api/models/whatsapp_conversation.rb +356 -0
  81. data/lib/falaai-api/models/whatsapp_conversations_response.rb +285 -0
  82. data/lib/falaai-api/models/whatsapp_meta.rb +570 -0
  83. data/lib/falaai-api/models/whatsapp_speaker.rb +192 -0
  84. data/lib/falaai-api/models/whatsapp_usage.rb +246 -0
  85. data/lib/falaai-api/version.rb +2 -2
  86. data/lib/falaai-api.rb +7 -1
  87. metadata +17 -2
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -42,7 +42,7 @@ module FalaAI
42
42
  # Explicit participant roles. If omitted, LLM infers from dialog (Lei 17). When provided, used as ground truth — no inference.
43
43
  attr_accessor :participants
44
44
 
45
- # Response format version. v1=legacy flat PT-BR, v2=structured EN-US blocks.
45
+ # Response format version. Only 'v2' (structured EN-US blocks) is available today.
46
46
  attr_accessor :response_format
47
47
 
48
48
  # Optional client-supplied ID echoed verbatim in the response. Use to correlate/sync with your system. Accepted charset: [A-Za-z0-9._:-], max 128 chars. Not idempotency.
@@ -236,11 +236,6 @@ module FalaAI
236
236
  invalid_properties.push('invalid value for "participants", number of items must be less than or equal to 10.')
237
237
  end
238
238
 
239
- pattern = Regexp.new(/^v[0-9]+$/)
240
- if !@response_format.nil? && @response_format !~ pattern
241
- invalid_properties.push("invalid value for \"response_format\", must conform to the pattern #{pattern}.")
242
- end
243
-
244
239
  invalid_properties
245
240
  end
246
241
 
@@ -258,7 +253,8 @@ module FalaAI
258
253
  call_direction_validator = EnumAttributeValidator.new('String', ["inbound", "outbound"])
259
254
  return false unless call_direction_validator.valid?(@call_direction)
260
255
  return false if !@participants.nil? && @participants.length > 10
261
- return false if !@response_format.nil? && @response_format !~ Regexp.new(/^v[0-9]+$/)
256
+ response_format_validator = EnumAttributeValidator.new('String', ["v2"])
257
+ return false unless response_format_validator.valid?(@response_format)
262
258
  true
263
259
  end
264
260
 
@@ -362,18 +358,13 @@ module FalaAI
362
358
  @participants = participants
363
359
  end
364
360
 
365
- # Custom attribute writer method with validation
366
- # @param [Object] response_format Value to be assigned
361
+ # Custom attribute writer method checking allowed values (enum).
362
+ # @param [Object] response_format Object to be assigned
367
363
  def response_format=(response_format)
368
- if response_format.nil?
369
- fail ArgumentError, 'response_format cannot be nil'
364
+ validator = EnumAttributeValidator.new('String', ["v2"])
365
+ unless validator.valid?(response_format)
366
+ fail ArgumentError, "invalid value for \"response_format\", must be one of #{validator.allowable_values}."
370
367
  end
371
-
372
- pattern = Regexp.new(/^v[0-9]+$/)
373
- if response_format !~ pattern
374
- fail ArgumentError, "invalid value for \"response_format\", must conform to the pattern #{pattern}."
375
- end
376
-
377
368
  @response_format = response_format
378
369
  end
379
370
 
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.49
6
+ The version of the OpenAPI document: 1.21.51
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -0,0 +1,356 @@
1
+ =begin
2
+ #FalaAI API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ The version of the OpenAPI document: 1.21.51
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.25.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FalaAI
17
+ class WhatsappConversation < ApiModelBase
18
+ # Conversation identifier in the batch
19
+ attr_accessor :conversation_id
20
+
21
+ # Real start (wall-clock, ISO)
22
+ attr_accessor :first_at
23
+
24
+ # Real end (wall-clock, ISO)
25
+ attr_accessor :last_at
26
+
27
+ # (last - first) + last turn duration
28
+ attr_accessor :duration_seconds
29
+
30
+ # Speakers of THIS conversation (dynamic)
31
+ attr_accessor :speakers
32
+
33
+ # Lines 'Speaker N: [HH:MM:SS.mmm - HH:MM:SS.mmm] text' (real offset)
34
+ attr_accessor :dialog
35
+
36
+ # Number of messages
37
+ attr_accessor :message_count
38
+
39
+ # Total characters of the conversation
40
+ attr_accessor :characters
41
+
42
+ # Attribute mapping from ruby-style variable name to JSON key.
43
+ def self.attribute_map
44
+ {
45
+ :'conversation_id' => :'conversation_id',
46
+ :'first_at' => :'first_at',
47
+ :'last_at' => :'last_at',
48
+ :'duration_seconds' => :'duration_seconds',
49
+ :'speakers' => :'speakers',
50
+ :'dialog' => :'dialog',
51
+ :'message_count' => :'message_count',
52
+ :'characters' => :'characters'
53
+ }
54
+ end
55
+
56
+ # Returns attribute mapping this model knows about
57
+ def self.acceptable_attribute_map
58
+ attribute_map
59
+ end
60
+
61
+ # Returns all the JSON keys this model knows about
62
+ def self.acceptable_attributes
63
+ acceptable_attribute_map.values
64
+ end
65
+
66
+ # Attribute type mapping.
67
+ def self.openapi_types
68
+ {
69
+ :'conversation_id' => :'String',
70
+ :'first_at' => :'String',
71
+ :'last_at' => :'String',
72
+ :'duration_seconds' => :'Float',
73
+ :'speakers' => :'Array<WhatsappSpeaker>',
74
+ :'dialog' => :'String',
75
+ :'message_count' => :'Integer',
76
+ :'characters' => :'Integer'
77
+ }
78
+ end
79
+
80
+ # List of attributes with nullable: true
81
+ def self.openapi_nullable
82
+ Set.new([
83
+ ])
84
+ end
85
+
86
+ # Initializes the object
87
+ # @param [Hash] attributes Model attributes in the form of hash
88
+ def initialize(attributes = {})
89
+ if (!attributes.is_a?(Hash))
90
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FalaAI::WhatsappConversation` initialize method"
91
+ end
92
+
93
+ # check to see if the attribute exists and convert string to symbol for hash key
94
+ acceptable_attribute_map = self.class.acceptable_attribute_map
95
+ attributes = attributes.each_with_object({}) { |(k, v), h|
96
+ if (!acceptable_attribute_map.key?(k.to_sym))
97
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FalaAI::WhatsappConversation`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
98
+ end
99
+ h[k.to_sym] = v
100
+ }
101
+
102
+ if attributes.key?(:'conversation_id')
103
+ self.conversation_id = attributes[:'conversation_id']
104
+ else
105
+ self.conversation_id = nil
106
+ end
107
+
108
+ if attributes.key?(:'first_at')
109
+ self.first_at = attributes[:'first_at']
110
+ else
111
+ self.first_at = nil
112
+ end
113
+
114
+ if attributes.key?(:'last_at')
115
+ self.last_at = attributes[:'last_at']
116
+ else
117
+ self.last_at = nil
118
+ end
119
+
120
+ if attributes.key?(:'duration_seconds')
121
+ self.duration_seconds = attributes[:'duration_seconds']
122
+ else
123
+ self.duration_seconds = nil
124
+ end
125
+
126
+ if attributes.key?(:'speakers')
127
+ if (value = attributes[:'speakers']).is_a?(Array)
128
+ self.speakers = value
129
+ end
130
+ else
131
+ self.speakers = nil
132
+ end
133
+
134
+ if attributes.key?(:'dialog')
135
+ self.dialog = attributes[:'dialog']
136
+ else
137
+ self.dialog = nil
138
+ end
139
+
140
+ if attributes.key?(:'message_count')
141
+ self.message_count = attributes[:'message_count']
142
+ else
143
+ self.message_count = nil
144
+ end
145
+
146
+ if attributes.key?(:'characters')
147
+ self.characters = attributes[:'characters']
148
+ else
149
+ self.characters = nil
150
+ end
151
+ end
152
+
153
+ # Show invalid properties with the reasons. Usually used together with valid?
154
+ # @return Array for valid properties with the reasons
155
+ def list_invalid_properties
156
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
157
+ invalid_properties = Array.new
158
+ if @conversation_id.nil?
159
+ invalid_properties.push('invalid value for "conversation_id", conversation_id cannot be nil.')
160
+ end
161
+
162
+ if @first_at.nil?
163
+ invalid_properties.push('invalid value for "first_at", first_at cannot be nil.')
164
+ end
165
+
166
+ if @last_at.nil?
167
+ invalid_properties.push('invalid value for "last_at", last_at cannot be nil.')
168
+ end
169
+
170
+ if @duration_seconds.nil?
171
+ invalid_properties.push('invalid value for "duration_seconds", duration_seconds cannot be nil.')
172
+ end
173
+
174
+ if @speakers.nil?
175
+ invalid_properties.push('invalid value for "speakers", speakers cannot be nil.')
176
+ end
177
+
178
+ if @dialog.nil?
179
+ invalid_properties.push('invalid value for "dialog", dialog cannot be nil.')
180
+ end
181
+
182
+ if @message_count.nil?
183
+ invalid_properties.push('invalid value for "message_count", message_count cannot be nil.')
184
+ end
185
+
186
+ if @characters.nil?
187
+ invalid_properties.push('invalid value for "characters", characters cannot be nil.')
188
+ end
189
+
190
+ invalid_properties
191
+ end
192
+
193
+ # Check to see if the all the properties in the model are valid
194
+ # @return true if the model is valid
195
+ def valid?
196
+ warn '[DEPRECATED] the `valid?` method is obsolete'
197
+ return false if @conversation_id.nil?
198
+ return false if @first_at.nil?
199
+ return false if @last_at.nil?
200
+ return false if @duration_seconds.nil?
201
+ return false if @speakers.nil?
202
+ return false if @dialog.nil?
203
+ return false if @message_count.nil?
204
+ return false if @characters.nil?
205
+ true
206
+ end
207
+
208
+ # Custom attribute writer method with validation
209
+ # @param [Object] conversation_id Value to be assigned
210
+ def conversation_id=(conversation_id)
211
+ if conversation_id.nil?
212
+ fail ArgumentError, 'conversation_id cannot be nil'
213
+ end
214
+
215
+ @conversation_id = conversation_id
216
+ end
217
+
218
+ # Custom attribute writer method with validation
219
+ # @param [Object] first_at Value to be assigned
220
+ def first_at=(first_at)
221
+ if first_at.nil?
222
+ fail ArgumentError, 'first_at cannot be nil'
223
+ end
224
+
225
+ @first_at = first_at
226
+ end
227
+
228
+ # Custom attribute writer method with validation
229
+ # @param [Object] last_at Value to be assigned
230
+ def last_at=(last_at)
231
+ if last_at.nil?
232
+ fail ArgumentError, 'last_at cannot be nil'
233
+ end
234
+
235
+ @last_at = last_at
236
+ end
237
+
238
+ # Custom attribute writer method with validation
239
+ # @param [Object] duration_seconds Value to be assigned
240
+ def duration_seconds=(duration_seconds)
241
+ if duration_seconds.nil?
242
+ fail ArgumentError, 'duration_seconds cannot be nil'
243
+ end
244
+
245
+ @duration_seconds = duration_seconds
246
+ end
247
+
248
+ # Custom attribute writer method with validation
249
+ # @param [Object] speakers Value to be assigned
250
+ def speakers=(speakers)
251
+ if speakers.nil?
252
+ fail ArgumentError, 'speakers cannot be nil'
253
+ end
254
+
255
+ @speakers = speakers
256
+ end
257
+
258
+ # Custom attribute writer method with validation
259
+ # @param [Object] dialog Value to be assigned
260
+ def dialog=(dialog)
261
+ if dialog.nil?
262
+ fail ArgumentError, 'dialog cannot be nil'
263
+ end
264
+
265
+ @dialog = dialog
266
+ end
267
+
268
+ # Custom attribute writer method with validation
269
+ # @param [Object] message_count Value to be assigned
270
+ def message_count=(message_count)
271
+ if message_count.nil?
272
+ fail ArgumentError, 'message_count cannot be nil'
273
+ end
274
+
275
+ @message_count = message_count
276
+ end
277
+
278
+ # Custom attribute writer method with validation
279
+ # @param [Object] characters Value to be assigned
280
+ def characters=(characters)
281
+ if characters.nil?
282
+ fail ArgumentError, 'characters cannot be nil'
283
+ end
284
+
285
+ @characters = characters
286
+ end
287
+
288
+ # Checks equality by comparing each attribute.
289
+ # @param [Object] Object to be compared
290
+ def ==(o)
291
+ return true if self.equal?(o)
292
+ self.class == o.class &&
293
+ conversation_id == o.conversation_id &&
294
+ first_at == o.first_at &&
295
+ last_at == o.last_at &&
296
+ duration_seconds == o.duration_seconds &&
297
+ speakers == o.speakers &&
298
+ dialog == o.dialog &&
299
+ message_count == o.message_count &&
300
+ characters == o.characters
301
+ end
302
+
303
+ # @see the `==` method
304
+ # @param [Object] Object to be compared
305
+ def eql?(o)
306
+ self == o
307
+ end
308
+
309
+ # Calculates hash code according to all attributes.
310
+ # @return [Integer] Hash code
311
+ def hash
312
+ [conversation_id, first_at, last_at, duration_seconds, speakers, dialog, message_count, characters].hash
313
+ end
314
+
315
+ # Builds the object from hash
316
+ # @param [Hash] attributes Model attributes in the form of hash
317
+ # @return [Object] Returns the model itself
318
+ def self.build_from_hash(attributes)
319
+ return nil unless attributes.is_a?(Hash)
320
+ attributes = attributes.transform_keys(&:to_sym)
321
+ transformed_hash = {}
322
+ openapi_types.each_pair do |key, type|
323
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
324
+ transformed_hash["#{key}"] = nil
325
+ elsif type =~ /\AArray<(.*)>/i
326
+ # check to ensure the input is an array given that the attribute
327
+ # is documented as an array but the input is not
328
+ if attributes[attribute_map[key]].is_a?(Array)
329
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
330
+ end
331
+ elsif !attributes[attribute_map[key]].nil?
332
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
333
+ end
334
+ end
335
+ new(transformed_hash)
336
+ end
337
+
338
+ # Returns the object in the form of hash
339
+ # @return [Hash] Returns the object in the form of hash
340
+ def to_hash
341
+ hash = {}
342
+ self.class.attribute_map.each_pair do |attr, param|
343
+ value = self.send(attr)
344
+ if value.nil?
345
+ is_nullable = self.class.openapi_nullable.include?(attr)
346
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
347
+ end
348
+
349
+ hash[param] = _to_hash(value)
350
+ end
351
+ hash
352
+ end
353
+
354
+ end
355
+
356
+ end