kinopoisk_unofficial_api 1.0.0.1

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 (105) hide show
  1. checksums.yaml +7 -0
  2. data/.env.example +1 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +23 -0
  5. data/CHANGELOG.md +3 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +185 -0
  8. data/Rakefile +17 -0
  9. data/data/countries.json +1002 -0
  10. data/data/genres.json +134 -0
  11. data/data/type_attributes.json +1589 -0
  12. data/lib/kinopoisk_unofficial_api/client.rb +67 -0
  13. data/lib/kinopoisk_unofficial_api/configuration.rb +15 -0
  14. data/lib/kinopoisk_unofficial_api/endpoints.rb +139 -0
  15. data/lib/kinopoisk_unofficial_api/exceptions/base.rb +7 -0
  16. data/lib/kinopoisk_unofficial_api/exceptions/response_error.rb +37 -0
  17. data/lib/kinopoisk_unofficial_api/request_schemas/api_key.rb +9 -0
  18. data/lib/kinopoisk_unofficial_api/request_schemas/base.rb +17 -0
  19. data/lib/kinopoisk_unofficial_api/request_schemas/film.rb +11 -0
  20. data/lib/kinopoisk_unofficial_api/request_schemas/film_awards.rb +7 -0
  21. data/lib/kinopoisk_unofficial_api/request_schemas/film_box_office.rb +7 -0
  22. data/lib/kinopoisk_unofficial_api/request_schemas/film_collections.rb +29 -0
  23. data/lib/kinopoisk_unofficial_api/request_schemas/film_distributions.rb +7 -0
  24. data/lib/kinopoisk_unofficial_api/request_schemas/film_external_sources.rb +9 -0
  25. data/lib/kinopoisk_unofficial_api/request_schemas/film_facts.rb +7 -0
  26. data/lib/kinopoisk_unofficial_api/request_schemas/film_images.rb +24 -0
  27. data/lib/kinopoisk_unofficial_api/request_schemas/film_premieres.rb +25 -0
  28. data/lib/kinopoisk_unofficial_api/request_schemas/film_reviews.rb +21 -0
  29. data/lib/kinopoisk_unofficial_api/request_schemas/film_seasons.rb +7 -0
  30. data/lib/kinopoisk_unofficial_api/request_schemas/film_sequels_and_prequels.rb +7 -0
  31. data/lib/kinopoisk_unofficial_api/request_schemas/film_similars.rb +7 -0
  32. data/lib/kinopoisk_unofficial_api/request_schemas/film_staff.rb +11 -0
  33. data/lib/kinopoisk_unofficial_api/request_schemas/film_videos.rb +7 -0
  34. data/lib/kinopoisk_unofficial_api/request_schemas/films.rb +84 -0
  35. data/lib/kinopoisk_unofficial_api/request_schemas/kp_user_votes.rb +12 -0
  36. data/lib/kinopoisk_unofficial_api/request_schemas/media_posts.rb +9 -0
  37. data/lib/kinopoisk_unofficial_api/request_schemas/persons.rb +10 -0
  38. data/lib/kinopoisk_unofficial_api/request_schemas/search_film_by_keyword.rb +10 -0
  39. data/lib/kinopoisk_unofficial_api/request_schemas/staff.rb +11 -0
  40. data/lib/kinopoisk_unofficial_api/request_schemas.rb +7 -0
  41. data/lib/kinopoisk_unofficial_api/types/api_key_response/daily_quota.rb +12 -0
  42. data/lib/kinopoisk_unofficial_api/types/api_key_response/total_quota.rb +12 -0
  43. data/lib/kinopoisk_unofficial_api/types/api_key_response.rb +11 -0
  44. data/lib/kinopoisk_unofficial_api/types/award.rb +14 -0
  45. data/lib/kinopoisk_unofficial_api/types/award_person.rb +21 -0
  46. data/lib/kinopoisk_unofficial_api/types/award_response.rb +10 -0
  47. data/lib/kinopoisk_unofficial_api/types/base.rb +14 -0
  48. data/lib/kinopoisk_unofficial_api/types/box_office.rb +13 -0
  49. data/lib/kinopoisk_unofficial_api/types/box_office_response.rb +10 -0
  50. data/lib/kinopoisk_unofficial_api/types/compactable.rb +19 -0
  51. data/lib/kinopoisk_unofficial_api/types/company.rb +9 -0
  52. data/lib/kinopoisk_unofficial_api/types/country.rb +9 -0
  53. data/lib/kinopoisk_unofficial_api/types/digital_release_item.rb +22 -0
  54. data/lib/kinopoisk_unofficial_api/types/digital_release_response.rb +11 -0
  55. data/lib/kinopoisk_unofficial_api/types/distribution.rb +14 -0
  56. data/lib/kinopoisk_unofficial_api/types/distribution_response.rb +10 -0
  57. data/lib/kinopoisk_unofficial_api/types/episode.rb +14 -0
  58. data/lib/kinopoisk_unofficial_api/types/external_source_response/item.rb +18 -0
  59. data/lib/kinopoisk_unofficial_api/types/external_source_response.rb +10 -0
  60. data/lib/kinopoisk_unofficial_api/types/fact.rb +11 -0
  61. data/lib/kinopoisk_unofficial_api/types/fact_response.rb +10 -0
  62. data/lib/kinopoisk_unofficial_api/types/film.rb +53 -0
  63. data/lib/kinopoisk_unofficial_api/types/film_collection_response/item.rb +22 -0
  64. data/lib/kinopoisk_unofficial_api/types/film_collection_response.rb +11 -0
  65. data/lib/kinopoisk_unofficial_api/types/film_search_by_filters_response/item.rb +23 -0
  66. data/lib/kinopoisk_unofficial_api/types/film_search_by_filters_response.rb +11 -0
  67. data/lib/kinopoisk_unofficial_api/types/film_search_response/film.rb +23 -0
  68. data/lib/kinopoisk_unofficial_api/types/film_search_response.rb +12 -0
  69. data/lib/kinopoisk_unofficial_api/types/film_sequels_and_prequels_response.rb +15 -0
  70. data/lib/kinopoisk_unofficial_api/types/filters_response/country.rb +12 -0
  71. data/lib/kinopoisk_unofficial_api/types/filters_response/genre.rb +12 -0
  72. data/lib/kinopoisk_unofficial_api/types/filters_response.rb +10 -0
  73. data/lib/kinopoisk_unofficial_api/types/genre.rb +9 -0
  74. data/lib/kinopoisk_unofficial_api/types/image_response/item.rb +12 -0
  75. data/lib/kinopoisk_unofficial_api/types/image_response.rb +11 -0
  76. data/lib/kinopoisk_unofficial_api/types/kinopoisk_user_vote_response/item.rb +23 -0
  77. data/lib/kinopoisk_unofficial_api/types/kinopoisk_user_vote_response.rb +11 -0
  78. data/lib/kinopoisk_unofficial_api/types/media_posts_response/item.rb +16 -0
  79. data/lib/kinopoisk_unofficial_api/types/media_posts_response.rb +11 -0
  80. data/lib/kinopoisk_unofficial_api/types/pattern_matching.rb +11 -0
  81. data/lib/kinopoisk_unofficial_api/types/person_by_name_response/item.rb +16 -0
  82. data/lib/kinopoisk_unofficial_api/types/person_by_name_response.rb +10 -0
  83. data/lib/kinopoisk_unofficial_api/types/person_response/film.rb +17 -0
  84. data/lib/kinopoisk_unofficial_api/types/person_response/spouse.rb +18 -0
  85. data/lib/kinopoisk_unofficial_api/types/person_response.rb +25 -0
  86. data/lib/kinopoisk_unofficial_api/types/premiere_response.rb +10 -0
  87. data/lib/kinopoisk_unofficial_api/types/premiere_response_item.rb +18 -0
  88. data/lib/kinopoisk_unofficial_api/types/related_film_response/item.rb +17 -0
  89. data/lib/kinopoisk_unofficial_api/types/related_film_response.rb +10 -0
  90. data/lib/kinopoisk_unofficial_api/types/review_response/item.rb +18 -0
  91. data/lib/kinopoisk_unofficial_api/types/review_response.rb +14 -0
  92. data/lib/kinopoisk_unofficial_api/types/season.rb +10 -0
  93. data/lib/kinopoisk_unofficial_api/types/season_response.rb +10 -0
  94. data/lib/kinopoisk_unofficial_api/types/staff_response.rb +15 -0
  95. data/lib/kinopoisk_unofficial_api/types/video_response/item.rb +13 -0
  96. data/lib/kinopoisk_unofficial_api/types/video_response.rb +10 -0
  97. data/lib/kinopoisk_unofficial_api/types.rb +7 -0
  98. data/lib/kinopoisk_unofficial_api/version.rb +5 -0
  99. data/lib/kinopoisk_unofficial_api.rb +25 -0
  100. data/rakelib/parse_schema.rake +103 -0
  101. data/rakelib/rebuild_types.rake +105 -0
  102. data/rakelib/templates/empty_type.erb +12 -0
  103. data/rakelib/templates/nested_type.erb +13 -0
  104. data/rakelib/templates/type.erb +11 -0
  105. metadata +188 -0
@@ -0,0 +1,1589 @@
1
+ {
2
+ "Film": {
3
+ "kinopoisk_id": {
4
+ "type": "integer",
5
+ "nullable": false,
6
+ "required": true
7
+ },
8
+ "kinopoisk_hdid": {
9
+ "type": "string",
10
+ "nullable": true,
11
+ "required": true
12
+ },
13
+ "imdb_id": {
14
+ "type": "string",
15
+ "nullable": true,
16
+ "required": true
17
+ },
18
+ "name_ru": {
19
+ "type": "string",
20
+ "nullable": true,
21
+ "required": true
22
+ },
23
+ "name_en": {
24
+ "type": "string",
25
+ "nullable": true,
26
+ "required": true
27
+ },
28
+ "name_original": {
29
+ "type": "string",
30
+ "nullable": true,
31
+ "required": true
32
+ },
33
+ "poster_url": {
34
+ "type": "string",
35
+ "nullable": false,
36
+ "required": true
37
+ },
38
+ "poster_url_preview": {
39
+ "type": "string",
40
+ "nullable": false,
41
+ "required": true
42
+ },
43
+ "cover_url": {
44
+ "type": "string",
45
+ "nullable": true,
46
+ "required": true
47
+ },
48
+ "logo_url": {
49
+ "type": "string",
50
+ "nullable": true,
51
+ "required": true
52
+ },
53
+ "reviews_count": {
54
+ "type": "integer",
55
+ "nullable": false,
56
+ "required": true
57
+ },
58
+ "rating_good_review": {
59
+ "type": "number",
60
+ "nullable": true,
61
+ "required": true
62
+ },
63
+ "rating_good_review_vote_count": {
64
+ "type": "integer",
65
+ "nullable": true,
66
+ "required": true
67
+ },
68
+ "rating_kinopoisk": {
69
+ "type": "number",
70
+ "nullable": true,
71
+ "required": true
72
+ },
73
+ "rating_kinopoisk_vote_count": {
74
+ "type": "integer",
75
+ "nullable": true,
76
+ "required": true
77
+ },
78
+ "rating_imdb": {
79
+ "type": "number",
80
+ "nullable": true,
81
+ "required": true
82
+ },
83
+ "rating_imdb_vote_count": {
84
+ "type": "integer",
85
+ "nullable": true,
86
+ "required": true
87
+ },
88
+ "rating_film_critics": {
89
+ "type": "number",
90
+ "nullable": true,
91
+ "required": true
92
+ },
93
+ "rating_film_critics_vote_count": {
94
+ "type": "integer",
95
+ "nullable": true,
96
+ "required": true
97
+ },
98
+ "rating_await": {
99
+ "type": "number",
100
+ "nullable": true,
101
+ "required": true
102
+ },
103
+ "rating_await_count": {
104
+ "type": "integer",
105
+ "nullable": true,
106
+ "required": true
107
+ },
108
+ "rating_rf_critics": {
109
+ "type": "number",
110
+ "nullable": true,
111
+ "required": true
112
+ },
113
+ "rating_rf_critics_vote_count": {
114
+ "type": "integer",
115
+ "nullable": true,
116
+ "required": true
117
+ },
118
+ "web_url": {
119
+ "type": "string",
120
+ "nullable": false,
121
+ "required": true
122
+ },
123
+ "year": {
124
+ "type": "integer",
125
+ "nullable": true,
126
+ "required": true
127
+ },
128
+ "film_length": {
129
+ "type": "integer",
130
+ "nullable": true,
131
+ "required": true
132
+ },
133
+ "slogan": {
134
+ "type": "string",
135
+ "nullable": true,
136
+ "required": true
137
+ },
138
+ "description": {
139
+ "type": "string",
140
+ "nullable": true,
141
+ "required": true
142
+ },
143
+ "short_description": {
144
+ "type": "string",
145
+ "nullable": true,
146
+ "required": true
147
+ },
148
+ "editor_annotation": {
149
+ "type": "string",
150
+ "nullable": true,
151
+ "required": true
152
+ },
153
+ "is_tickets_available": {
154
+ "type": "boolean",
155
+ "nullable": false,
156
+ "required": true
157
+ },
158
+ "production_status": {
159
+ "type": "string",
160
+ "nullable": true,
161
+ "required": true
162
+ },
163
+ "type": {
164
+ "type": "string",
165
+ "nullable": false,
166
+ "required": true
167
+ },
168
+ "rating_mpaa": {
169
+ "type": "string",
170
+ "nullable": true,
171
+ "required": true
172
+ },
173
+ "rating_age_limits": {
174
+ "type": "string",
175
+ "nullable": true,
176
+ "required": true
177
+ },
178
+ "has_imax": {
179
+ "type": "boolean",
180
+ "nullable": true,
181
+ "required": true
182
+ },
183
+ "has3_d": {
184
+ "type": "boolean",
185
+ "nullable": true,
186
+ "required": true
187
+ },
188
+ "last_sync": {
189
+ "type": "string",
190
+ "nullable": false,
191
+ "required": true
192
+ },
193
+ "countries": {
194
+ "type": "array",
195
+ "nullable": false,
196
+ "required": true,
197
+ "items": "Country"
198
+ },
199
+ "genres": {
200
+ "type": "array",
201
+ "nullable": false,
202
+ "required": true,
203
+ "items": "Genre"
204
+ },
205
+ "start_year": {
206
+ "type": "integer",
207
+ "nullable": true,
208
+ "required": true
209
+ },
210
+ "end_year": {
211
+ "type": "integer",
212
+ "nullable": true,
213
+ "required": true
214
+ },
215
+ "serial": {
216
+ "type": "boolean",
217
+ "nullable": true
218
+ },
219
+ "short_film": {
220
+ "type": "boolean",
221
+ "nullable": true
222
+ },
223
+ "completed": {
224
+ "type": "boolean",
225
+ "nullable": true
226
+ }
227
+ },
228
+ "SeasonResponse": {
229
+ "total": {
230
+ "type": "integer",
231
+ "nullable": false,
232
+ "required": true
233
+ },
234
+ "items": {
235
+ "type": "array",
236
+ "nullable": false,
237
+ "required": true,
238
+ "items": "Season"
239
+ }
240
+ },
241
+ "FactResponse": {
242
+ "total": {
243
+ "type": "integer",
244
+ "nullable": false,
245
+ "required": true
246
+ },
247
+ "items": {
248
+ "type": "array",
249
+ "nullable": false,
250
+ "required": true,
251
+ "items": "Fact"
252
+ }
253
+ },
254
+ "DistributionResponse": {
255
+ "total": {
256
+ "type": "integer",
257
+ "nullable": false,
258
+ "required": true
259
+ },
260
+ "items": {
261
+ "type": "array",
262
+ "nullable": false,
263
+ "required": true,
264
+ "items": "Distribution"
265
+ }
266
+ },
267
+ "BoxOfficeResponse": {
268
+ "total": {
269
+ "type": "integer",
270
+ "nullable": false,
271
+ "required": true
272
+ },
273
+ "items": {
274
+ "type": "array",
275
+ "nullable": false,
276
+ "required": true,
277
+ "items": "BoxOffice"
278
+ }
279
+ },
280
+ "Fact": {
281
+ "text": {
282
+ "type": "string",
283
+ "nullable": false,
284
+ "required": true
285
+ },
286
+ "type": {
287
+ "type": "string",
288
+ "nullable": false,
289
+ "required": true
290
+ },
291
+ "spoiler": {
292
+ "type": "boolean",
293
+ "nullable": false,
294
+ "required": true
295
+ }
296
+ },
297
+ "BoxOffice": {
298
+ "type": {
299
+ "type": "string",
300
+ "nullable": false,
301
+ "required": true
302
+ },
303
+ "amount": {
304
+ "type": "integer",
305
+ "nullable": false,
306
+ "required": true
307
+ },
308
+ "currency_code": {
309
+ "type": "string",
310
+ "nullable": false,
311
+ "required": true
312
+ },
313
+ "name": {
314
+ "type": "string",
315
+ "nullable": false,
316
+ "required": true
317
+ },
318
+ "symbol": {
319
+ "type": "string",
320
+ "nullable": false,
321
+ "required": true
322
+ }
323
+ },
324
+ "AwardResponse": {
325
+ "total": {
326
+ "type": "integer",
327
+ "nullable": false,
328
+ "required": true
329
+ },
330
+ "items": {
331
+ "type": "array",
332
+ "nullable": false,
333
+ "required": true,
334
+ "items": "Award"
335
+ }
336
+ },
337
+ "Award": {
338
+ "name": {
339
+ "type": "string",
340
+ "nullable": false,
341
+ "required": true
342
+ },
343
+ "win": {
344
+ "type": "boolean",
345
+ "nullable": false,
346
+ "required": true
347
+ },
348
+ "image_url": {
349
+ "type": "string",
350
+ "nullable": true,
351
+ "required": true
352
+ },
353
+ "nomination_name": {
354
+ "type": "string",
355
+ "nullable": false,
356
+ "required": true
357
+ },
358
+ "year": {
359
+ "type": "integer",
360
+ "nullable": false,
361
+ "required": true
362
+ },
363
+ "persons": {
364
+ "type": "array",
365
+ "nullable": false,
366
+ "items": "AwardPerson"
367
+ }
368
+ },
369
+ "AwardPerson": {
370
+ "kinopoisk_id": {
371
+ "type": "integer",
372
+ "nullable": false,
373
+ "required": true
374
+ },
375
+ "web_url": {
376
+ "type": "string",
377
+ "nullable": false,
378
+ "required": true
379
+ },
380
+ "name_ru": {
381
+ "type": "string",
382
+ "nullable": true,
383
+ "required": true
384
+ },
385
+ "name_en": {
386
+ "type": "string",
387
+ "nullable": true,
388
+ "required": true
389
+ },
390
+ "sex": {
391
+ "type": "string",
392
+ "nullable": false,
393
+ "required": true
394
+ },
395
+ "poster_url": {
396
+ "type": "string",
397
+ "nullable": false,
398
+ "required": true
399
+ },
400
+ "growth": {
401
+ "type": "integer",
402
+ "nullable": true,
403
+ "required": true
404
+ },
405
+ "birthday": {
406
+ "type": "string",
407
+ "nullable": true,
408
+ "required": true
409
+ },
410
+ "death": {
411
+ "type": "string",
412
+ "nullable": true,
413
+ "required": true
414
+ },
415
+ "age": {
416
+ "type": "integer",
417
+ "nullable": true,
418
+ "required": true
419
+ },
420
+ "birthplace": {
421
+ "type": "string",
422
+ "nullable": true,
423
+ "required": true
424
+ },
425
+ "deathplace": {
426
+ "type": "string",
427
+ "nullable": true,
428
+ "required": true
429
+ },
430
+ "profession": {
431
+ "type": "string",
432
+ "nullable": true,
433
+ "required": true
434
+ }
435
+ },
436
+ "Distribution": {
437
+ "type": {
438
+ "type": "string",
439
+ "nullable": false,
440
+ "required": true
441
+ },
442
+ "sub_type": {
443
+ "type": "string",
444
+ "nullable": true,
445
+ "required": true
446
+ },
447
+ "date": {
448
+ "type": "string",
449
+ "nullable": true,
450
+ "required": true
451
+ },
452
+ "re_release": {
453
+ "type": "boolean",
454
+ "nullable": true,
455
+ "required": true
456
+ },
457
+ "country": {
458
+ "type": "Country",
459
+ "nullable": true,
460
+ "required": true
461
+ },
462
+ "companies": {
463
+ "type": "array",
464
+ "nullable": false,
465
+ "required": true,
466
+ "items": "Company"
467
+ }
468
+ },
469
+ "Company": {
470
+ "name": {
471
+ "type": "string",
472
+ "nullable": false,
473
+ "required": true
474
+ }
475
+ },
476
+ "Season": {
477
+ "number": {
478
+ "type": "integer",
479
+ "nullable": false,
480
+ "required": true
481
+ },
482
+ "episodes": {
483
+ "type": "array",
484
+ "nullable": false,
485
+ "required": true,
486
+ "items": "Episode"
487
+ }
488
+ },
489
+ "Episode": {
490
+ "season_number": {
491
+ "type": "integer",
492
+ "nullable": false,
493
+ "required": true
494
+ },
495
+ "episode_number": {
496
+ "type": "integer",
497
+ "nullable": false,
498
+ "required": true
499
+ },
500
+ "name_ru": {
501
+ "type": "string",
502
+ "nullable": true,
503
+ "required": true
504
+ },
505
+ "name_en": {
506
+ "type": "string",
507
+ "nullable": true,
508
+ "required": true
509
+ },
510
+ "synopsis": {
511
+ "type": "string",
512
+ "nullable": true,
513
+ "required": true
514
+ },
515
+ "release_date": {
516
+ "type": "string",
517
+ "nullable": true,
518
+ "required": true
519
+ }
520
+ },
521
+ "Country": {
522
+ "country": {
523
+ "type": "string",
524
+ "nullable": false,
525
+ "required": true
526
+ }
527
+ },
528
+ "Genre": {
529
+ "genre": {
530
+ "type": "string",
531
+ "nullable": false,
532
+ "required": true
533
+ }
534
+ },
535
+ "FiltersResponse": {
536
+ "genres": {
537
+ "type": "array",
538
+ "nullable": false,
539
+ "required": true,
540
+ "items": "FiltersResponse::Genre"
541
+ },
542
+ "countries": {
543
+ "type": "array",
544
+ "nullable": false,
545
+ "required": true,
546
+ "items": "FiltersResponse::Country"
547
+ }
548
+ },
549
+ "FilmSearchResponse": {
550
+ "keyword": {
551
+ "type": "string",
552
+ "nullable": false,
553
+ "required": true
554
+ },
555
+ "pages_count": {
556
+ "type": "integer",
557
+ "nullable": false,
558
+ "required": true
559
+ },
560
+ "search_films_count_result": {
561
+ "type": "integer",
562
+ "nullable": false,
563
+ "required": true
564
+ },
565
+ "films": {
566
+ "type": "array",
567
+ "nullable": false,
568
+ "required": true,
569
+ "items": "FilmSearchResponse::Film"
570
+ }
571
+ },
572
+ "FilmSearchByFiltersResponse": {
573
+ "total": {
574
+ "type": "integer",
575
+ "nullable": false,
576
+ "required": true
577
+ },
578
+ "total_pages": {
579
+ "type": "integer",
580
+ "nullable": false,
581
+ "required": true
582
+ },
583
+ "items": {
584
+ "type": "array",
585
+ "nullable": false,
586
+ "required": true,
587
+ "items": "FilmSearchByFiltersResponse::Item"
588
+ }
589
+ },
590
+ "FilmSequelsAndPrequelsResponse": {
591
+ "film_id": {
592
+ "type": "integer",
593
+ "nullable": false,
594
+ "required": true
595
+ },
596
+ "name_ru": {
597
+ "type": "string",
598
+ "nullable": false,
599
+ "required": true
600
+ },
601
+ "name_en": {
602
+ "type": "string",
603
+ "nullable": false,
604
+ "required": true
605
+ },
606
+ "name_original": {
607
+ "type": "string",
608
+ "nullable": false,
609
+ "required": true
610
+ },
611
+ "poster_url": {
612
+ "type": "string",
613
+ "nullable": false,
614
+ "required": true
615
+ },
616
+ "poster_url_preview": {
617
+ "type": "string",
618
+ "nullable": false,
619
+ "required": true
620
+ },
621
+ "relation_type": {
622
+ "type": "string",
623
+ "nullable": false,
624
+ "required": true
625
+ }
626
+ },
627
+ "RelatedFilmResponse": {
628
+ "total": {
629
+ "type": "integer",
630
+ "nullable": false,
631
+ "required": true
632
+ },
633
+ "items": {
634
+ "type": "array",
635
+ "nullable": false,
636
+ "required": true,
637
+ "items": "RelatedFilmResponse::Item"
638
+ }
639
+ },
640
+ "ReviewResponse": {
641
+ "total": {
642
+ "type": "integer",
643
+ "nullable": false,
644
+ "required": true
645
+ },
646
+ "total_pages": {
647
+ "type": "integer",
648
+ "nullable": false,
649
+ "required": true
650
+ },
651
+ "total_positive_reviews": {
652
+ "type": "integer",
653
+ "nullable": false,
654
+ "required": true
655
+ },
656
+ "total_negative_reviews": {
657
+ "type": "integer",
658
+ "nullable": false,
659
+ "required": true
660
+ },
661
+ "total_neutral_reviews": {
662
+ "type": "integer",
663
+ "nullable": false,
664
+ "required": true
665
+ },
666
+ "items": {
667
+ "type": "array",
668
+ "nullable": false,
669
+ "required": true,
670
+ "items": "ReviewResponse::Item"
671
+ }
672
+ },
673
+ "ExternalSourceResponse": {
674
+ "total": {
675
+ "type": "integer",
676
+ "nullable": false,
677
+ "required": true
678
+ },
679
+ "items": {
680
+ "type": "array",
681
+ "nullable": false,
682
+ "required": true,
683
+ "items": "ExternalSourceResponse::Item"
684
+ }
685
+ },
686
+ "FilmCollectionResponse": {
687
+ "total": {
688
+ "type": "integer",
689
+ "nullable": false,
690
+ "required": true
691
+ },
692
+ "total_pages": {
693
+ "type": "integer",
694
+ "nullable": false,
695
+ "required": true
696
+ },
697
+ "items": {
698
+ "type": "array",
699
+ "nullable": false,
700
+ "required": true,
701
+ "items": "FilmCollectionResponse::Item"
702
+ }
703
+ },
704
+ "StaffResponse": {
705
+ "staff_id": {
706
+ "type": "integer",
707
+ "nullable": false,
708
+ "required": true
709
+ },
710
+ "name_ru": {
711
+ "type": "string",
712
+ "nullable": true,
713
+ "required": true
714
+ },
715
+ "name_en": {
716
+ "type": "string",
717
+ "nullable": true,
718
+ "required": true
719
+ },
720
+ "description": {
721
+ "type": "string",
722
+ "nullable": true,
723
+ "required": true
724
+ },
725
+ "poster_url": {
726
+ "type": "string",
727
+ "nullable": false,
728
+ "required": true
729
+ },
730
+ "profession_text": {
731
+ "type": "string",
732
+ "nullable": false,
733
+ "required": true
734
+ },
735
+ "profession_key": {
736
+ "type": "string",
737
+ "nullable": false,
738
+ "required": true
739
+ }
740
+ },
741
+ "PersonResponse": {
742
+ "person_id": {
743
+ "type": "integer",
744
+ "nullable": false,
745
+ "required": true
746
+ },
747
+ "web_url": {
748
+ "type": "string",
749
+ "nullable": true,
750
+ "required": true
751
+ },
752
+ "name_ru": {
753
+ "type": "string",
754
+ "nullable": true,
755
+ "required": true
756
+ },
757
+ "name_en": {
758
+ "type": "string",
759
+ "nullable": true,
760
+ "required": true
761
+ },
762
+ "sex": {
763
+ "type": "string",
764
+ "nullable": true,
765
+ "required": true
766
+ },
767
+ "poster_url": {
768
+ "type": "string",
769
+ "nullable": false,
770
+ "required": true
771
+ },
772
+ "growth": {
773
+ "type": "integer",
774
+ "nullable": true,
775
+ "required": true
776
+ },
777
+ "birthday": {
778
+ "type": "string",
779
+ "nullable": true,
780
+ "required": true
781
+ },
782
+ "death": {
783
+ "type": "string",
784
+ "nullable": true,
785
+ "required": true
786
+ },
787
+ "age": {
788
+ "type": "integer",
789
+ "nullable": true,
790
+ "required": true
791
+ },
792
+ "birthplace": {
793
+ "type": "string",
794
+ "nullable": true,
795
+ "required": true
796
+ },
797
+ "deathplace": {
798
+ "type": "string",
799
+ "nullable": true,
800
+ "required": true
801
+ },
802
+ "has_awards": {
803
+ "type": "integer",
804
+ "nullable": true,
805
+ "required": true
806
+ },
807
+ "profession": {
808
+ "type": "string",
809
+ "nullable": true,
810
+ "required": true
811
+ },
812
+ "facts": {
813
+ "type": "array",
814
+ "nullable": false,
815
+ "required": true,
816
+ "items": "string"
817
+ },
818
+ "spouses": {
819
+ "type": "array",
820
+ "nullable": false,
821
+ "required": true,
822
+ "items": "PersonResponse::Spouse"
823
+ },
824
+ "films": {
825
+ "type": "array",
826
+ "nullable": false,
827
+ "required": true,
828
+ "items": "PersonResponse::Film"
829
+ }
830
+ },
831
+ "PersonByNameResponse": {
832
+ "total": {
833
+ "type": "integer",
834
+ "nullable": false,
835
+ "required": true
836
+ },
837
+ "items": {
838
+ "type": "array",
839
+ "nullable": false,
840
+ "required": true,
841
+ "items": "PersonByNameResponse::Item"
842
+ }
843
+ },
844
+ "ImageResponse": {
845
+ "total": {
846
+ "type": "integer",
847
+ "nullable": false,
848
+ "required": true
849
+ },
850
+ "total_pages": {
851
+ "type": "integer",
852
+ "nullable": false,
853
+ "required": true
854
+ },
855
+ "items": {
856
+ "type": "array",
857
+ "nullable": false,
858
+ "required": true,
859
+ "items": "ImageResponse::Item"
860
+ }
861
+ },
862
+ "PremiereResponse": {
863
+ "total": {
864
+ "type": "integer",
865
+ "nullable": false,
866
+ "required": true
867
+ },
868
+ "items": {
869
+ "type": "array",
870
+ "nullable": false,
871
+ "required": true,
872
+ "items": "PremiereResponseItem"
873
+ }
874
+ },
875
+ "PremiereResponseItem": {
876
+ "kinopoisk_id": {
877
+ "type": "integer",
878
+ "nullable": false,
879
+ "required": true
880
+ },
881
+ "name_ru": {
882
+ "type": "string",
883
+ "nullable": true,
884
+ "required": true
885
+ },
886
+ "name_en": {
887
+ "type": "string",
888
+ "nullable": true,
889
+ "required": true
890
+ },
891
+ "year": {
892
+ "type": "integer",
893
+ "nullable": false,
894
+ "required": true
895
+ },
896
+ "poster_url": {
897
+ "type": "string",
898
+ "nullable": false,
899
+ "required": true
900
+ },
901
+ "poster_url_preview": {
902
+ "type": "string",
903
+ "nullable": false,
904
+ "required": true
905
+ },
906
+ "countries": {
907
+ "type": "array",
908
+ "nullable": false,
909
+ "required": true,
910
+ "items": "Country"
911
+ },
912
+ "genres": {
913
+ "type": "array",
914
+ "nullable": false,
915
+ "required": true,
916
+ "items": "Genre"
917
+ },
918
+ "duration": {
919
+ "type": "integer",
920
+ "nullable": true,
921
+ "required": true
922
+ },
923
+ "premiere_ru": {
924
+ "type": "string",
925
+ "nullable": false,
926
+ "required": true
927
+ }
928
+ },
929
+ "DigitalReleaseResponse": {
930
+ "page": {
931
+ "type": "integer",
932
+ "nullable": false,
933
+ "required": true
934
+ },
935
+ "total": {
936
+ "type": "integer",
937
+ "nullable": false,
938
+ "required": true
939
+ },
940
+ "releases": {
941
+ "type": "array",
942
+ "nullable": false,
943
+ "required": true,
944
+ "items": "DigitalReleaseItem"
945
+ }
946
+ },
947
+ "DigitalReleaseItem": {
948
+ "film_id": {
949
+ "type": "integer",
950
+ "nullable": false,
951
+ "required": true
952
+ },
953
+ "name_ru": {
954
+ "type": "string",
955
+ "nullable": false,
956
+ "required": true
957
+ },
958
+ "name_en": {
959
+ "type": "string",
960
+ "nullable": false,
961
+ "required": true
962
+ },
963
+ "year": {
964
+ "type": "integer",
965
+ "nullable": false,
966
+ "required": true
967
+ },
968
+ "poster_url": {
969
+ "type": "string",
970
+ "nullable": false,
971
+ "required": true
972
+ },
973
+ "poster_url_preview": {
974
+ "type": "string",
975
+ "nullable": false,
976
+ "required": true
977
+ },
978
+ "countries": {
979
+ "type": "array",
980
+ "nullable": false,
981
+ "required": true,
982
+ "items": "Country"
983
+ },
984
+ "genres": {
985
+ "type": "array",
986
+ "nullable": false,
987
+ "required": true,
988
+ "items": "Genre"
989
+ },
990
+ "rating": {
991
+ "type": "number",
992
+ "nullable": false,
993
+ "required": true
994
+ },
995
+ "rating_vote_count": {
996
+ "type": "integer",
997
+ "nullable": false,
998
+ "required": true
999
+ },
1000
+ "expectations_rating": {
1001
+ "type": "number",
1002
+ "nullable": false,
1003
+ "required": true
1004
+ },
1005
+ "expectations_rating_vote_count": {
1006
+ "type": "integer",
1007
+ "nullable": false,
1008
+ "required": true
1009
+ },
1010
+ "duration": {
1011
+ "type": "integer",
1012
+ "nullable": false,
1013
+ "required": true
1014
+ },
1015
+ "release_date": {
1016
+ "type": "string",
1017
+ "nullable": false,
1018
+ "required": true
1019
+ }
1020
+ },
1021
+ "VideoResponse": {
1022
+ "total": {
1023
+ "type": "integer",
1024
+ "nullable": false,
1025
+ "required": true
1026
+ },
1027
+ "items": {
1028
+ "type": "array",
1029
+ "nullable": false,
1030
+ "required": true,
1031
+ "items": "VideoResponse::Item"
1032
+ }
1033
+ },
1034
+ "KinopoiskUserVoteResponse": {
1035
+ "total": {
1036
+ "type": "integer",
1037
+ "nullable": false,
1038
+ "required": true
1039
+ },
1040
+ "total_pages": {
1041
+ "type": "integer",
1042
+ "nullable": false,
1043
+ "required": true
1044
+ },
1045
+ "items": {
1046
+ "type": "array",
1047
+ "nullable": false,
1048
+ "required": true,
1049
+ "items": "KinopoiskUserVoteResponse::Item"
1050
+ }
1051
+ },
1052
+ "ApiKeyResponse": {
1053
+ "total_quota": {
1054
+ "type": "ApiKeyResponse::TotalQuota",
1055
+ "nullable": false,
1056
+ "required": true
1057
+ },
1058
+ "daily_quota": {
1059
+ "type": "ApiKeyResponse::DailyQuota",
1060
+ "nullable": false,
1061
+ "required": true
1062
+ },
1063
+ "account_type": {
1064
+ "type": "string",
1065
+ "nullable": false,
1066
+ "required": true
1067
+ }
1068
+ },
1069
+ "MediaPostsResponse": {
1070
+ "total": {
1071
+ "type": "integer",
1072
+ "nullable": false,
1073
+ "required": true
1074
+ },
1075
+ "total_pages": {
1076
+ "type": "integer",
1077
+ "nullable": false,
1078
+ "required": true
1079
+ },
1080
+ "items": {
1081
+ "type": "array",
1082
+ "nullable": false,
1083
+ "required": true,
1084
+ "items": "MediaPostsResponse::Item"
1085
+ }
1086
+ },
1087
+ "FiltersResponse::Genre": {
1088
+ "id": {
1089
+ "type": "integer",
1090
+ "nullable": false
1091
+ },
1092
+ "genre": {
1093
+ "type": "string",
1094
+ "nullable": false
1095
+ }
1096
+ },
1097
+ "FiltersResponse::Country": {
1098
+ "id": {
1099
+ "type": "integer",
1100
+ "nullable": false
1101
+ },
1102
+ "country": {
1103
+ "type": "string",
1104
+ "nullable": false
1105
+ }
1106
+ },
1107
+ "FilmSearchResponse::Film": {
1108
+ "film_id": {
1109
+ "type": "integer",
1110
+ "nullable": false
1111
+ },
1112
+ "name_ru": {
1113
+ "type": "string",
1114
+ "nullable": false
1115
+ },
1116
+ "name_en": {
1117
+ "type": "string",
1118
+ "nullable": false
1119
+ },
1120
+ "type": {
1121
+ "type": "string",
1122
+ "nullable": false
1123
+ },
1124
+ "year": {
1125
+ "type": "string",
1126
+ "nullable": false
1127
+ },
1128
+ "description": {
1129
+ "type": "string",
1130
+ "nullable": false
1131
+ },
1132
+ "film_length": {
1133
+ "type": "string",
1134
+ "nullable": false
1135
+ },
1136
+ "countries": {
1137
+ "type": "array",
1138
+ "nullable": false,
1139
+ "items": "Country"
1140
+ },
1141
+ "genres": {
1142
+ "type": "array",
1143
+ "nullable": false,
1144
+ "items": "Genre"
1145
+ },
1146
+ "rating": {
1147
+ "type": "string",
1148
+ "nullable": false
1149
+ },
1150
+ "rating_vote_count": {
1151
+ "type": "integer",
1152
+ "nullable": false
1153
+ },
1154
+ "poster_url": {
1155
+ "type": "string",
1156
+ "nullable": false
1157
+ },
1158
+ "poster_url_preview": {
1159
+ "type": "string",
1160
+ "nullable": false
1161
+ }
1162
+ },
1163
+ "FilmSearchByFiltersResponse::Item": {
1164
+ "kinopoisk_id": {
1165
+ "type": "integer",
1166
+ "nullable": false
1167
+ },
1168
+ "imdb_id": {
1169
+ "type": "string",
1170
+ "nullable": true
1171
+ },
1172
+ "name_ru": {
1173
+ "type": "string",
1174
+ "nullable": true
1175
+ },
1176
+ "name_en": {
1177
+ "type": "string",
1178
+ "nullable": true
1179
+ },
1180
+ "name_original": {
1181
+ "type": "string",
1182
+ "nullable": true
1183
+ },
1184
+ "countries": {
1185
+ "type": "array",
1186
+ "nullable": false,
1187
+ "items": "Country"
1188
+ },
1189
+ "genres": {
1190
+ "type": "array",
1191
+ "nullable": false,
1192
+ "items": "Genre"
1193
+ },
1194
+ "rating_kinopoisk": {
1195
+ "type": "number",
1196
+ "nullable": true
1197
+ },
1198
+ "rating_imdb": {
1199
+ "type": "number",
1200
+ "nullable": true
1201
+ },
1202
+ "year": {
1203
+ "type": "number",
1204
+ "nullable": true
1205
+ },
1206
+ "type": {
1207
+ "type": "string",
1208
+ "nullable": false
1209
+ },
1210
+ "poster_url": {
1211
+ "type": "string",
1212
+ "nullable": false
1213
+ },
1214
+ "poster_url_preview": {
1215
+ "type": "string",
1216
+ "nullable": false
1217
+ }
1218
+ },
1219
+ "RelatedFilmResponse::Item": {
1220
+ "film_id": {
1221
+ "type": "integer",
1222
+ "nullable": false
1223
+ },
1224
+ "name_ru": {
1225
+ "type": "string",
1226
+ "nullable": true
1227
+ },
1228
+ "name_en": {
1229
+ "type": "string",
1230
+ "nullable": true
1231
+ },
1232
+ "name_original": {
1233
+ "type": "string",
1234
+ "nullable": true
1235
+ },
1236
+ "poster_url": {
1237
+ "type": "string",
1238
+ "nullable": false
1239
+ },
1240
+ "poster_url_preview": {
1241
+ "type": "string",
1242
+ "nullable": false
1243
+ },
1244
+ "relation_type": {
1245
+ "type": "string",
1246
+ "nullable": false
1247
+ }
1248
+ },
1249
+ "ReviewResponse::Item": {
1250
+ "kinopoisk_id": {
1251
+ "type": "integer",
1252
+ "nullable": false
1253
+ },
1254
+ "type": {
1255
+ "type": "string",
1256
+ "nullable": false
1257
+ },
1258
+ "date": {
1259
+ "type": "string",
1260
+ "nullable": false
1261
+ },
1262
+ "positive_rating": {
1263
+ "type": "integer",
1264
+ "nullable": false
1265
+ },
1266
+ "negative_rating": {
1267
+ "type": "integer",
1268
+ "nullable": false
1269
+ },
1270
+ "author": {
1271
+ "type": "string",
1272
+ "nullable": false
1273
+ },
1274
+ "title": {
1275
+ "type": "string",
1276
+ "nullable": true
1277
+ },
1278
+ "description": {
1279
+ "type": "string",
1280
+ "nullable": false
1281
+ }
1282
+ },
1283
+ "ExternalSourceResponse::Item": {
1284
+ "url": {
1285
+ "type": "string",
1286
+ "nullable": false
1287
+ },
1288
+ "platform": {
1289
+ "type": "string",
1290
+ "nullable": false
1291
+ },
1292
+ "logo_url": {
1293
+ "type": "string",
1294
+ "nullable": false
1295
+ },
1296
+ "positive_rating": {
1297
+ "type": "integer",
1298
+ "nullable": false
1299
+ },
1300
+ "negative_rating": {
1301
+ "type": "integer",
1302
+ "nullable": false
1303
+ },
1304
+ "author": {
1305
+ "type": "string",
1306
+ "nullable": false
1307
+ },
1308
+ "title": {
1309
+ "type": "string",
1310
+ "nullable": true
1311
+ },
1312
+ "description": {
1313
+ "type": "string",
1314
+ "nullable": false
1315
+ }
1316
+ },
1317
+ "FilmCollectionResponse::Item": {
1318
+ "kinopoisk_id": {
1319
+ "type": "integer",
1320
+ "nullable": false
1321
+ },
1322
+ "name_ru": {
1323
+ "type": "string",
1324
+ "nullable": true
1325
+ },
1326
+ "name_en": {
1327
+ "type": "string",
1328
+ "nullable": true
1329
+ },
1330
+ "name_original": {
1331
+ "type": "string",
1332
+ "nullable": true
1333
+ },
1334
+ "countries": {
1335
+ "type": "array",
1336
+ "nullable": false,
1337
+ "items": "Country"
1338
+ },
1339
+ "genres": {
1340
+ "type": "array",
1341
+ "nullable": false,
1342
+ "items": "Genre"
1343
+ },
1344
+ "rating_kinopoisk": {
1345
+ "type": "number",
1346
+ "nullable": true
1347
+ },
1348
+ "rating_imbd": {
1349
+ "type": "number",
1350
+ "nullable": true
1351
+ },
1352
+ "year": {
1353
+ "type": "integer",
1354
+ "nullable": true
1355
+ },
1356
+ "type": {
1357
+ "type": "string",
1358
+ "nullable": false
1359
+ },
1360
+ "poster_url": {
1361
+ "type": "string",
1362
+ "nullable": false
1363
+ },
1364
+ "poster_url_preview": {
1365
+ "type": "string",
1366
+ "nullable": false
1367
+ }
1368
+ },
1369
+ "PersonResponse::Spouse": {
1370
+ "person_id": {
1371
+ "type": "integer",
1372
+ "nullable": false
1373
+ },
1374
+ "name": {
1375
+ "type": "string",
1376
+ "nullable": true
1377
+ },
1378
+ "divorced": {
1379
+ "type": "boolean",
1380
+ "nullable": false
1381
+ },
1382
+ "divorced_reason": {
1383
+ "type": "string",
1384
+ "nullable": true
1385
+ },
1386
+ "sex": {
1387
+ "type": "string",
1388
+ "nullable": false
1389
+ },
1390
+ "children": {
1391
+ "type": "integer",
1392
+ "nullable": false
1393
+ },
1394
+ "web_url": {
1395
+ "type": "string",
1396
+ "nullable": false
1397
+ },
1398
+ "relation": {
1399
+ "type": "string",
1400
+ "nullable": false
1401
+ }
1402
+ },
1403
+ "PersonResponse::Film": {
1404
+ "film_id": {
1405
+ "type": "integer",
1406
+ "nullable": false
1407
+ },
1408
+ "name_ru": {
1409
+ "type": "string",
1410
+ "nullable": true
1411
+ },
1412
+ "name_en": {
1413
+ "type": "string",
1414
+ "nullable": true
1415
+ },
1416
+ "rating": {
1417
+ "type": "string",
1418
+ "nullable": true
1419
+ },
1420
+ "general": {
1421
+ "type": "boolean",
1422
+ "nullable": false
1423
+ },
1424
+ "description": {
1425
+ "type": "string",
1426
+ "nullable": true
1427
+ },
1428
+ "profession_key": {
1429
+ "type": "string",
1430
+ "nullable": false
1431
+ }
1432
+ },
1433
+ "PersonByNameResponse::Item": {
1434
+ "kinopoisk_id": {
1435
+ "type": "integer",
1436
+ "nullable": false
1437
+ },
1438
+ "web_url": {
1439
+ "type": "string",
1440
+ "nullable": false
1441
+ },
1442
+ "name_ru": {
1443
+ "type": "string",
1444
+ "nullable": true
1445
+ },
1446
+ "name_en": {
1447
+ "type": "string",
1448
+ "nullable": true
1449
+ },
1450
+ "sex": {
1451
+ "type": "string",
1452
+ "nullable": true
1453
+ },
1454
+ "poster_url": {
1455
+ "type": "string",
1456
+ "nullable": false
1457
+ }
1458
+ },
1459
+ "ImageResponse::Item": {
1460
+ "image_url": {
1461
+ "type": "string",
1462
+ "nullable": false
1463
+ },
1464
+ "preview_url": {
1465
+ "type": "string",
1466
+ "nullable": false
1467
+ }
1468
+ },
1469
+ "VideoResponse::Item": {
1470
+ "url": {
1471
+ "type": "string",
1472
+ "nullable": false
1473
+ },
1474
+ "name": {
1475
+ "type": "string",
1476
+ "nullable": false
1477
+ },
1478
+ "site": {
1479
+ "type": "string",
1480
+ "nullable": false
1481
+ }
1482
+ },
1483
+ "KinopoiskUserVoteResponse::Item": {
1484
+ "kinopoisk_id": {
1485
+ "type": "integer",
1486
+ "nullable": false
1487
+ },
1488
+ "name_ru": {
1489
+ "type": "string",
1490
+ "nullable": true
1491
+ },
1492
+ "name_en": {
1493
+ "type": "string",
1494
+ "nullable": true
1495
+ },
1496
+ "name_original": {
1497
+ "type": "string",
1498
+ "nullable": true
1499
+ },
1500
+ "countries": {
1501
+ "type": "array",
1502
+ "nullable": false,
1503
+ "items": "Country"
1504
+ },
1505
+ "genres": {
1506
+ "type": "array",
1507
+ "nullable": false,
1508
+ "items": "Genre"
1509
+ },
1510
+ "rating_kinopoisk": {
1511
+ "type": "number",
1512
+ "nullable": true
1513
+ },
1514
+ "rating_imbd": {
1515
+ "type": "number",
1516
+ "nullable": true
1517
+ },
1518
+ "year": {
1519
+ "type": "integer",
1520
+ "nullable": true
1521
+ },
1522
+ "type": {
1523
+ "type": "string",
1524
+ "nullable": false
1525
+ },
1526
+ "poster_url": {
1527
+ "type": "string",
1528
+ "nullable": false
1529
+ },
1530
+ "poster_url_preview": {
1531
+ "type": "string",
1532
+ "nullable": false
1533
+ },
1534
+ "user_rating": {
1535
+ "type": "integer",
1536
+ "nullable": false
1537
+ }
1538
+ },
1539
+ "ApiKeyResponse::TotalQuota": {
1540
+ "value": {
1541
+ "type": "integer",
1542
+ "nullable": false,
1543
+ "required": true
1544
+ },
1545
+ "used": {
1546
+ "type": "integer",
1547
+ "nullable": false,
1548
+ "required": true
1549
+ }
1550
+ },
1551
+ "ApiKeyResponse::DailyQuota": {
1552
+ "value": {
1553
+ "type": "integer",
1554
+ "nullable": false,
1555
+ "required": true
1556
+ },
1557
+ "used": {
1558
+ "type": "integer",
1559
+ "nullable": false,
1560
+ "required": true
1561
+ }
1562
+ },
1563
+ "MediaPostsResponse::Item": {
1564
+ "kinopoisk_id": {
1565
+ "type": "integer",
1566
+ "nullable": false
1567
+ },
1568
+ "image_url": {
1569
+ "type": "string",
1570
+ "nullable": false
1571
+ },
1572
+ "title": {
1573
+ "type": "string",
1574
+ "nullable": false
1575
+ },
1576
+ "description": {
1577
+ "type": "string",
1578
+ "nullable": false
1579
+ },
1580
+ "url": {
1581
+ "type": "string",
1582
+ "nullable": false
1583
+ },
1584
+ "published_at": {
1585
+ "type": "string",
1586
+ "nullable": false
1587
+ }
1588
+ }
1589
+ }