onesignal 0.3.0 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +6 -1
  3. data/README.md +126 -111
  4. data/Rakefile +8 -8
  5. data/docs/App.md +76 -0
  6. data/docs/Button.md +22 -0
  7. data/docs/DefaultApi.md +1394 -0
  8. data/docs/DeliveryData.md +26 -0
  9. data/docs/ExportPlayersRequestBody.md +22 -0
  10. data/docs/Filter.md +24 -0
  11. data/docs/FilterExpressions.md +26 -0
  12. data/docs/FilterNotificationTarget.md +40 -0
  13. data/docs/GetNotificationRequestBody.md +22 -0
  14. data/docs/InlineResponse200.md +24 -0
  15. data/docs/InlineResponse2001.md +18 -0
  16. data/docs/InlineResponse2002.md +20 -0
  17. data/docs/InlineResponse2003.md +18 -0
  18. data/docs/InlineResponse2004.md +20 -0
  19. data/docs/InlineResponse2005.md +18 -0
  20. data/docs/InlineResponse201.md +20 -0
  21. data/docs/InlineResponse400.md +18 -0
  22. data/docs/InlineResponse4001.md +20 -0
  23. data/docs/InlineResponse4002.md +18 -0
  24. data/docs/InlineResponse409.md +20 -0
  25. data/docs/Notification.md +240 -0
  26. data/docs/NotificationAllOf.md +192 -0
  27. data/docs/NotificationAllOfAndroidBackgroundLayout.md +22 -0
  28. data/docs/NotificationSlice.md +24 -0
  29. data/docs/NotificationTarget.md +64 -0
  30. data/docs/Operator.md +18 -0
  31. data/docs/OutcomeData.md +22 -0
  32. data/docs/PlatformDeliveryData.md +28 -0
  33. data/docs/Player.md +70 -0
  34. data/docs/PlayerNotificationTarget.md +36 -0
  35. data/docs/PlayerSlice.md +24 -0
  36. data/docs/Purchase.md +22 -0
  37. data/docs/Segment.md +22 -0
  38. data/docs/SegmentNotificationTarget.md +20 -0
  39. data/docs/StringMap.md +102 -0
  40. data/docs/UpdatePlayerTagsRequestBody.md +18 -0
  41. data/git_push.sh +58 -0
  42. data/lib/OneSignal.rb +75 -0
  43. data/lib/onesignal/api/default_api.rb +1338 -0
  44. data/lib/onesignal/api_client.rb +391 -0
  45. data/lib/onesignal/api_error.rb +57 -0
  46. data/lib/onesignal/configuration.rb +242 -0
  47. data/lib/onesignal/models/app.rb +519 -13
  48. data/lib/onesignal/models/button.rb +241 -0
  49. data/lib/onesignal/models/delivery_data.rb +254 -0
  50. data/lib/onesignal/models/export_players_request_body.rb +241 -0
  51. data/lib/onesignal/models/filter.rb +293 -0
  52. data/lib/onesignal/models/filter_expressions.rb +335 -0
  53. data/lib/onesignal/models/filter_notification_target.rb +329 -0
  54. data/lib/onesignal/models/get_notification_request_body.rb +272 -0
  55. data/lib/onesignal/models/inline_response200.rb +256 -0
  56. data/lib/onesignal/models/inline_response2001.rb +218 -0
  57. data/lib/onesignal/models/inline_response2002.rb +227 -0
  58. data/lib/onesignal/models/inline_response2003.rb +218 -0
  59. data/lib/onesignal/models/inline_response2004.rb +227 -0
  60. data/lib/onesignal/models/inline_response2005.rb +218 -0
  61. data/lib/onesignal/models/inline_response201.rb +228 -0
  62. data/lib/onesignal/models/inline_response400.rb +220 -0
  63. data/lib/onesignal/models/inline_response4001.rb +229 -0
  64. data/lib/onesignal/models/inline_response4002.rb +220 -0
  65. data/lib/onesignal/models/inline_response409.rb +229 -0
  66. data/lib/onesignal/models/notification.rb +1395 -5
  67. data/lib/onesignal/models/notification_all_of.rb +1124 -0
  68. data/lib/onesignal/models/notification_all_of_android_background_layout.rb +240 -0
  69. data/lib/onesignal/models/notification_slice.rb +247 -0
  70. data/lib/onesignal/models/notification_target.rb +494 -0
  71. data/lib/onesignal/models/operator.rb +253 -0
  72. data/lib/onesignal/models/outcome_data.rb +285 -0
  73. data/lib/onesignal/models/platform_delivery_data.rb +264 -0
  74. data/lib/onesignal/models/player.rb +483 -9
  75. data/lib/onesignal/models/player_notification_target.rb +329 -0
  76. data/lib/onesignal/models/player_slice.rb +247 -0
  77. data/lib/onesignal/models/purchase.rb +254 -0
  78. data/lib/onesignal/models/segment.rb +251 -0
  79. data/lib/onesignal/models/segment_notification_target.rb +233 -0
  80. data/lib/onesignal/models/string_map.rb +644 -0
  81. data/lib/onesignal/models/update_player_tags_request_body.rb +219 -0
  82. data/lib/onesignal/version.rb +13 -1
  83. data/onesignal.gemspec +36 -27
  84. data/spec/api/default_api_spec.rb +285 -0
  85. data/spec/api_client_spec.rb +226 -0
  86. data/spec/configuration_spec.rb +42 -0
  87. data/spec/models/app_spec.rb +212 -0
  88. data/spec/models/button_spec.rb +46 -0
  89. data/spec/models/delivery_data_spec.rb +58 -0
  90. data/spec/models/export_players_request_body_spec.rb +46 -0
  91. data/spec/models/filter_expressions_spec.rb +66 -0
  92. data/spec/models/filter_notification_target_spec.rb +100 -0
  93. data/spec/models/filter_spec.rb +56 -0
  94. data/spec/models/get_notification_request_body_spec.rb +50 -0
  95. data/spec/models/inline_response2001_spec.rb +34 -0
  96. data/spec/models/inline_response2002_spec.rb +40 -0
  97. data/spec/models/inline_response2003_spec.rb +34 -0
  98. data/spec/models/inline_response2004_spec.rb +40 -0
  99. data/spec/models/inline_response2005_spec.rb +34 -0
  100. data/spec/models/inline_response200_spec.rb +52 -0
  101. data/spec/models/inline_response201_spec.rb +40 -0
  102. data/spec/models/inline_response4001_spec.rb +40 -0
  103. data/spec/models/inline_response4002_spec.rb +34 -0
  104. data/spec/models/inline_response400_spec.rb +34 -0
  105. data/spec/models/inline_response409_spec.rb +40 -0
  106. data/spec/models/notification_all_of_android_background_layout_spec.rb +46 -0
  107. data/spec/models/notification_all_of_spec.rb +560 -0
  108. data/spec/models/notification_slice_spec.rb +52 -0
  109. data/spec/models/notification_spec.rb +704 -0
  110. data/spec/models/notification_target_spec.rb +172 -0
  111. data/spec/models/operator_spec.rb +38 -0
  112. data/spec/models/outcome_data_spec.rb +50 -0
  113. data/spec/models/platform_delivery_data_spec.rb +64 -0
  114. data/spec/models/player_notification_target_spec.rb +88 -0
  115. data/spec/models/player_slice_spec.rb +52 -0
  116. data/spec/models/player_spec.rb +190 -0
  117. data/spec/models/purchase_spec.rb +46 -0
  118. data/spec/models/segment_notification_target_spec.rb +40 -0
  119. data/spec/models/segment_spec.rb +46 -0
  120. data/spec/models/string_map_spec.rb +286 -0
  121. data/spec/models/update_player_tags_request_body_spec.rb +34 -0
  122. data/spec/spec_helper.rb +111 -0
  123. metadata +182 -65
  124. data/.gitignore +0 -10
  125. data/.rubocop.yml +0 -17
  126. data/.travis.yml +0 -16
  127. data/CHANGELOG.md +0 -22
  128. data/CODE_OF_CONDUCT.md +0 -49
  129. data/LICENSE +0 -21
  130. data/bin/console +0 -14
  131. data/bin/setup +0 -8
  132. data/lib/onesignal/app_id_missing_error.rb +0 -7
  133. data/lib/onesignal/client.rb +0 -44
  134. data/lib/onesignal/models/base_model.rb +0 -40
  135. data/lib/onesignal/request.rb +0 -94
  136. data/lib/onesignal/request_error.rb +0 -21
  137. data/lib/onesignal/resources/app_resource.rb +0 -27
  138. data/lib/onesignal/resources/base_resource.rb +0 -35
  139. data/lib/onesignal/resources/notification_resource.rb +0 -33
  140. data/lib/onesignal/resources/player_resource.rb +0 -53
  141. data/lib/onesignal.rb +0 -23
@@ -0,0 +1,644 @@
1
+ =begin
2
+ #OneSignal
3
+
4
+ #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: devrel@onesignal.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.2.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module OneSignal
17
+ class StringMap
18
+ # Text in English. Will be used as a fallback
19
+ attr_accessor :en
20
+
21
+ # Text in Arabic.
22
+ attr_accessor :ar
23
+
24
+ # Text in Bosnian.
25
+ attr_accessor :bs
26
+
27
+ # Text in Bulgarian.
28
+ attr_accessor :bg
29
+
30
+ # Text in Catalan.
31
+ attr_accessor :ca
32
+
33
+ # Text in Chinese (Simplified).
34
+ attr_accessor :zh_hans
35
+
36
+ # Text in Chinese (Traditional).
37
+ attr_accessor :zh_hant
38
+
39
+ # Alias for zh-Hans.
40
+ attr_accessor :zh
41
+
42
+ # Text in Croatian.
43
+ attr_accessor :hr
44
+
45
+ # Text in Czech.
46
+ attr_accessor :cs
47
+
48
+ # Text in Danish.
49
+ attr_accessor :da
50
+
51
+ # Text in Dutch.
52
+ attr_accessor :nl
53
+
54
+ # Text in Estonian.
55
+ attr_accessor :et
56
+
57
+ # Text in Finnish.
58
+ attr_accessor :fi
59
+
60
+ # Text in French.
61
+ attr_accessor :fr
62
+
63
+ # Text in Georgian.
64
+ attr_accessor :ka
65
+
66
+ # Text in German.
67
+ attr_accessor :de
68
+
69
+ # Text in Greek.
70
+ attr_accessor :el
71
+
72
+ # Text in Hindi.
73
+ attr_accessor :hi
74
+
75
+ # Text in Hebrew.
76
+ attr_accessor :he
77
+
78
+ # Text in Hungarian.
79
+ attr_accessor :hu
80
+
81
+ # Text in Indonesian.
82
+ attr_accessor :id
83
+
84
+ # Text in Italian.
85
+ attr_accessor :it
86
+
87
+ # Text in Japanese.
88
+ attr_accessor :ja
89
+
90
+ # Text in Korean.
91
+ attr_accessor :ko
92
+
93
+ # Text in Latvian.
94
+ attr_accessor :lv
95
+
96
+ # Text in Lithuanian.
97
+ attr_accessor :lt
98
+
99
+ # Text in Malay.
100
+ attr_accessor :ms
101
+
102
+ # Text in Norwegian.
103
+ attr_accessor :nb
104
+
105
+ # Text in Polish.
106
+ attr_accessor :pl
107
+
108
+ # Text in Persian.
109
+ attr_accessor :fa
110
+
111
+ # Text in Portugese.
112
+ attr_accessor :pt
113
+
114
+ # Text in Punjabi.
115
+ attr_accessor :pa
116
+
117
+ # Text in Romanian.
118
+ attr_accessor :ro
119
+
120
+ # Text in Russian.
121
+ attr_accessor :ru
122
+
123
+ # Text in Serbian.
124
+ attr_accessor :sr
125
+
126
+ # Text in Slovak.
127
+ attr_accessor :sk
128
+
129
+ # Text in Spanish.
130
+ attr_accessor :es
131
+
132
+ # Text in Swedish.
133
+ attr_accessor :sv
134
+
135
+ # Text in Thai.
136
+ attr_accessor :th
137
+
138
+ # Text in Turkish.
139
+ attr_accessor :tr
140
+
141
+ # Text in Ukrainian.
142
+ attr_accessor :uk
143
+
144
+ # Text in Vietnamese.
145
+ attr_accessor :vi
146
+
147
+ # Attribute mapping from ruby-style variable name to JSON key.
148
+ def self.attribute_map
149
+ {
150
+ :'en' => :'en',
151
+ :'ar' => :'ar',
152
+ :'bs' => :'bs',
153
+ :'bg' => :'bg',
154
+ :'ca' => :'ca',
155
+ :'zh_hans' => :'zh-Hans',
156
+ :'zh_hant' => :'zh-Hant',
157
+ :'zh' => :'zh',
158
+ :'hr' => :'hr',
159
+ :'cs' => :'cs',
160
+ :'da' => :'da',
161
+ :'nl' => :'nl',
162
+ :'et' => :'et',
163
+ :'fi' => :'fi',
164
+ :'fr' => :'fr',
165
+ :'ka' => :'ka',
166
+ :'de' => :'de',
167
+ :'el' => :'el',
168
+ :'hi' => :'hi',
169
+ :'he' => :'he',
170
+ :'hu' => :'hu',
171
+ :'id' => :'id',
172
+ :'it' => :'it',
173
+ :'ja' => :'ja',
174
+ :'ko' => :'ko',
175
+ :'lv' => :'lv',
176
+ :'lt' => :'lt',
177
+ :'ms' => :'ms',
178
+ :'nb' => :'nb',
179
+ :'pl' => :'pl',
180
+ :'fa' => :'fa',
181
+ :'pt' => :'pt',
182
+ :'pa' => :'pa',
183
+ :'ro' => :'ro',
184
+ :'ru' => :'ru',
185
+ :'sr' => :'sr',
186
+ :'sk' => :'sk',
187
+ :'es' => :'es',
188
+ :'sv' => :'sv',
189
+ :'th' => :'th',
190
+ :'tr' => :'tr',
191
+ :'uk' => :'uk',
192
+ :'vi' => :'vi'
193
+ }
194
+ end
195
+
196
+ # Returns all the JSON keys this model knows about
197
+ def self.acceptable_attributes
198
+ attribute_map.values
199
+ end
200
+
201
+ # Attribute type mapping.
202
+ def self.openapi_types
203
+ {
204
+ :'en' => :'String',
205
+ :'ar' => :'String',
206
+ :'bs' => :'String',
207
+ :'bg' => :'String',
208
+ :'ca' => :'String',
209
+ :'zh_hans' => :'String',
210
+ :'zh_hant' => :'String',
211
+ :'zh' => :'String',
212
+ :'hr' => :'String',
213
+ :'cs' => :'String',
214
+ :'da' => :'String',
215
+ :'nl' => :'String',
216
+ :'et' => :'String',
217
+ :'fi' => :'String',
218
+ :'fr' => :'String',
219
+ :'ka' => :'String',
220
+ :'de' => :'String',
221
+ :'el' => :'String',
222
+ :'hi' => :'String',
223
+ :'he' => :'String',
224
+ :'hu' => :'String',
225
+ :'id' => :'String',
226
+ :'it' => :'String',
227
+ :'ja' => :'String',
228
+ :'ko' => :'String',
229
+ :'lv' => :'String',
230
+ :'lt' => :'String',
231
+ :'ms' => :'String',
232
+ :'nb' => :'String',
233
+ :'pl' => :'String',
234
+ :'fa' => :'String',
235
+ :'pt' => :'String',
236
+ :'pa' => :'String',
237
+ :'ro' => :'String',
238
+ :'ru' => :'String',
239
+ :'sr' => :'String',
240
+ :'sk' => :'String',
241
+ :'es' => :'String',
242
+ :'sv' => :'String',
243
+ :'th' => :'String',
244
+ :'tr' => :'String',
245
+ :'uk' => :'String',
246
+ :'vi' => :'String'
247
+ }
248
+ end
249
+
250
+ # List of attributes with nullable: true
251
+ def self.openapi_nullable
252
+ Set.new([
253
+ ])
254
+ end
255
+
256
+ # Initializes the object
257
+ # @param [Hash] attributes Model attributes in the form of hash
258
+ def initialize(attributes = {})
259
+ if (!attributes.is_a?(Hash))
260
+ fail ArgumentError, "The input argument (attributes) must be a hash in `OneSignal::StringMap` initialize method"
261
+ end
262
+
263
+ # check to see if the attribute exists and convert string to symbol for hash key
264
+ attributes = attributes.each_with_object({}) { |(k, v), h|
265
+ if (!self.class.attribute_map.key?(k.to_sym))
266
+ fail ArgumentError, "`#{k}` is not a valid attribute in `OneSignal::StringMap`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
267
+ end
268
+ h[k.to_sym] = v
269
+ }
270
+
271
+ if attributes.key?(:'en')
272
+ self.en = attributes[:'en']
273
+ end
274
+
275
+ if attributes.key?(:'ar')
276
+ self.ar = attributes[:'ar']
277
+ end
278
+
279
+ if attributes.key?(:'bs')
280
+ self.bs = attributes[:'bs']
281
+ end
282
+
283
+ if attributes.key?(:'bg')
284
+ self.bg = attributes[:'bg']
285
+ end
286
+
287
+ if attributes.key?(:'ca')
288
+ self.ca = attributes[:'ca']
289
+ end
290
+
291
+ if attributes.key?(:'zh_hans')
292
+ self.zh_hans = attributes[:'zh_hans']
293
+ end
294
+
295
+ if attributes.key?(:'zh_hant')
296
+ self.zh_hant = attributes[:'zh_hant']
297
+ end
298
+
299
+ if attributes.key?(:'zh')
300
+ self.zh = attributes[:'zh']
301
+ end
302
+
303
+ if attributes.key?(:'hr')
304
+ self.hr = attributes[:'hr']
305
+ end
306
+
307
+ if attributes.key?(:'cs')
308
+ self.cs = attributes[:'cs']
309
+ end
310
+
311
+ if attributes.key?(:'da')
312
+ self.da = attributes[:'da']
313
+ end
314
+
315
+ if attributes.key?(:'nl')
316
+ self.nl = attributes[:'nl']
317
+ end
318
+
319
+ if attributes.key?(:'et')
320
+ self.et = attributes[:'et']
321
+ end
322
+
323
+ if attributes.key?(:'fi')
324
+ self.fi = attributes[:'fi']
325
+ end
326
+
327
+ if attributes.key?(:'fr')
328
+ self.fr = attributes[:'fr']
329
+ end
330
+
331
+ if attributes.key?(:'ka')
332
+ self.ka = attributes[:'ka']
333
+ end
334
+
335
+ if attributes.key?(:'de')
336
+ self.de = attributes[:'de']
337
+ end
338
+
339
+ if attributes.key?(:'el')
340
+ self.el = attributes[:'el']
341
+ end
342
+
343
+ if attributes.key?(:'hi')
344
+ self.hi = attributes[:'hi']
345
+ end
346
+
347
+ if attributes.key?(:'he')
348
+ self.he = attributes[:'he']
349
+ end
350
+
351
+ if attributes.key?(:'hu')
352
+ self.hu = attributes[:'hu']
353
+ end
354
+
355
+ if attributes.key?(:'id')
356
+ self.id = attributes[:'id']
357
+ end
358
+
359
+ if attributes.key?(:'it')
360
+ self.it = attributes[:'it']
361
+ end
362
+
363
+ if attributes.key?(:'ja')
364
+ self.ja = attributes[:'ja']
365
+ end
366
+
367
+ if attributes.key?(:'ko')
368
+ self.ko = attributes[:'ko']
369
+ end
370
+
371
+ if attributes.key?(:'lv')
372
+ self.lv = attributes[:'lv']
373
+ end
374
+
375
+ if attributes.key?(:'lt')
376
+ self.lt = attributes[:'lt']
377
+ end
378
+
379
+ if attributes.key?(:'ms')
380
+ self.ms = attributes[:'ms']
381
+ end
382
+
383
+ if attributes.key?(:'nb')
384
+ self.nb = attributes[:'nb']
385
+ end
386
+
387
+ if attributes.key?(:'pl')
388
+ self.pl = attributes[:'pl']
389
+ end
390
+
391
+ if attributes.key?(:'fa')
392
+ self.fa = attributes[:'fa']
393
+ end
394
+
395
+ if attributes.key?(:'pt')
396
+ self.pt = attributes[:'pt']
397
+ end
398
+
399
+ if attributes.key?(:'pa')
400
+ self.pa = attributes[:'pa']
401
+ end
402
+
403
+ if attributes.key?(:'ro')
404
+ self.ro = attributes[:'ro']
405
+ end
406
+
407
+ if attributes.key?(:'ru')
408
+ self.ru = attributes[:'ru']
409
+ end
410
+
411
+ if attributes.key?(:'sr')
412
+ self.sr = attributes[:'sr']
413
+ end
414
+
415
+ if attributes.key?(:'sk')
416
+ self.sk = attributes[:'sk']
417
+ end
418
+
419
+ if attributes.key?(:'es')
420
+ self.es = attributes[:'es']
421
+ end
422
+
423
+ if attributes.key?(:'sv')
424
+ self.sv = attributes[:'sv']
425
+ end
426
+
427
+ if attributes.key?(:'th')
428
+ self.th = attributes[:'th']
429
+ end
430
+
431
+ if attributes.key?(:'tr')
432
+ self.tr = attributes[:'tr']
433
+ end
434
+
435
+ if attributes.key?(:'uk')
436
+ self.uk = attributes[:'uk']
437
+ end
438
+
439
+ if attributes.key?(:'vi')
440
+ self.vi = attributes[:'vi']
441
+ end
442
+ end
443
+
444
+ # Show invalid properties with the reasons. Usually used together with valid?
445
+ # @return Array for valid properties with the reasons
446
+ def list_invalid_properties
447
+ invalid_properties = Array.new
448
+ if @en.nil?
449
+ invalid_properties.push('invalid value for "en", en cannot be nil.')
450
+ end
451
+
452
+ invalid_properties
453
+ end
454
+
455
+ # Check to see if the all the properties in the model are valid
456
+ # @return true if the model is valid
457
+ def valid?
458
+ return false if @en.nil?
459
+ true
460
+ end
461
+
462
+ # Checks equality by comparing each attribute.
463
+ # @param [Object] Object to be compared
464
+ def ==(o)
465
+ return true if self.equal?(o)
466
+ self.class == o.class &&
467
+ en == o.en &&
468
+ ar == o.ar &&
469
+ bs == o.bs &&
470
+ bg == o.bg &&
471
+ ca == o.ca &&
472
+ zh_hans == o.zh_hans &&
473
+ zh_hant == o.zh_hant &&
474
+ zh == o.zh &&
475
+ hr == o.hr &&
476
+ cs == o.cs &&
477
+ da == o.da &&
478
+ nl == o.nl &&
479
+ et == o.et &&
480
+ fi == o.fi &&
481
+ fr == o.fr &&
482
+ ka == o.ka &&
483
+ de == o.de &&
484
+ el == o.el &&
485
+ hi == o.hi &&
486
+ he == o.he &&
487
+ hu == o.hu &&
488
+ id == o.id &&
489
+ it == o.it &&
490
+ ja == o.ja &&
491
+ ko == o.ko &&
492
+ lv == o.lv &&
493
+ lt == o.lt &&
494
+ ms == o.ms &&
495
+ nb == o.nb &&
496
+ pl == o.pl &&
497
+ fa == o.fa &&
498
+ pt == o.pt &&
499
+ pa == o.pa &&
500
+ ro == o.ro &&
501
+ ru == o.ru &&
502
+ sr == o.sr &&
503
+ sk == o.sk &&
504
+ es == o.es &&
505
+ sv == o.sv &&
506
+ th == o.th &&
507
+ tr == o.tr &&
508
+ uk == o.uk &&
509
+ vi == o.vi
510
+ end
511
+
512
+ # @see the `==` method
513
+ # @param [Object] Object to be compared
514
+ def eql?(o)
515
+ self == o
516
+ end
517
+
518
+ # Calculates hash code according to all attributes.
519
+ # @return [Integer] Hash code
520
+ def hash
521
+ [en, ar, bs, bg, ca, zh_hans, zh_hant, zh, hr, cs, da, nl, et, fi, fr, ka, de, el, hi, he, hu, id, it, ja, ko, lv, lt, ms, nb, pl, fa, pt, pa, ro, ru, sr, sk, es, sv, th, tr, uk, vi].hash
522
+ end
523
+
524
+ # Builds the object from hash
525
+ # @param [Hash] attributes Model attributes in the form of hash
526
+ # @return [Object] Returns the model itself
527
+ def self.build_from_hash(attributes)
528
+ new.build_from_hash(attributes)
529
+ end
530
+
531
+ # Builds the object from hash
532
+ # @param [Hash] attributes Model attributes in the form of hash
533
+ # @return [Object] Returns the model itself
534
+ def build_from_hash(attributes)
535
+ return nil unless attributes.is_a?(Hash)
536
+ self.class.openapi_types.each_pair do |key, type|
537
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
538
+ self.send("#{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[self.class.attribute_map[key]].is_a?(Array)
543
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
544
+ end
545
+ elsif !attributes[self.class.attribute_map[key]].nil?
546
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
547
+ end
548
+ end
549
+
550
+ self
551
+ end
552
+
553
+ # Deserializes the data based on type
554
+ # @param string type Data type
555
+ # @param string value Value to be deserialized
556
+ # @return [Object] Deserialized data
557
+ def _deserialize(type, value)
558
+ case type.to_sym
559
+ when :Time
560
+ Time.parse(value)
561
+ when :Date
562
+ Date.parse(value)
563
+ when :String
564
+ value.to_s
565
+ when :Integer
566
+ value.to_i
567
+ when :Float
568
+ value.to_f
569
+ when :Boolean
570
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
571
+ true
572
+ else
573
+ false
574
+ end
575
+ when :Object
576
+ # generic object (usually a Hash), return directly
577
+ value
578
+ when /\AArray<(?<inner_type>.+)>\z/
579
+ inner_type = Regexp.last_match[:inner_type]
580
+ value.map { |v| _deserialize(inner_type, v) }
581
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
582
+ k_type = Regexp.last_match[:k_type]
583
+ v_type = Regexp.last_match[:v_type]
584
+ {}.tap do |hash|
585
+ value.each do |k, v|
586
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
587
+ end
588
+ end
589
+ else # model
590
+ # models (e.g. Pet) or oneOf
591
+ klass = OneSignal.const_get(type)
592
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
593
+ end
594
+ end
595
+
596
+ # Returns the string representation of the object
597
+ # @return [String] String presentation of the object
598
+ def to_s
599
+ to_hash.to_s
600
+ end
601
+
602
+ # to_body is an alias to to_hash (backward compatibility)
603
+ # @return [Hash] Returns the object in the form of hash
604
+ def to_body
605
+ to_hash
606
+ end
607
+
608
+ # Returns the object in the form of hash
609
+ # @return [Hash] Returns the object in the form of hash
610
+ def to_hash
611
+ hash = {}
612
+ self.class.attribute_map.each_pair do |attr, param|
613
+ value = self.send(attr)
614
+ if value.nil?
615
+ is_nullable = self.class.openapi_nullable.include?(attr)
616
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
617
+ end
618
+
619
+ hash[param] = _to_hash(value)
620
+ end
621
+ hash
622
+ end
623
+
624
+ # Outputs non-array value in the form of hash
625
+ # For object, use to_hash. Otherwise, just return the value
626
+ # @param [Object] value Any valid value
627
+ # @return [Hash] Returns the value in the form of hash
628
+ def _to_hash(value)
629
+ if value.is_a?(Array)
630
+ value.compact.map { |v| _to_hash(v) }
631
+ elsif value.is_a?(Hash)
632
+ {}.tap do |hash|
633
+ value.each { |k, v| hash[k] = _to_hash(v) }
634
+ end
635
+ elsif value.respond_to? :to_hash
636
+ value.to_hash
637
+ else
638
+ value
639
+ end
640
+ end
641
+
642
+ end
643
+
644
+ end