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
@@ -0,0 +1,570 @@
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 WhatsappMeta < ApiModelBase
18
+ # Uploaded file name
19
+ attr_accessor :file
20
+
21
+ # chat.txt entry name inside the export
22
+ attr_accessor :chat_txt
23
+
24
+ # Detected format: Android | iOS
25
+ attr_accessor :format
26
+
27
+ # Date order used
28
+ attr_accessor :date_format
29
+
30
+ # Timezone informed
31
+ attr_accessor :timezone
32
+
33
+ # Window start (ISO)
34
+ attr_accessor :start
35
+
36
+ # Window end (ISO)
37
+ attr_accessor :_end
38
+
39
+ # Gap used to split conversations
40
+ attr_accessor :gap_minutes
41
+
42
+ # Minimum messages per conversation
43
+ attr_accessor :min_messages
44
+
45
+ # Chars per minute used to estimate duration
46
+ attr_accessor :chars_per_minute
47
+
48
+ # Total parsed turns
49
+ attr_accessor :turns
50
+
51
+ # System lines ignored
52
+ attr_accessor :system_lines
53
+
54
+ # Conversations before window filter
55
+ attr_accessor :conversations_total
56
+
57
+ # Conversations overlapping the window
58
+ attr_accessor :conversations_in_window
59
+
60
+ # Single-speaker conversations dropped
61
+ attr_accessor :monologues_dropped
62
+
63
+ # Final conversations returned
64
+ attr_accessor :conversations_selected
65
+
66
+ # Attribute mapping from ruby-style variable name to JSON key.
67
+ def self.attribute_map
68
+ {
69
+ :'file' => :'file',
70
+ :'chat_txt' => :'chat_txt',
71
+ :'format' => :'format',
72
+ :'date_format' => :'date_format',
73
+ :'timezone' => :'timezone',
74
+ :'start' => :'start',
75
+ :'_end' => :'end',
76
+ :'gap_minutes' => :'gap_minutes',
77
+ :'min_messages' => :'min_messages',
78
+ :'chars_per_minute' => :'chars_per_minute',
79
+ :'turns' => :'turns',
80
+ :'system_lines' => :'system_lines',
81
+ :'conversations_total' => :'conversations_total',
82
+ :'conversations_in_window' => :'conversations_in_window',
83
+ :'monologues_dropped' => :'monologues_dropped',
84
+ :'conversations_selected' => :'conversations_selected'
85
+ }
86
+ end
87
+
88
+ # Returns attribute mapping this model knows about
89
+ def self.acceptable_attribute_map
90
+ attribute_map
91
+ end
92
+
93
+ # Returns all the JSON keys this model knows about
94
+ def self.acceptable_attributes
95
+ acceptable_attribute_map.values
96
+ end
97
+
98
+ # Attribute type mapping.
99
+ def self.openapi_types
100
+ {
101
+ :'file' => :'String',
102
+ :'chat_txt' => :'String',
103
+ :'format' => :'String',
104
+ :'date_format' => :'String',
105
+ :'timezone' => :'String',
106
+ :'start' => :'String',
107
+ :'_end' => :'String',
108
+ :'gap_minutes' => :'Float',
109
+ :'min_messages' => :'Integer',
110
+ :'chars_per_minute' => :'Float',
111
+ :'turns' => :'Integer',
112
+ :'system_lines' => :'Integer',
113
+ :'conversations_total' => :'Integer',
114
+ :'conversations_in_window' => :'Integer',
115
+ :'monologues_dropped' => :'Integer',
116
+ :'conversations_selected' => :'Integer'
117
+ }
118
+ end
119
+
120
+ # List of attributes with nullable: true
121
+ def self.openapi_nullable
122
+ Set.new([
123
+ ])
124
+ end
125
+
126
+ # Initializes the object
127
+ # @param [Hash] attributes Model attributes in the form of hash
128
+ def initialize(attributes = {})
129
+ if (!attributes.is_a?(Hash))
130
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FalaAI::WhatsappMeta` initialize method"
131
+ end
132
+
133
+ # check to see if the attribute exists and convert string to symbol for hash key
134
+ acceptable_attribute_map = self.class.acceptable_attribute_map
135
+ attributes = attributes.each_with_object({}) { |(k, v), h|
136
+ if (!acceptable_attribute_map.key?(k.to_sym))
137
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FalaAI::WhatsappMeta`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
138
+ end
139
+ h[k.to_sym] = v
140
+ }
141
+
142
+ if attributes.key?(:'file')
143
+ self.file = attributes[:'file']
144
+ else
145
+ self.file = nil
146
+ end
147
+
148
+ if attributes.key?(:'chat_txt')
149
+ self.chat_txt = attributes[:'chat_txt']
150
+ else
151
+ self.chat_txt = nil
152
+ end
153
+
154
+ if attributes.key?(:'format')
155
+ self.format = attributes[:'format']
156
+ else
157
+ self.format = nil
158
+ end
159
+
160
+ if attributes.key?(:'date_format')
161
+ self.date_format = attributes[:'date_format']
162
+ else
163
+ self.date_format = nil
164
+ end
165
+
166
+ if attributes.key?(:'timezone')
167
+ self.timezone = attributes[:'timezone']
168
+ else
169
+ self.timezone = nil
170
+ end
171
+
172
+ if attributes.key?(:'start')
173
+ self.start = attributes[:'start']
174
+ else
175
+ self.start = nil
176
+ end
177
+
178
+ if attributes.key?(:'_end')
179
+ self._end = attributes[:'_end']
180
+ else
181
+ self._end = nil
182
+ end
183
+
184
+ if attributes.key?(:'gap_minutes')
185
+ self.gap_minutes = attributes[:'gap_minutes']
186
+ else
187
+ self.gap_minutes = nil
188
+ end
189
+
190
+ if attributes.key?(:'min_messages')
191
+ self.min_messages = attributes[:'min_messages']
192
+ else
193
+ self.min_messages = nil
194
+ end
195
+
196
+ if attributes.key?(:'chars_per_minute')
197
+ self.chars_per_minute = attributes[:'chars_per_minute']
198
+ else
199
+ self.chars_per_minute = nil
200
+ end
201
+
202
+ if attributes.key?(:'turns')
203
+ self.turns = attributes[:'turns']
204
+ else
205
+ self.turns = nil
206
+ end
207
+
208
+ if attributes.key?(:'system_lines')
209
+ self.system_lines = attributes[:'system_lines']
210
+ else
211
+ self.system_lines = nil
212
+ end
213
+
214
+ if attributes.key?(:'conversations_total')
215
+ self.conversations_total = attributes[:'conversations_total']
216
+ else
217
+ self.conversations_total = nil
218
+ end
219
+
220
+ if attributes.key?(:'conversations_in_window')
221
+ self.conversations_in_window = attributes[:'conversations_in_window']
222
+ else
223
+ self.conversations_in_window = nil
224
+ end
225
+
226
+ if attributes.key?(:'monologues_dropped')
227
+ self.monologues_dropped = attributes[:'monologues_dropped']
228
+ else
229
+ self.monologues_dropped = nil
230
+ end
231
+
232
+ if attributes.key?(:'conversations_selected')
233
+ self.conversations_selected = attributes[:'conversations_selected']
234
+ else
235
+ self.conversations_selected = nil
236
+ end
237
+ end
238
+
239
+ # Show invalid properties with the reasons. Usually used together with valid?
240
+ # @return Array for valid properties with the reasons
241
+ def list_invalid_properties
242
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
243
+ invalid_properties = Array.new
244
+ if @file.nil?
245
+ invalid_properties.push('invalid value for "file", file cannot be nil.')
246
+ end
247
+
248
+ if @chat_txt.nil?
249
+ invalid_properties.push('invalid value for "chat_txt", chat_txt cannot be nil.')
250
+ end
251
+
252
+ if @format.nil?
253
+ invalid_properties.push('invalid value for "format", format cannot be nil.')
254
+ end
255
+
256
+ if @date_format.nil?
257
+ invalid_properties.push('invalid value for "date_format", date_format cannot be nil.')
258
+ end
259
+
260
+ if @timezone.nil?
261
+ invalid_properties.push('invalid value for "timezone", timezone cannot be nil.')
262
+ end
263
+
264
+ if @start.nil?
265
+ invalid_properties.push('invalid value for "start", start cannot be nil.')
266
+ end
267
+
268
+ if @_end.nil?
269
+ invalid_properties.push('invalid value for "_end", _end cannot be nil.')
270
+ end
271
+
272
+ if @gap_minutes.nil?
273
+ invalid_properties.push('invalid value for "gap_minutes", gap_minutes cannot be nil.')
274
+ end
275
+
276
+ if @min_messages.nil?
277
+ invalid_properties.push('invalid value for "min_messages", min_messages cannot be nil.')
278
+ end
279
+
280
+ if @chars_per_minute.nil?
281
+ invalid_properties.push('invalid value for "chars_per_minute", chars_per_minute cannot be nil.')
282
+ end
283
+
284
+ if @turns.nil?
285
+ invalid_properties.push('invalid value for "turns", turns cannot be nil.')
286
+ end
287
+
288
+ if @system_lines.nil?
289
+ invalid_properties.push('invalid value for "system_lines", system_lines cannot be nil.')
290
+ end
291
+
292
+ if @conversations_total.nil?
293
+ invalid_properties.push('invalid value for "conversations_total", conversations_total cannot be nil.')
294
+ end
295
+
296
+ if @conversations_in_window.nil?
297
+ invalid_properties.push('invalid value for "conversations_in_window", conversations_in_window cannot be nil.')
298
+ end
299
+
300
+ if @monologues_dropped.nil?
301
+ invalid_properties.push('invalid value for "monologues_dropped", monologues_dropped cannot be nil.')
302
+ end
303
+
304
+ if @conversations_selected.nil?
305
+ invalid_properties.push('invalid value for "conversations_selected", conversations_selected cannot be nil.')
306
+ end
307
+
308
+ invalid_properties
309
+ end
310
+
311
+ # Check to see if the all the properties in the model are valid
312
+ # @return true if the model is valid
313
+ def valid?
314
+ warn '[DEPRECATED] the `valid?` method is obsolete'
315
+ return false if @file.nil?
316
+ return false if @chat_txt.nil?
317
+ return false if @format.nil?
318
+ return false if @date_format.nil?
319
+ return false if @timezone.nil?
320
+ return false if @start.nil?
321
+ return false if @_end.nil?
322
+ return false if @gap_minutes.nil?
323
+ return false if @min_messages.nil?
324
+ return false if @chars_per_minute.nil?
325
+ return false if @turns.nil?
326
+ return false if @system_lines.nil?
327
+ return false if @conversations_total.nil?
328
+ return false if @conversations_in_window.nil?
329
+ return false if @monologues_dropped.nil?
330
+ return false if @conversations_selected.nil?
331
+ true
332
+ end
333
+
334
+ # Custom attribute writer method with validation
335
+ # @param [Object] file Value to be assigned
336
+ def file=(file)
337
+ if file.nil?
338
+ fail ArgumentError, 'file cannot be nil'
339
+ end
340
+
341
+ @file = file
342
+ end
343
+
344
+ # Custom attribute writer method with validation
345
+ # @param [Object] chat_txt Value to be assigned
346
+ def chat_txt=(chat_txt)
347
+ if chat_txt.nil?
348
+ fail ArgumentError, 'chat_txt cannot be nil'
349
+ end
350
+
351
+ @chat_txt = chat_txt
352
+ end
353
+
354
+ # Custom attribute writer method with validation
355
+ # @param [Object] format Value to be assigned
356
+ def format=(format)
357
+ if format.nil?
358
+ fail ArgumentError, 'format cannot be nil'
359
+ end
360
+
361
+ @format = format
362
+ end
363
+
364
+ # Custom attribute writer method with validation
365
+ # @param [Object] date_format Value to be assigned
366
+ def date_format=(date_format)
367
+ if date_format.nil?
368
+ fail ArgumentError, 'date_format cannot be nil'
369
+ end
370
+
371
+ @date_format = date_format
372
+ end
373
+
374
+ # Custom attribute writer method with validation
375
+ # @param [Object] timezone Value to be assigned
376
+ def timezone=(timezone)
377
+ if timezone.nil?
378
+ fail ArgumentError, 'timezone cannot be nil'
379
+ end
380
+
381
+ @timezone = timezone
382
+ end
383
+
384
+ # Custom attribute writer method with validation
385
+ # @param [Object] start Value to be assigned
386
+ def start=(start)
387
+ if start.nil?
388
+ fail ArgumentError, 'start cannot be nil'
389
+ end
390
+
391
+ @start = start
392
+ end
393
+
394
+ # Custom attribute writer method with validation
395
+ # @param [Object] _end Value to be assigned
396
+ def _end=(_end)
397
+ if _end.nil?
398
+ fail ArgumentError, '_end cannot be nil'
399
+ end
400
+
401
+ @_end = _end
402
+ end
403
+
404
+ # Custom attribute writer method with validation
405
+ # @param [Object] gap_minutes Value to be assigned
406
+ def gap_minutes=(gap_minutes)
407
+ if gap_minutes.nil?
408
+ fail ArgumentError, 'gap_minutes cannot be nil'
409
+ end
410
+
411
+ @gap_minutes = gap_minutes
412
+ end
413
+
414
+ # Custom attribute writer method with validation
415
+ # @param [Object] min_messages Value to be assigned
416
+ def min_messages=(min_messages)
417
+ if min_messages.nil?
418
+ fail ArgumentError, 'min_messages cannot be nil'
419
+ end
420
+
421
+ @min_messages = min_messages
422
+ end
423
+
424
+ # Custom attribute writer method with validation
425
+ # @param [Object] chars_per_minute Value to be assigned
426
+ def chars_per_minute=(chars_per_minute)
427
+ if chars_per_minute.nil?
428
+ fail ArgumentError, 'chars_per_minute cannot be nil'
429
+ end
430
+
431
+ @chars_per_minute = chars_per_minute
432
+ end
433
+
434
+ # Custom attribute writer method with validation
435
+ # @param [Object] turns Value to be assigned
436
+ def turns=(turns)
437
+ if turns.nil?
438
+ fail ArgumentError, 'turns cannot be nil'
439
+ end
440
+
441
+ @turns = turns
442
+ end
443
+
444
+ # Custom attribute writer method with validation
445
+ # @param [Object] system_lines Value to be assigned
446
+ def system_lines=(system_lines)
447
+ if system_lines.nil?
448
+ fail ArgumentError, 'system_lines cannot be nil'
449
+ end
450
+
451
+ @system_lines = system_lines
452
+ end
453
+
454
+ # Custom attribute writer method with validation
455
+ # @param [Object] conversations_total Value to be assigned
456
+ def conversations_total=(conversations_total)
457
+ if conversations_total.nil?
458
+ fail ArgumentError, 'conversations_total cannot be nil'
459
+ end
460
+
461
+ @conversations_total = conversations_total
462
+ end
463
+
464
+ # Custom attribute writer method with validation
465
+ # @param [Object] conversations_in_window Value to be assigned
466
+ def conversations_in_window=(conversations_in_window)
467
+ if conversations_in_window.nil?
468
+ fail ArgumentError, 'conversations_in_window cannot be nil'
469
+ end
470
+
471
+ @conversations_in_window = conversations_in_window
472
+ end
473
+
474
+ # Custom attribute writer method with validation
475
+ # @param [Object] monologues_dropped Value to be assigned
476
+ def monologues_dropped=(monologues_dropped)
477
+ if monologues_dropped.nil?
478
+ fail ArgumentError, 'monologues_dropped cannot be nil'
479
+ end
480
+
481
+ @monologues_dropped = monologues_dropped
482
+ end
483
+
484
+ # Custom attribute writer method with validation
485
+ # @param [Object] conversations_selected Value to be assigned
486
+ def conversations_selected=(conversations_selected)
487
+ if conversations_selected.nil?
488
+ fail ArgumentError, 'conversations_selected cannot be nil'
489
+ end
490
+
491
+ @conversations_selected = conversations_selected
492
+ end
493
+
494
+ # Checks equality by comparing each attribute.
495
+ # @param [Object] Object to be compared
496
+ def ==(o)
497
+ return true if self.equal?(o)
498
+ self.class == o.class &&
499
+ file == o.file &&
500
+ chat_txt == o.chat_txt &&
501
+ format == o.format &&
502
+ date_format == o.date_format &&
503
+ timezone == o.timezone &&
504
+ start == o.start &&
505
+ _end == o._end &&
506
+ gap_minutes == o.gap_minutes &&
507
+ min_messages == o.min_messages &&
508
+ chars_per_minute == o.chars_per_minute &&
509
+ turns == o.turns &&
510
+ system_lines == o.system_lines &&
511
+ conversations_total == o.conversations_total &&
512
+ conversations_in_window == o.conversations_in_window &&
513
+ monologues_dropped == o.monologues_dropped &&
514
+ conversations_selected == o.conversations_selected
515
+ end
516
+
517
+ # @see the `==` method
518
+ # @param [Object] Object to be compared
519
+ def eql?(o)
520
+ self == o
521
+ end
522
+
523
+ # Calculates hash code according to all attributes.
524
+ # @return [Integer] Hash code
525
+ def hash
526
+ [file, chat_txt, format, date_format, timezone, start, _end, gap_minutes, min_messages, chars_per_minute, turns, system_lines, conversations_total, conversations_in_window, monologues_dropped, conversations_selected].hash
527
+ end
528
+
529
+ # Builds the object from hash
530
+ # @param [Hash] attributes Model attributes in the form of hash
531
+ # @return [Object] Returns the model itself
532
+ def self.build_from_hash(attributes)
533
+ return nil unless attributes.is_a?(Hash)
534
+ attributes = attributes.transform_keys(&:to_sym)
535
+ transformed_hash = {}
536
+ openapi_types.each_pair do |key, type|
537
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
538
+ transformed_hash["#{key}"] = nil
539
+ elsif type =~ /\AArray<(.*)>/i
540
+ # check to ensure the input is an array given that the attribute
541
+ # is documented as an array but the input is not
542
+ if attributes[attribute_map[key]].is_a?(Array)
543
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
544
+ end
545
+ elsif !attributes[attribute_map[key]].nil?
546
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
547
+ end
548
+ end
549
+ new(transformed_hash)
550
+ end
551
+
552
+ # Returns the object in the form of hash
553
+ # @return [Hash] Returns the object in the form of hash
554
+ def to_hash
555
+ hash = {}
556
+ self.class.attribute_map.each_pair do |attr, param|
557
+ value = self.send(attr)
558
+ if value.nil?
559
+ is_nullable = self.class.openapi_nullable.include?(attr)
560
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
561
+ end
562
+
563
+ hash[param] = _to_hash(value)
564
+ end
565
+ hash
566
+ end
567
+
568
+ end
569
+
570
+ end