tsarr 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +4 -3
  2. package/dist/cli/commands/config.d.ts.map +1 -1
  3. package/dist/cli/commands/doctor.d.ts.map +1 -1
  4. package/dist/cli/commands/seerr.d.ts +4 -0
  5. package/dist/cli/commands/seerr.d.ts.map +1 -0
  6. package/dist/cli/completions.d.ts.map +1 -1
  7. package/dist/cli/config.d.ts +1 -1
  8. package/dist/cli/config.d.ts.map +1 -1
  9. package/dist/cli/index.js +1164 -56
  10. package/dist/clients/seerr-types.d.ts +2 -0
  11. package/dist/clients/seerr-types.d.ts.map +1 -0
  12. package/dist/clients/seerr.d.ts +158 -0
  13. package/dist/clients/seerr.d.ts.map +1 -0
  14. package/dist/clients/seerr.js +1009 -0
  15. package/dist/generated/seerr/client/client.gen.d.ts +3 -0
  16. package/dist/generated/seerr/client/client.gen.d.ts.map +1 -0
  17. package/dist/generated/seerr/client/index.d.ts +9 -0
  18. package/dist/generated/seerr/client/index.d.ts.map +1 -0
  19. package/dist/generated/seerr/client/types.gen.d.ts +118 -0
  20. package/dist/generated/seerr/client/types.gen.d.ts.map +1 -0
  21. package/dist/generated/seerr/client/utils.gen.d.ts +34 -0
  22. package/dist/generated/seerr/client/utils.gen.d.ts.map +1 -0
  23. package/dist/generated/seerr/client.gen.d.ts +13 -0
  24. package/dist/generated/seerr/client.gen.d.ts.map +1 -0
  25. package/dist/generated/seerr/core/auth.gen.d.ts +19 -0
  26. package/dist/generated/seerr/core/auth.gen.d.ts.map +1 -0
  27. package/dist/generated/seerr/core/bodySerializer.gen.d.ts +26 -0
  28. package/dist/generated/seerr/core/bodySerializer.gen.d.ts.map +1 -0
  29. package/dist/generated/seerr/core/params.gen.d.ts +44 -0
  30. package/dist/generated/seerr/core/params.gen.d.ts.map +1 -0
  31. package/dist/generated/seerr/core/pathSerializer.gen.d.ts +34 -0
  32. package/dist/generated/seerr/core/pathSerializer.gen.d.ts.map +1 -0
  33. package/dist/generated/seerr/core/queryKeySerializer.gen.d.ts +19 -0
  34. package/dist/generated/seerr/core/queryKeySerializer.gen.d.ts.map +1 -0
  35. package/dist/generated/seerr/core/serverSentEvents.gen.d.ts +72 -0
  36. package/dist/generated/seerr/core/serverSentEvents.gen.d.ts.map +1 -0
  37. package/dist/generated/seerr/core/types.gen.d.ts +79 -0
  38. package/dist/generated/seerr/core/types.gen.d.ts.map +1 -0
  39. package/dist/generated/seerr/core/utils.gen.d.ts +20 -0
  40. package/dist/generated/seerr/core/utils.gen.d.ts.map +1 -0
  41. package/dist/generated/seerr/index.d.ts +3 -0
  42. package/dist/generated/seerr/index.d.ts.map +1 -0
  43. package/dist/generated/seerr/sdk.gen.d.ts +1309 -0
  44. package/dist/generated/seerr/sdk.gen.d.ts.map +1 -0
  45. package/dist/generated/seerr/types.gen.d.ts +4867 -0
  46. package/dist/generated/seerr/types.gen.d.ts.map +1 -0
  47. package/dist/index.d.ts +2 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +41 -36
  50. package/dist/tsarr-2.7.0.tgz +0 -0
  51. package/package.json +12 -2
  52. package/dist/tsarr-2.6.0.tgz +0 -0
@@ -0,0 +1,4867 @@
1
+ export type ClientOptions = {
2
+ baseUrl: `${string}://{server}/api/v1` | (string & {});
3
+ };
4
+ export type Blocklist = {
5
+ tmdbId?: number;
6
+ title?: string;
7
+ media?: MediaInfo;
8
+ userId?: number;
9
+ };
10
+ export type Watchlist = {
11
+ readonly id?: number;
12
+ tmdbId?: number;
13
+ ratingKey?: string;
14
+ type?: string;
15
+ title?: string;
16
+ media?: MediaInfo;
17
+ readonly createdAt?: string;
18
+ readonly updatedAt?: string;
19
+ requestedBy?: User;
20
+ };
21
+ export type User = {
22
+ readonly id: number;
23
+ readonly email: string;
24
+ username?: string;
25
+ readonly plexUsername?: string;
26
+ readonly plexToken?: string;
27
+ readonly jellyfinAuthToken?: string;
28
+ readonly userType?: number;
29
+ permissions?: number;
30
+ readonly avatar?: string;
31
+ readonly createdAt: string;
32
+ readonly updatedAt: string;
33
+ readonly requestCount?: number;
34
+ };
35
+ export type UserSettings = {
36
+ username?: string | null;
37
+ email?: string;
38
+ discordId?: string | null;
39
+ locale?: string | null;
40
+ discoverRegion?: string | null;
41
+ streamingRegion?: string | null;
42
+ originalLanguage?: string | null;
43
+ /**
44
+ * Maximum number of movie requests allowed
45
+ */
46
+ movieQuotaLimit?: number | null;
47
+ /**
48
+ * Time period in days for movie quota
49
+ */
50
+ movieQuotaDays?: number | null;
51
+ /**
52
+ * Maximum number of TV requests allowed
53
+ */
54
+ tvQuotaLimit?: number | null;
55
+ /**
56
+ * Time period in days for TV quota
57
+ */
58
+ tvQuotaDays?: number | null;
59
+ /**
60
+ * Global movie quota days setting
61
+ */
62
+ globalMovieQuotaDays?: number | null;
63
+ /**
64
+ * Global movie quota limit setting
65
+ */
66
+ globalMovieQuotaLimit?: number | null;
67
+ /**
68
+ * Global TV quota limit setting
69
+ */
70
+ globalTvQuotaLimit?: number | null;
71
+ /**
72
+ * Global TV quota days setting
73
+ */
74
+ globalTvQuotaDays?: number | null;
75
+ /**
76
+ * Enable watchlist sync for movies
77
+ */
78
+ watchlistSyncMovies?: boolean | null;
79
+ /**
80
+ * Enable watchlist sync for TV
81
+ */
82
+ watchlistSyncTv?: boolean | null;
83
+ };
84
+ export type MainSettings = {
85
+ readonly apiKey?: string;
86
+ appLanguage?: string;
87
+ applicationTitle?: string;
88
+ applicationUrl?: string;
89
+ hideAvailable?: boolean;
90
+ partialRequestsEnabled?: boolean;
91
+ localLogin?: boolean;
92
+ mediaServerType?: number;
93
+ newPlexLogin?: boolean;
94
+ defaultPermissions?: number;
95
+ enableSpecialEpisodes?: boolean;
96
+ };
97
+ export type NetworkSettings = {
98
+ csrfProtection?: boolean;
99
+ forceIpv4First?: boolean;
100
+ trustProxy?: boolean;
101
+ proxy?: {
102
+ enabled?: boolean;
103
+ hostname?: string;
104
+ port?: number;
105
+ useSsl?: boolean;
106
+ user?: string;
107
+ password?: string;
108
+ bypassFilter?: string;
109
+ bypassLocalAddresses?: boolean;
110
+ };
111
+ dnsCache?: {
112
+ enabled?: boolean;
113
+ forceMinTtl?: number;
114
+ forceMaxTtl?: number;
115
+ };
116
+ };
117
+ export type PlexLibrary = {
118
+ id: string;
119
+ name: string;
120
+ enabled: boolean;
121
+ };
122
+ export type PlexSettings = {
123
+ readonly name: string;
124
+ readonly machineId: string;
125
+ ip: string;
126
+ port: number;
127
+ useSsl?: boolean | null;
128
+ readonly libraries?: Array<PlexLibrary>;
129
+ webAppUrl?: string | null;
130
+ };
131
+ export type PlexConnection = {
132
+ protocol: string;
133
+ address: string;
134
+ port: number;
135
+ uri: string;
136
+ local: boolean;
137
+ status?: number;
138
+ message?: string;
139
+ };
140
+ export type PlexDevice = {
141
+ name: string;
142
+ product: string;
143
+ productVersion: string;
144
+ platform: string;
145
+ platformVersion?: string;
146
+ device: string;
147
+ clientIdentifier: string;
148
+ createdAt: string;
149
+ lastSeenAt: string;
150
+ provides: Array<string>;
151
+ owned: boolean;
152
+ ownerID?: string;
153
+ home?: boolean;
154
+ sourceTitle?: string;
155
+ accessToken?: string;
156
+ publicAddress?: string;
157
+ httpsRequired?: boolean;
158
+ synced?: boolean;
159
+ relay?: boolean;
160
+ dnsRebindingProtection?: boolean;
161
+ natLoopbackSupported?: boolean;
162
+ publicAddressMatches?: boolean;
163
+ presence?: boolean;
164
+ connection: Array<PlexConnection>;
165
+ };
166
+ export type JellyfinLibrary = {
167
+ id: string;
168
+ name: string;
169
+ enabled: boolean;
170
+ };
171
+ export type JellyfinSettings = {
172
+ readonly name?: string;
173
+ hostname?: string;
174
+ externalHostname?: string;
175
+ jellyfinForgotPasswordUrl?: string;
176
+ adminUser?: string;
177
+ adminPass?: string;
178
+ readonly libraries?: Array<JellyfinLibrary>;
179
+ readonly serverID?: string;
180
+ };
181
+ export type MetadataSettings = {
182
+ settings?: {
183
+ tv?: 'tvdb' | 'tmdb';
184
+ anime?: 'tvdb' | 'tmdb';
185
+ };
186
+ };
187
+ export type TautulliSettings = {
188
+ hostname?: string | null;
189
+ port?: number | null;
190
+ useSsl?: boolean | null;
191
+ apiKey?: string | null;
192
+ externalUrl?: string | null;
193
+ };
194
+ export type RadarrSettings = {
195
+ readonly id?: number;
196
+ name: string;
197
+ hostname: string;
198
+ port: number;
199
+ apiKey: string;
200
+ useSsl: boolean;
201
+ baseUrl?: string;
202
+ activeProfileId: number;
203
+ activeProfileName: string;
204
+ activeDirectory: string;
205
+ is4k: boolean;
206
+ minimumAvailability: string;
207
+ isDefault: boolean;
208
+ externalUrl?: string;
209
+ syncEnabled?: boolean;
210
+ preventSearch?: boolean;
211
+ };
212
+ export type SonarrSettings = {
213
+ readonly id?: number;
214
+ name: string;
215
+ hostname: string;
216
+ port: number;
217
+ apiKey: string;
218
+ useSsl: boolean;
219
+ baseUrl?: string;
220
+ activeProfileId: number;
221
+ activeProfileName: string;
222
+ activeDirectory: string;
223
+ activeLanguageProfileId?: number;
224
+ activeAnimeProfileId?: number | null;
225
+ activeAnimeLanguageProfileId?: number | null;
226
+ activeAnimeProfileName?: string | null;
227
+ activeAnimeDirectory?: string | null;
228
+ is4k: boolean;
229
+ enableSeasonFolders: boolean;
230
+ isDefault: boolean;
231
+ externalUrl?: string;
232
+ syncEnabled?: boolean;
233
+ preventSearch?: boolean;
234
+ };
235
+ export type ServarrTag = {
236
+ id?: number;
237
+ label?: string;
238
+ };
239
+ export type PublicSettings = {
240
+ initialized?: boolean;
241
+ };
242
+ export type MovieResult = {
243
+ id: number;
244
+ mediaType: string;
245
+ popularity?: number;
246
+ posterPath?: string;
247
+ backdropPath?: string;
248
+ voteCount?: number;
249
+ voteAverage?: number;
250
+ genreIds?: Array<number>;
251
+ overview?: string;
252
+ originalLanguage?: string;
253
+ title: string;
254
+ originalTitle?: string;
255
+ releaseDate?: string;
256
+ adult?: boolean;
257
+ video?: boolean;
258
+ mediaInfo?: MediaInfo;
259
+ };
260
+ export type TvResult = {
261
+ id?: number;
262
+ mediaType?: string;
263
+ popularity?: number;
264
+ posterPath?: string;
265
+ backdropPath?: string;
266
+ voteCount?: number;
267
+ voteAverage?: number;
268
+ genreIds?: Array<number>;
269
+ overview?: string;
270
+ originalLanguage?: string;
271
+ name?: string;
272
+ originalName?: string;
273
+ originCountry?: Array<string>;
274
+ firstAirDate?: string;
275
+ mediaInfo?: MediaInfo;
276
+ };
277
+ export type PersonResult = {
278
+ id?: number;
279
+ profilePath?: string;
280
+ adult?: boolean;
281
+ mediaType?: string;
282
+ knownFor?: Array<MovieResult | TvResult>;
283
+ };
284
+ export type Genre = {
285
+ id?: number;
286
+ name?: string;
287
+ };
288
+ export type Company = {
289
+ id?: number;
290
+ logo_path?: string | null;
291
+ name?: string;
292
+ };
293
+ export type ProductionCompany = {
294
+ id?: number;
295
+ logoPath?: string | null;
296
+ originCountry?: string;
297
+ name?: string;
298
+ };
299
+ export type Network = {
300
+ id?: number;
301
+ logoPath?: string | null;
302
+ originCountry?: string;
303
+ name?: string;
304
+ };
305
+ export type RelatedVideo = {
306
+ url?: string;
307
+ key?: string;
308
+ name?: string;
309
+ size?: number;
310
+ type?: 'Clip' | 'Teaser' | 'Trailer' | 'Featurette' | 'Opening Credits' | 'Behind the Scenes' | 'Bloopers';
311
+ site?: 'YouTube';
312
+ };
313
+ export type MovieDetails = {
314
+ readonly id?: number;
315
+ imdbId?: string;
316
+ adult?: boolean;
317
+ backdropPath?: string;
318
+ posterPath?: string;
319
+ budget?: number;
320
+ genres?: Array<Genre>;
321
+ homepage?: string;
322
+ relatedVideos?: Array<RelatedVideo>;
323
+ originalLanguage?: string;
324
+ originalTitle?: string;
325
+ overview?: string;
326
+ popularity?: number;
327
+ productionCompanies?: Array<ProductionCompany>;
328
+ productionCountries?: Array<{
329
+ iso_3166_1?: string;
330
+ name?: string;
331
+ }>;
332
+ releaseDate?: string;
333
+ releases?: {
334
+ results?: Array<{
335
+ iso_3166_1?: string;
336
+ rating?: string | null;
337
+ release_dates?: Array<{
338
+ certification?: string;
339
+ iso_639_1?: string | null;
340
+ note?: string | null;
341
+ release_date?: string;
342
+ type?: number;
343
+ }>;
344
+ }>;
345
+ };
346
+ revenue?: number | null;
347
+ runtime?: number;
348
+ spokenLanguages?: Array<SpokenLanguage>;
349
+ status?: string;
350
+ tagline?: string;
351
+ title?: string;
352
+ video?: boolean;
353
+ voteAverage?: number;
354
+ voteCount?: number;
355
+ credits?: {
356
+ cast?: Array<Cast>;
357
+ crew?: Array<Crew>;
358
+ };
359
+ collection?: {
360
+ id?: number;
361
+ name?: string;
362
+ posterPath?: string;
363
+ backdropPath?: string;
364
+ };
365
+ externalIds?: ExternalIds;
366
+ mediaInfo?: MediaInfo;
367
+ watchProviders?: Array<WatchProviders>;
368
+ };
369
+ export type Episode = {
370
+ id?: number;
371
+ name?: string;
372
+ airDate?: string | null;
373
+ episodeNumber?: number;
374
+ overview?: string;
375
+ productionCode?: string;
376
+ seasonNumber?: number;
377
+ showId?: number;
378
+ stillPath?: string | null;
379
+ voteAverage?: number;
380
+ voteCount?: number;
381
+ };
382
+ export type Season = {
383
+ id?: number;
384
+ airDate?: string | null;
385
+ episodeCount?: number;
386
+ name?: string;
387
+ overview?: string;
388
+ posterPath?: string;
389
+ seasonNumber?: number;
390
+ episodes?: Array<Episode>;
391
+ };
392
+ export type TvDetails = {
393
+ id?: number;
394
+ backdropPath?: string;
395
+ posterPath?: string;
396
+ contentRatings?: {
397
+ results?: Array<{
398
+ iso_3166_1?: string;
399
+ rating?: string;
400
+ }>;
401
+ };
402
+ createdBy?: Array<{
403
+ id?: number;
404
+ name?: string;
405
+ gender?: number;
406
+ profilePath?: string | null;
407
+ }>;
408
+ episodeRunTime?: Array<number>;
409
+ firstAirDate?: string;
410
+ genres?: Array<Genre>;
411
+ homepage?: string;
412
+ inProduction?: boolean;
413
+ languages?: Array<string>;
414
+ lastAirDate?: string;
415
+ lastEpisodeToAir?: Episode;
416
+ name?: string;
417
+ nextEpisodeToAir?: Episode;
418
+ networks?: Array<ProductionCompany>;
419
+ numberOfEpisodes?: number;
420
+ numberOfSeason?: number;
421
+ originCountry?: Array<string>;
422
+ originalLanguage?: string;
423
+ originalName?: string;
424
+ overview?: string;
425
+ popularity?: number;
426
+ productionCompanies?: Array<ProductionCompany>;
427
+ productionCountries?: Array<{
428
+ iso_3166_1?: string;
429
+ name?: string;
430
+ }>;
431
+ spokenLanguages?: Array<SpokenLanguage>;
432
+ seasons?: Array<Season>;
433
+ status?: string;
434
+ tagline?: string;
435
+ type?: string;
436
+ voteAverage?: number;
437
+ voteCount?: number;
438
+ credits?: {
439
+ cast?: Array<Cast>;
440
+ crew?: Array<Crew>;
441
+ };
442
+ externalIds?: ExternalIds;
443
+ keywords?: Array<Keyword>;
444
+ mediaInfo?: MediaInfo;
445
+ watchProviders?: Array<WatchProviders>;
446
+ };
447
+ export type MediaRequest = {
448
+ readonly id: number;
449
+ /**
450
+ * Status of the request. 1 = PENDING APPROVAL, 2 = APPROVED, 3 = DECLINED
451
+ */
452
+ readonly status: number;
453
+ media?: MediaInfo;
454
+ readonly createdAt?: string;
455
+ readonly updatedAt?: string;
456
+ requestedBy?: User;
457
+ modifiedBy?: User | string | null;
458
+ is4k?: boolean;
459
+ serverId?: number;
460
+ profileId?: number;
461
+ rootFolder?: string;
462
+ };
463
+ export type MediaInfo = {
464
+ readonly id?: number;
465
+ readonly tmdbId?: number;
466
+ readonly tvdbId?: number | null;
467
+ /**
468
+ * Availability of the media. 1 = `UNKNOWN`, 2 = `PENDING`, 3 = `PROCESSING`, 4 = `PARTIALLY_AVAILABLE`, 5 = `AVAILABLE`, 6 = `DELETED`
469
+ */
470
+ status?: number;
471
+ readonly requests?: Array<MediaRequest>;
472
+ readonly createdAt?: string;
473
+ readonly updatedAt?: string;
474
+ };
475
+ export type Cast = {
476
+ id?: number;
477
+ castId?: number;
478
+ character?: string;
479
+ creditId?: string;
480
+ gender?: number;
481
+ name?: string;
482
+ order?: number;
483
+ profilePath?: string | null;
484
+ };
485
+ export type Crew = {
486
+ id?: number;
487
+ creditId?: string;
488
+ gender?: number;
489
+ name?: string;
490
+ job?: string;
491
+ department?: string;
492
+ profilePath?: string | null;
493
+ };
494
+ export type ExternalIds = {
495
+ facebookId?: string | null;
496
+ freebaseId?: string | null;
497
+ freebaseMid?: string | null;
498
+ imdbId?: string | null;
499
+ instagramId?: string | null;
500
+ tvdbId?: number | null;
501
+ tvrageId?: number | null;
502
+ twitterId?: string | null;
503
+ };
504
+ export type ServiceProfile = {
505
+ id?: number;
506
+ name?: string;
507
+ };
508
+ export type PageInfo = {
509
+ page?: number;
510
+ pages?: number;
511
+ results?: number;
512
+ };
513
+ export type DiscordSettings = {
514
+ enabled?: boolean;
515
+ types?: number;
516
+ options?: {
517
+ botUsername?: string;
518
+ botAvatarUrl?: string;
519
+ webhookUrl?: string;
520
+ webhookRoleId?: string;
521
+ enableMentions?: boolean;
522
+ };
523
+ };
524
+ export type SlackSettings = {
525
+ enabled?: boolean;
526
+ types?: number;
527
+ options?: {
528
+ webhookUrl?: string;
529
+ };
530
+ };
531
+ export type WebPushSettings = {
532
+ enabled?: boolean;
533
+ types?: number;
534
+ };
535
+ export type WebhookSettings = {
536
+ enabled?: boolean;
537
+ types?: number;
538
+ options?: {
539
+ webhookUrl?: string;
540
+ authHeader?: string;
541
+ jsonPayload?: string;
542
+ supportVariables?: boolean;
543
+ };
544
+ };
545
+ export type TelegramSettings = {
546
+ enabled?: boolean;
547
+ types?: number;
548
+ options?: {
549
+ botUsername?: string;
550
+ botAPI?: string;
551
+ chatId?: string;
552
+ messageThreadId?: string;
553
+ sendSilently?: boolean;
554
+ };
555
+ };
556
+ export type PushbulletSettings = {
557
+ enabled?: boolean;
558
+ types?: number;
559
+ options?: {
560
+ accessToken?: string;
561
+ channelTag?: string | null;
562
+ };
563
+ };
564
+ export type PushoverSettings = {
565
+ enabled?: boolean;
566
+ types?: number;
567
+ options?: {
568
+ accessToken?: string;
569
+ userToken?: string;
570
+ sound?: string;
571
+ };
572
+ };
573
+ export type GotifySettings = {
574
+ enabled?: boolean;
575
+ types?: number;
576
+ options?: {
577
+ url?: string;
578
+ token?: string;
579
+ };
580
+ };
581
+ export type NtfySettings = {
582
+ enabled?: boolean;
583
+ types?: number;
584
+ options?: {
585
+ url?: string;
586
+ topic?: string;
587
+ authMethodUsernamePassword?: boolean;
588
+ username?: string;
589
+ password?: string;
590
+ authMethodToken?: boolean;
591
+ token?: string;
592
+ };
593
+ };
594
+ export type NotificationEmailSettings = {
595
+ enabled?: boolean;
596
+ types?: number;
597
+ options?: {
598
+ emailFrom?: string;
599
+ senderName?: string;
600
+ smtpHost?: string;
601
+ smtpPort?: number;
602
+ secure?: boolean;
603
+ ignoreTls?: boolean;
604
+ requireTls?: boolean;
605
+ authUser?: string | null;
606
+ authPass?: string | null;
607
+ allowSelfSigned?: boolean;
608
+ };
609
+ };
610
+ export type Job = {
611
+ id?: string;
612
+ type?: 'process' | 'command';
613
+ interval?: 'short' | 'long' | 'fixed';
614
+ name?: string;
615
+ nextExecutionTime?: string;
616
+ running?: boolean;
617
+ };
618
+ export type PersonDetails = {
619
+ id?: number;
620
+ name?: string;
621
+ deathday?: string;
622
+ knownForDepartment?: string;
623
+ alsoKnownAs?: Array<string>;
624
+ gender?: string;
625
+ biography?: string;
626
+ popularity?: string;
627
+ placeOfBirth?: string;
628
+ profilePath?: string;
629
+ adult?: boolean;
630
+ imdbId?: string;
631
+ homepage?: string;
632
+ };
633
+ export type CreditCast = {
634
+ id?: number;
635
+ originalLanguage?: string;
636
+ episodeCount?: number;
637
+ overview?: string;
638
+ originCountry?: Array<string>;
639
+ originalName?: string;
640
+ voteCount?: number;
641
+ name?: string;
642
+ mediaType?: string;
643
+ popularity?: number;
644
+ creditId?: string;
645
+ backdropPath?: string;
646
+ firstAirDate?: string;
647
+ voteAverage?: number;
648
+ genreIds?: Array<number>;
649
+ posterPath?: string;
650
+ originalTitle?: string;
651
+ video?: boolean;
652
+ title?: string;
653
+ adult?: boolean;
654
+ releaseDate?: string;
655
+ character?: string;
656
+ mediaInfo?: MediaInfo;
657
+ };
658
+ export type CreditCrew = {
659
+ id?: number;
660
+ originalLanguage?: string;
661
+ episodeCount?: number;
662
+ overview?: string;
663
+ originCountry?: Array<string>;
664
+ originalName?: string;
665
+ voteCount?: number;
666
+ name?: string;
667
+ mediaType?: string;
668
+ popularity?: number;
669
+ creditId?: string;
670
+ backdropPath?: string;
671
+ firstAirDate?: string;
672
+ voteAverage?: number;
673
+ genreIds?: Array<number>;
674
+ posterPath?: string;
675
+ originalTitle?: string;
676
+ video?: boolean;
677
+ title?: string;
678
+ adult?: boolean;
679
+ releaseDate?: string;
680
+ department?: string;
681
+ job?: string;
682
+ mediaInfo?: MediaInfo;
683
+ };
684
+ export type Keyword = {
685
+ id?: number;
686
+ name?: string;
687
+ };
688
+ export type SpokenLanguage = {
689
+ englishName?: string | null;
690
+ iso_639_1?: string;
691
+ name?: string;
692
+ };
693
+ export type Collection = {
694
+ id?: number;
695
+ name?: string;
696
+ overview?: string;
697
+ posterPath?: string;
698
+ backdropPath?: string;
699
+ parts?: Array<MovieResult>;
700
+ };
701
+ export type SonarrSeries = {
702
+ title?: string;
703
+ sortTitle?: string;
704
+ seasonCount?: number;
705
+ status?: string;
706
+ overview?: string;
707
+ network?: string;
708
+ airTime?: string;
709
+ images?: Array<{
710
+ coverType?: string;
711
+ url?: string;
712
+ }>;
713
+ remotePoster?: string;
714
+ seasons?: Array<{
715
+ seasonNumber?: number;
716
+ monitored?: boolean;
717
+ }>;
718
+ year?: number;
719
+ path?: string;
720
+ profileId?: number;
721
+ languageProfileId?: number;
722
+ seasonFolder?: boolean;
723
+ monitored?: boolean;
724
+ useSceneNumbering?: boolean;
725
+ runtime?: number;
726
+ tvdbId?: number;
727
+ tvRageId?: number;
728
+ tvMazeId?: number;
729
+ firstAired?: string;
730
+ lastInfoSync?: string | null;
731
+ seriesType?: string;
732
+ cleanTitle?: string;
733
+ imdbId?: string;
734
+ titleSlug?: string;
735
+ certification?: string;
736
+ genres?: Array<string>;
737
+ tags?: Array<string>;
738
+ added?: string;
739
+ ratings?: Array<{
740
+ votes?: number;
741
+ value?: number;
742
+ }>;
743
+ qualityProfileId?: number;
744
+ id?: number | null;
745
+ rootFolderPath?: string | null;
746
+ addOptions?: Array<{
747
+ ignoreEpisodesWithFiles?: boolean | null;
748
+ ignoreEpisodesWithoutFiles?: boolean | null;
749
+ searchForMissingEpisodes?: boolean | null;
750
+ }>;
751
+ };
752
+ export type UserSettingsNotifications = {
753
+ notificationTypes?: NotificationAgentTypes;
754
+ emailEnabled?: boolean;
755
+ pgpKey?: string | null;
756
+ discordEnabled?: boolean;
757
+ discordEnabledTypes?: number | null;
758
+ discordId?: string | null;
759
+ pushbulletAccessToken?: string | null;
760
+ pushoverApplicationToken?: string | null;
761
+ pushoverUserKey?: string | null;
762
+ pushoverSound?: string | null;
763
+ telegramEnabled?: boolean;
764
+ telegramBotUsername?: string | null;
765
+ telegramChatId?: string | null;
766
+ telegramMessageThreadId?: string | null;
767
+ telegramSendSilently?: boolean | null;
768
+ };
769
+ export type NotificationAgentTypes = {
770
+ discord?: number;
771
+ email?: number;
772
+ pushbullet?: number;
773
+ pushover?: number;
774
+ slack?: number;
775
+ telegram?: number;
776
+ webhook?: number;
777
+ webpush?: number;
778
+ };
779
+ export type WatchProviders = Array<{
780
+ iso_3166_1?: string;
781
+ link?: string;
782
+ buy?: Array<WatchProviderDetails>;
783
+ flatrate?: unknown;
784
+ }>;
785
+ export type WatchProviderDetails = {
786
+ displayPriority?: number;
787
+ logoPath?: string;
788
+ id?: number;
789
+ name?: string;
790
+ };
791
+ export type Issue = {
792
+ id?: number;
793
+ issueType?: number;
794
+ media?: MediaInfo;
795
+ createdBy?: User;
796
+ modifiedBy?: User;
797
+ comments?: Array<IssueComment>;
798
+ };
799
+ export type IssueComment = {
800
+ id?: number;
801
+ user?: User;
802
+ message?: string;
803
+ };
804
+ export type DiscoverSlider = {
805
+ id?: number;
806
+ type: number;
807
+ title: string | null;
808
+ isBuiltIn?: boolean;
809
+ enabled: boolean;
810
+ data: string | null;
811
+ };
812
+ export type WatchProviderRegion = {
813
+ iso_3166_1?: string;
814
+ english_name?: string;
815
+ native_name?: string;
816
+ };
817
+ export type OverrideRule = {
818
+ id?: string;
819
+ };
820
+ export type Certification = {
821
+ certification: string;
822
+ meaning?: string | null;
823
+ order?: number | null;
824
+ };
825
+ export type CertificationResponse = {
826
+ certifications?: {
827
+ [key: string]: Array<Certification>;
828
+ };
829
+ };
830
+ export type BlocklistWritable = {
831
+ tmdbId?: number;
832
+ title?: string;
833
+ media?: MediaInfoWritable;
834
+ userId?: number;
835
+ };
836
+ export type WatchlistWritable = {
837
+ tmdbId?: number;
838
+ ratingKey?: string;
839
+ type?: string;
840
+ title?: string;
841
+ media?: MediaInfoWritable;
842
+ requestedBy?: UserWritable;
843
+ };
844
+ export type UserWritable = {
845
+ username?: string;
846
+ permissions?: number;
847
+ };
848
+ export type MainSettingsWritable = {
849
+ appLanguage?: string;
850
+ applicationTitle?: string;
851
+ applicationUrl?: string;
852
+ hideAvailable?: boolean;
853
+ partialRequestsEnabled?: boolean;
854
+ localLogin?: boolean;
855
+ mediaServerType?: number;
856
+ newPlexLogin?: boolean;
857
+ defaultPermissions?: number;
858
+ enableSpecialEpisodes?: boolean;
859
+ };
860
+ export type PlexSettingsWritable = {
861
+ ip: string;
862
+ port: number;
863
+ useSsl?: boolean | null;
864
+ webAppUrl?: string | null;
865
+ };
866
+ export type JellyfinSettingsWritable = {
867
+ hostname?: string;
868
+ externalHostname?: string;
869
+ jellyfinForgotPasswordUrl?: string;
870
+ adminUser?: string;
871
+ adminPass?: string;
872
+ };
873
+ export type RadarrSettingsWritable = {
874
+ name: string;
875
+ hostname: string;
876
+ port: number;
877
+ apiKey: string;
878
+ useSsl: boolean;
879
+ baseUrl?: string;
880
+ activeProfileId: number;
881
+ activeProfileName: string;
882
+ activeDirectory: string;
883
+ is4k: boolean;
884
+ minimumAvailability: string;
885
+ isDefault: boolean;
886
+ externalUrl?: string;
887
+ syncEnabled?: boolean;
888
+ preventSearch?: boolean;
889
+ };
890
+ export type SonarrSettingsWritable = {
891
+ name: string;
892
+ hostname: string;
893
+ port: number;
894
+ apiKey: string;
895
+ useSsl: boolean;
896
+ baseUrl?: string;
897
+ activeProfileId: number;
898
+ activeProfileName: string;
899
+ activeDirectory: string;
900
+ activeLanguageProfileId?: number;
901
+ activeAnimeProfileId?: number | null;
902
+ activeAnimeLanguageProfileId?: number | null;
903
+ activeAnimeProfileName?: string | null;
904
+ activeAnimeDirectory?: string | null;
905
+ is4k: boolean;
906
+ enableSeasonFolders: boolean;
907
+ isDefault: boolean;
908
+ externalUrl?: string;
909
+ syncEnabled?: boolean;
910
+ preventSearch?: boolean;
911
+ };
912
+ export type MovieResultWritable = {
913
+ id: number;
914
+ mediaType: string;
915
+ popularity?: number;
916
+ posterPath?: string;
917
+ backdropPath?: string;
918
+ voteCount?: number;
919
+ voteAverage?: number;
920
+ genreIds?: Array<number>;
921
+ overview?: string;
922
+ originalLanguage?: string;
923
+ title: string;
924
+ originalTitle?: string;
925
+ releaseDate?: string;
926
+ adult?: boolean;
927
+ video?: boolean;
928
+ mediaInfo?: MediaInfoWritable;
929
+ };
930
+ export type TvResultWritable = {
931
+ id?: number;
932
+ mediaType?: string;
933
+ popularity?: number;
934
+ posterPath?: string;
935
+ backdropPath?: string;
936
+ voteCount?: number;
937
+ voteAverage?: number;
938
+ genreIds?: Array<number>;
939
+ overview?: string;
940
+ originalLanguage?: string;
941
+ name?: string;
942
+ originalName?: string;
943
+ originCountry?: Array<string>;
944
+ firstAirDate?: string;
945
+ mediaInfo?: MediaInfoWritable;
946
+ };
947
+ export type PersonResultWritable = {
948
+ id?: number;
949
+ profilePath?: string;
950
+ adult?: boolean;
951
+ mediaType?: string;
952
+ knownFor?: Array<MovieResultWritable | TvResultWritable>;
953
+ };
954
+ export type MovieDetailsWritable = {
955
+ imdbId?: string;
956
+ adult?: boolean;
957
+ backdropPath?: string;
958
+ posterPath?: string;
959
+ budget?: number;
960
+ genres?: Array<Genre>;
961
+ homepage?: string;
962
+ relatedVideos?: Array<RelatedVideo>;
963
+ originalLanguage?: string;
964
+ originalTitle?: string;
965
+ overview?: string;
966
+ popularity?: number;
967
+ productionCompanies?: Array<ProductionCompany>;
968
+ productionCountries?: Array<{
969
+ iso_3166_1?: string;
970
+ name?: string;
971
+ }>;
972
+ releaseDate?: string;
973
+ releases?: {
974
+ results?: Array<{
975
+ iso_3166_1?: string;
976
+ rating?: string | null;
977
+ release_dates?: Array<{
978
+ certification?: string;
979
+ iso_639_1?: string | null;
980
+ note?: string | null;
981
+ release_date?: string;
982
+ type?: number;
983
+ }>;
984
+ }>;
985
+ };
986
+ revenue?: number | null;
987
+ runtime?: number;
988
+ spokenLanguages?: Array<SpokenLanguage>;
989
+ status?: string;
990
+ tagline?: string;
991
+ title?: string;
992
+ video?: boolean;
993
+ voteAverage?: number;
994
+ voteCount?: number;
995
+ credits?: {
996
+ cast?: Array<Cast>;
997
+ crew?: Array<Crew>;
998
+ };
999
+ collection?: {
1000
+ id?: number;
1001
+ name?: string;
1002
+ posterPath?: string;
1003
+ backdropPath?: string;
1004
+ };
1005
+ externalIds?: ExternalIds;
1006
+ mediaInfo?: MediaInfoWritable;
1007
+ watchProviders?: Array<WatchProviders>;
1008
+ };
1009
+ export type TvDetailsWritable = {
1010
+ id?: number;
1011
+ backdropPath?: string;
1012
+ posterPath?: string;
1013
+ contentRatings?: {
1014
+ results?: Array<{
1015
+ iso_3166_1?: string;
1016
+ rating?: string;
1017
+ }>;
1018
+ };
1019
+ createdBy?: Array<{
1020
+ id?: number;
1021
+ name?: string;
1022
+ gender?: number;
1023
+ profilePath?: string | null;
1024
+ }>;
1025
+ episodeRunTime?: Array<number>;
1026
+ firstAirDate?: string;
1027
+ genres?: Array<Genre>;
1028
+ homepage?: string;
1029
+ inProduction?: boolean;
1030
+ languages?: Array<string>;
1031
+ lastAirDate?: string;
1032
+ lastEpisodeToAir?: Episode;
1033
+ name?: string;
1034
+ nextEpisodeToAir?: Episode;
1035
+ networks?: Array<ProductionCompany>;
1036
+ numberOfEpisodes?: number;
1037
+ numberOfSeason?: number;
1038
+ originCountry?: Array<string>;
1039
+ originalLanguage?: string;
1040
+ originalName?: string;
1041
+ overview?: string;
1042
+ popularity?: number;
1043
+ productionCompanies?: Array<ProductionCompany>;
1044
+ productionCountries?: Array<{
1045
+ iso_3166_1?: string;
1046
+ name?: string;
1047
+ }>;
1048
+ spokenLanguages?: Array<SpokenLanguage>;
1049
+ seasons?: Array<Season>;
1050
+ status?: string;
1051
+ tagline?: string;
1052
+ type?: string;
1053
+ voteAverage?: number;
1054
+ voteCount?: number;
1055
+ credits?: {
1056
+ cast?: Array<Cast>;
1057
+ crew?: Array<Crew>;
1058
+ };
1059
+ externalIds?: ExternalIds;
1060
+ keywords?: Array<Keyword>;
1061
+ mediaInfo?: MediaInfoWritable;
1062
+ watchProviders?: Array<WatchProviders>;
1063
+ };
1064
+ export type MediaRequestWritable = {
1065
+ media?: MediaInfoWritable;
1066
+ requestedBy?: UserWritable;
1067
+ modifiedBy?: UserWritable | string | null;
1068
+ is4k?: boolean;
1069
+ serverId?: number;
1070
+ profileId?: number;
1071
+ rootFolder?: string;
1072
+ };
1073
+ export type MediaInfoWritable = {
1074
+ /**
1075
+ * Availability of the media. 1 = `UNKNOWN`, 2 = `PENDING`, 3 = `PROCESSING`, 4 = `PARTIALLY_AVAILABLE`, 5 = `AVAILABLE`, 6 = `DELETED`
1076
+ */
1077
+ status?: number;
1078
+ };
1079
+ export type CreditCastWritable = {
1080
+ id?: number;
1081
+ originalLanguage?: string;
1082
+ episodeCount?: number;
1083
+ overview?: string;
1084
+ originCountry?: Array<string>;
1085
+ originalName?: string;
1086
+ voteCount?: number;
1087
+ name?: string;
1088
+ mediaType?: string;
1089
+ popularity?: number;
1090
+ creditId?: string;
1091
+ backdropPath?: string;
1092
+ firstAirDate?: string;
1093
+ voteAverage?: number;
1094
+ genreIds?: Array<number>;
1095
+ posterPath?: string;
1096
+ originalTitle?: string;
1097
+ video?: boolean;
1098
+ title?: string;
1099
+ adult?: boolean;
1100
+ releaseDate?: string;
1101
+ character?: string;
1102
+ mediaInfo?: MediaInfoWritable;
1103
+ };
1104
+ export type CreditCrewWritable = {
1105
+ id?: number;
1106
+ originalLanguage?: string;
1107
+ episodeCount?: number;
1108
+ overview?: string;
1109
+ originCountry?: Array<string>;
1110
+ originalName?: string;
1111
+ voteCount?: number;
1112
+ name?: string;
1113
+ mediaType?: string;
1114
+ popularity?: number;
1115
+ creditId?: string;
1116
+ backdropPath?: string;
1117
+ firstAirDate?: string;
1118
+ voteAverage?: number;
1119
+ genreIds?: Array<number>;
1120
+ posterPath?: string;
1121
+ originalTitle?: string;
1122
+ video?: boolean;
1123
+ title?: string;
1124
+ adult?: boolean;
1125
+ releaseDate?: string;
1126
+ department?: string;
1127
+ job?: string;
1128
+ mediaInfo?: MediaInfoWritable;
1129
+ };
1130
+ export type CollectionWritable = {
1131
+ id?: number;
1132
+ name?: string;
1133
+ overview?: string;
1134
+ posterPath?: string;
1135
+ backdropPath?: string;
1136
+ parts?: Array<MovieResultWritable>;
1137
+ };
1138
+ export type IssueWritable = {
1139
+ id?: number;
1140
+ issueType?: number;
1141
+ media?: MediaInfoWritable;
1142
+ createdBy?: UserWritable;
1143
+ modifiedBy?: UserWritable;
1144
+ comments?: Array<IssueCommentWritable>;
1145
+ };
1146
+ export type IssueCommentWritable = {
1147
+ id?: number;
1148
+ user?: UserWritable;
1149
+ message?: string;
1150
+ };
1151
+ export type GetStatusData = {
1152
+ body?: never;
1153
+ path?: never;
1154
+ query?: never;
1155
+ url: '/status';
1156
+ };
1157
+ export type GetStatusResponses = {
1158
+ /**
1159
+ * Returned status
1160
+ */
1161
+ 200: {
1162
+ version?: string;
1163
+ commitTag?: string;
1164
+ updateAvailable?: boolean;
1165
+ commitsBehind?: number;
1166
+ restartRequired?: boolean;
1167
+ };
1168
+ };
1169
+ export type GetStatusResponse = GetStatusResponses[keyof GetStatusResponses];
1170
+ export type GetStatusAppdataData = {
1171
+ body?: never;
1172
+ path?: never;
1173
+ query?: never;
1174
+ url: '/status/appdata';
1175
+ };
1176
+ export type GetStatusAppdataResponses = {
1177
+ /**
1178
+ * Application data volume status and path
1179
+ */
1180
+ 200: {
1181
+ appData?: boolean;
1182
+ appDataPath?: string;
1183
+ appDataPermissions?: boolean;
1184
+ };
1185
+ };
1186
+ export type GetStatusAppdataResponse = GetStatusAppdataResponses[keyof GetStatusAppdataResponses];
1187
+ export type GetSettingsMainData = {
1188
+ body?: never;
1189
+ path?: never;
1190
+ query?: never;
1191
+ url: '/settings/main';
1192
+ };
1193
+ export type GetSettingsMainResponses = {
1194
+ /**
1195
+ * OK
1196
+ */
1197
+ 200: MainSettings;
1198
+ };
1199
+ export type GetSettingsMainResponse = GetSettingsMainResponses[keyof GetSettingsMainResponses];
1200
+ export type PostSettingsMainData = {
1201
+ body: MainSettingsWritable;
1202
+ path?: never;
1203
+ query?: never;
1204
+ url: '/settings/main';
1205
+ };
1206
+ export type PostSettingsMainResponses = {
1207
+ /**
1208
+ * Values were sucessfully updated
1209
+ */
1210
+ 200: MainSettings;
1211
+ };
1212
+ export type PostSettingsMainResponse = PostSettingsMainResponses[keyof PostSettingsMainResponses];
1213
+ export type GetSettingsNetworkData = {
1214
+ body?: never;
1215
+ path?: never;
1216
+ query?: never;
1217
+ url: '/settings/network';
1218
+ };
1219
+ export type GetSettingsNetworkResponses = {
1220
+ /**
1221
+ * OK
1222
+ */
1223
+ 200: MainSettings;
1224
+ };
1225
+ export type GetSettingsNetworkResponse = GetSettingsNetworkResponses[keyof GetSettingsNetworkResponses];
1226
+ export type PostSettingsNetworkData = {
1227
+ body: NetworkSettings;
1228
+ path?: never;
1229
+ query?: never;
1230
+ url: '/settings/network';
1231
+ };
1232
+ export type PostSettingsNetworkResponses = {
1233
+ /**
1234
+ * Values were sucessfully updated
1235
+ */
1236
+ 200: NetworkSettings;
1237
+ };
1238
+ export type PostSettingsNetworkResponse = PostSettingsNetworkResponses[keyof PostSettingsNetworkResponses];
1239
+ export type PostSettingsMainRegenerateData = {
1240
+ body?: never;
1241
+ path?: never;
1242
+ query?: never;
1243
+ url: '/settings/main/regenerate';
1244
+ };
1245
+ export type PostSettingsMainRegenerateResponses = {
1246
+ /**
1247
+ * OK
1248
+ */
1249
+ 200: MainSettings;
1250
+ };
1251
+ export type PostSettingsMainRegenerateResponse = PostSettingsMainRegenerateResponses[keyof PostSettingsMainRegenerateResponses];
1252
+ export type GetSettingsJellyfinData = {
1253
+ body?: never;
1254
+ path?: never;
1255
+ query?: never;
1256
+ url: '/settings/jellyfin';
1257
+ };
1258
+ export type GetSettingsJellyfinResponses = {
1259
+ /**
1260
+ * OK
1261
+ */
1262
+ 200: JellyfinSettings;
1263
+ };
1264
+ export type GetSettingsJellyfinResponse = GetSettingsJellyfinResponses[keyof GetSettingsJellyfinResponses];
1265
+ export type PostSettingsJellyfinData = {
1266
+ body: JellyfinSettingsWritable;
1267
+ path?: never;
1268
+ query?: never;
1269
+ url: '/settings/jellyfin';
1270
+ };
1271
+ export type PostSettingsJellyfinResponses = {
1272
+ /**
1273
+ * Values were successfully updated
1274
+ */
1275
+ 200: JellyfinSettings;
1276
+ };
1277
+ export type PostSettingsJellyfinResponse = PostSettingsJellyfinResponses[keyof PostSettingsJellyfinResponses];
1278
+ export type GetSettingsJellyfinLibraryData = {
1279
+ body?: never;
1280
+ path?: never;
1281
+ query?: {
1282
+ /**
1283
+ * Syncs the current libraries with the current Jellyfin server
1284
+ */
1285
+ sync?: string | null;
1286
+ /**
1287
+ * Comma separated list of libraries to enable. Any libraries not passed will be disabled!
1288
+ */
1289
+ enable?: string | null;
1290
+ };
1291
+ url: '/settings/jellyfin/library';
1292
+ };
1293
+ export type GetSettingsJellyfinLibraryResponses = {
1294
+ /**
1295
+ * Jellyfin libraries returned
1296
+ */
1297
+ 200: Array<JellyfinLibrary>;
1298
+ };
1299
+ export type GetSettingsJellyfinLibraryResponse = GetSettingsJellyfinLibraryResponses[keyof GetSettingsJellyfinLibraryResponses];
1300
+ export type GetSettingsJellyfinUsersData = {
1301
+ body?: never;
1302
+ path?: never;
1303
+ query?: never;
1304
+ url: '/settings/jellyfin/users';
1305
+ };
1306
+ export type GetSettingsJellyfinUsersResponses = {
1307
+ /**
1308
+ * Jellyfin users returned
1309
+ */
1310
+ 200: Array<{
1311
+ username?: string;
1312
+ id?: string;
1313
+ thumb?: string;
1314
+ email?: string;
1315
+ }>;
1316
+ };
1317
+ export type GetSettingsJellyfinUsersResponse = GetSettingsJellyfinUsersResponses[keyof GetSettingsJellyfinUsersResponses];
1318
+ export type GetSettingsJellyfinSyncData = {
1319
+ body?: never;
1320
+ path?: never;
1321
+ query?: never;
1322
+ url: '/settings/jellyfin/sync';
1323
+ };
1324
+ export type GetSettingsJellyfinSyncResponses = {
1325
+ /**
1326
+ * Status of Jellyfin sync
1327
+ */
1328
+ 200: {
1329
+ running?: boolean;
1330
+ progress?: number;
1331
+ total?: number;
1332
+ currentLibrary?: JellyfinLibrary;
1333
+ libraries?: Array<JellyfinLibrary>;
1334
+ };
1335
+ };
1336
+ export type GetSettingsJellyfinSyncResponse = GetSettingsJellyfinSyncResponses[keyof GetSettingsJellyfinSyncResponses];
1337
+ export type PostSettingsJellyfinSyncData = {
1338
+ body?: {
1339
+ cancel?: boolean;
1340
+ start?: boolean;
1341
+ };
1342
+ path?: never;
1343
+ query?: never;
1344
+ url: '/settings/jellyfin/sync';
1345
+ };
1346
+ export type PostSettingsJellyfinSyncResponses = {
1347
+ /**
1348
+ * Status of Jellyfin sync
1349
+ */
1350
+ 200: {
1351
+ running?: boolean;
1352
+ progress?: number;
1353
+ total?: number;
1354
+ currentLibrary?: JellyfinLibrary;
1355
+ libraries?: Array<JellyfinLibrary>;
1356
+ };
1357
+ };
1358
+ export type PostSettingsJellyfinSyncResponse = PostSettingsJellyfinSyncResponses[keyof PostSettingsJellyfinSyncResponses];
1359
+ export type GetSettingsPlexData = {
1360
+ body?: never;
1361
+ path?: never;
1362
+ query?: never;
1363
+ url: '/settings/plex';
1364
+ };
1365
+ export type GetSettingsPlexResponses = {
1366
+ /**
1367
+ * OK
1368
+ */
1369
+ 200: PlexSettings;
1370
+ };
1371
+ export type GetSettingsPlexResponse = GetSettingsPlexResponses[keyof GetSettingsPlexResponses];
1372
+ export type PostSettingsPlexData = {
1373
+ body: PlexSettingsWritable;
1374
+ path?: never;
1375
+ query?: never;
1376
+ url: '/settings/plex';
1377
+ };
1378
+ export type PostSettingsPlexResponses = {
1379
+ /**
1380
+ * Values were successfully updated
1381
+ */
1382
+ 200: PlexSettings;
1383
+ };
1384
+ export type PostSettingsPlexResponse = PostSettingsPlexResponses[keyof PostSettingsPlexResponses];
1385
+ export type GetSettingsPlexLibraryData = {
1386
+ body?: never;
1387
+ path?: never;
1388
+ query?: {
1389
+ /**
1390
+ * Syncs the current libraries with the current Plex server
1391
+ */
1392
+ sync?: string | null;
1393
+ /**
1394
+ * Comma separated list of libraries to enable. Any libraries not passed will be disabled!
1395
+ */
1396
+ enable?: string | null;
1397
+ };
1398
+ url: '/settings/plex/library';
1399
+ };
1400
+ export type GetSettingsPlexLibraryResponses = {
1401
+ /**
1402
+ * Plex libraries returned
1403
+ */
1404
+ 200: Array<PlexLibrary>;
1405
+ };
1406
+ export type GetSettingsPlexLibraryResponse = GetSettingsPlexLibraryResponses[keyof GetSettingsPlexLibraryResponses];
1407
+ export type GetSettingsPlexSyncData = {
1408
+ body?: never;
1409
+ path?: never;
1410
+ query?: never;
1411
+ url: '/settings/plex/sync';
1412
+ };
1413
+ export type GetSettingsPlexSyncResponses = {
1414
+ /**
1415
+ * Status of Plex scan
1416
+ */
1417
+ 200: {
1418
+ running?: boolean;
1419
+ progress?: number;
1420
+ total?: number;
1421
+ currentLibrary?: PlexLibrary;
1422
+ libraries?: Array<PlexLibrary>;
1423
+ };
1424
+ };
1425
+ export type GetSettingsPlexSyncResponse = GetSettingsPlexSyncResponses[keyof GetSettingsPlexSyncResponses];
1426
+ export type PostSettingsPlexSyncData = {
1427
+ body?: {
1428
+ cancel?: boolean;
1429
+ start?: boolean;
1430
+ };
1431
+ path?: never;
1432
+ query?: never;
1433
+ url: '/settings/plex/sync';
1434
+ };
1435
+ export type PostSettingsPlexSyncResponses = {
1436
+ /**
1437
+ * Status of Plex scan
1438
+ */
1439
+ 200: {
1440
+ running?: boolean;
1441
+ progress?: number;
1442
+ total?: number;
1443
+ currentLibrary?: PlexLibrary;
1444
+ libraries?: Array<PlexLibrary>;
1445
+ };
1446
+ };
1447
+ export type PostSettingsPlexSyncResponse = PostSettingsPlexSyncResponses[keyof PostSettingsPlexSyncResponses];
1448
+ export type GetSettingsPlexDevicesServersData = {
1449
+ body?: never;
1450
+ path?: never;
1451
+ query?: never;
1452
+ url: '/settings/plex/devices/servers';
1453
+ };
1454
+ export type GetSettingsPlexDevicesServersResponses = {
1455
+ /**
1456
+ * OK
1457
+ */
1458
+ 200: Array<PlexDevice>;
1459
+ };
1460
+ export type GetSettingsPlexDevicesServersResponse = GetSettingsPlexDevicesServersResponses[keyof GetSettingsPlexDevicesServersResponses];
1461
+ export type GetSettingsPlexUsersData = {
1462
+ body?: never;
1463
+ path?: never;
1464
+ query?: never;
1465
+ url: '/settings/plex/users';
1466
+ };
1467
+ export type GetSettingsPlexUsersResponses = {
1468
+ /**
1469
+ * Plex users
1470
+ */
1471
+ 200: Array<{
1472
+ id?: string;
1473
+ title?: string;
1474
+ username?: string;
1475
+ email?: string;
1476
+ thumb?: string;
1477
+ }>;
1478
+ };
1479
+ export type GetSettingsPlexUsersResponse = GetSettingsPlexUsersResponses[keyof GetSettingsPlexUsersResponses];
1480
+ export type GetSettingsMetadatasData = {
1481
+ body?: never;
1482
+ path?: never;
1483
+ query?: never;
1484
+ url: '/settings/metadatas';
1485
+ };
1486
+ export type GetSettingsMetadatasResponses = {
1487
+ /**
1488
+ * OK
1489
+ */
1490
+ 200: MetadataSettings;
1491
+ };
1492
+ export type GetSettingsMetadatasResponse = GetSettingsMetadatasResponses[keyof GetSettingsMetadatasResponses];
1493
+ export type PutSettingsMetadatasData = {
1494
+ body: MetadataSettings;
1495
+ path?: never;
1496
+ query?: never;
1497
+ url: '/settings/metadatas';
1498
+ };
1499
+ export type PutSettingsMetadatasResponses = {
1500
+ /**
1501
+ * Values were successfully updated
1502
+ */
1503
+ 200: MetadataSettings;
1504
+ };
1505
+ export type PutSettingsMetadatasResponse = PutSettingsMetadatasResponses[keyof PutSettingsMetadatasResponses];
1506
+ export type PostSettingsMetadatasTestData = {
1507
+ body: {
1508
+ tmdb?: boolean;
1509
+ tvdb?: boolean;
1510
+ };
1511
+ path?: never;
1512
+ query?: never;
1513
+ url: '/settings/metadatas/test';
1514
+ };
1515
+ export type PostSettingsMetadatasTestResponses = {
1516
+ /**
1517
+ * Succesfully connected to TVDB
1518
+ */
1519
+ 200: {
1520
+ message?: string;
1521
+ };
1522
+ };
1523
+ export type PostSettingsMetadatasTestResponse = PostSettingsMetadatasTestResponses[keyof PostSettingsMetadatasTestResponses];
1524
+ export type GetSettingsTautulliData = {
1525
+ body?: never;
1526
+ path?: never;
1527
+ query?: never;
1528
+ url: '/settings/tautulli';
1529
+ };
1530
+ export type GetSettingsTautulliResponses = {
1531
+ /**
1532
+ * OK
1533
+ */
1534
+ 200: TautulliSettings;
1535
+ };
1536
+ export type GetSettingsTautulliResponse = GetSettingsTautulliResponses[keyof GetSettingsTautulliResponses];
1537
+ export type PostSettingsTautulliData = {
1538
+ body: TautulliSettings;
1539
+ path?: never;
1540
+ query?: never;
1541
+ url: '/settings/tautulli';
1542
+ };
1543
+ export type PostSettingsTautulliResponses = {
1544
+ /**
1545
+ * Values were successfully updated
1546
+ */
1547
+ 200: TautulliSettings;
1548
+ };
1549
+ export type PostSettingsTautulliResponse = PostSettingsTautulliResponses[keyof PostSettingsTautulliResponses];
1550
+ export type GetSettingsRadarrData = {
1551
+ body?: never;
1552
+ path?: never;
1553
+ query?: never;
1554
+ url: '/settings/radarr';
1555
+ };
1556
+ export type GetSettingsRadarrResponses = {
1557
+ /**
1558
+ * Values were returned
1559
+ */
1560
+ 200: Array<RadarrSettings>;
1561
+ };
1562
+ export type GetSettingsRadarrResponse = GetSettingsRadarrResponses[keyof GetSettingsRadarrResponses];
1563
+ export type PostSettingsRadarrData = {
1564
+ body: RadarrSettingsWritable;
1565
+ path?: never;
1566
+ query?: never;
1567
+ url: '/settings/radarr';
1568
+ };
1569
+ export type PostSettingsRadarrResponses = {
1570
+ /**
1571
+ * New Radarr instance created
1572
+ */
1573
+ 201: RadarrSettings;
1574
+ };
1575
+ export type PostSettingsRadarrResponse = PostSettingsRadarrResponses[keyof PostSettingsRadarrResponses];
1576
+ export type PostSettingsRadarrTestData = {
1577
+ body: {
1578
+ hostname: string;
1579
+ port: number;
1580
+ apiKey: string;
1581
+ useSsl: boolean;
1582
+ baseUrl?: string;
1583
+ };
1584
+ path?: never;
1585
+ query?: never;
1586
+ url: '/settings/radarr/test';
1587
+ };
1588
+ export type PostSettingsRadarrTestResponses = {
1589
+ /**
1590
+ * Succesfully connected to Radarr instance
1591
+ */
1592
+ 200: {
1593
+ profiles?: Array<ServiceProfile>;
1594
+ };
1595
+ };
1596
+ export type PostSettingsRadarrTestResponse = PostSettingsRadarrTestResponses[keyof PostSettingsRadarrTestResponses];
1597
+ export type DeleteSettingsRadarrByRadarrIdData = {
1598
+ body?: never;
1599
+ path: {
1600
+ /**
1601
+ * Radarr instance ID
1602
+ */
1603
+ radarrId: number;
1604
+ };
1605
+ query?: never;
1606
+ url: '/settings/radarr/{radarrId}';
1607
+ };
1608
+ export type DeleteSettingsRadarrByRadarrIdResponses = {
1609
+ /**
1610
+ * Radarr instance updated
1611
+ */
1612
+ 200: RadarrSettings;
1613
+ };
1614
+ export type DeleteSettingsRadarrByRadarrIdResponse = DeleteSettingsRadarrByRadarrIdResponses[keyof DeleteSettingsRadarrByRadarrIdResponses];
1615
+ export type PutSettingsRadarrByRadarrIdData = {
1616
+ body: RadarrSettingsWritable;
1617
+ path: {
1618
+ /**
1619
+ * Radarr instance ID
1620
+ */
1621
+ radarrId: number;
1622
+ };
1623
+ query?: never;
1624
+ url: '/settings/radarr/{radarrId}';
1625
+ };
1626
+ export type PutSettingsRadarrByRadarrIdResponses = {
1627
+ /**
1628
+ * Radarr instance updated
1629
+ */
1630
+ 200: RadarrSettings;
1631
+ };
1632
+ export type PutSettingsRadarrByRadarrIdResponse = PutSettingsRadarrByRadarrIdResponses[keyof PutSettingsRadarrByRadarrIdResponses];
1633
+ export type GetSettingsRadarrByRadarrIdProfilesData = {
1634
+ body?: never;
1635
+ path: {
1636
+ /**
1637
+ * Radarr instance ID
1638
+ */
1639
+ radarrId: number;
1640
+ };
1641
+ query?: never;
1642
+ url: '/settings/radarr/{radarrId}/profiles';
1643
+ };
1644
+ export type GetSettingsRadarrByRadarrIdProfilesResponses = {
1645
+ /**
1646
+ * Returned list of profiles
1647
+ */
1648
+ 200: Array<ServiceProfile>;
1649
+ };
1650
+ export type GetSettingsRadarrByRadarrIdProfilesResponse = GetSettingsRadarrByRadarrIdProfilesResponses[keyof GetSettingsRadarrByRadarrIdProfilesResponses];
1651
+ export type GetSettingsSonarrData = {
1652
+ body?: never;
1653
+ path?: never;
1654
+ query?: never;
1655
+ url: '/settings/sonarr';
1656
+ };
1657
+ export type GetSettingsSonarrResponses = {
1658
+ /**
1659
+ * Values were returned
1660
+ */
1661
+ 200: Array<SonarrSettings>;
1662
+ };
1663
+ export type GetSettingsSonarrResponse = GetSettingsSonarrResponses[keyof GetSettingsSonarrResponses];
1664
+ export type PostSettingsSonarrData = {
1665
+ body: SonarrSettingsWritable;
1666
+ path?: never;
1667
+ query?: never;
1668
+ url: '/settings/sonarr';
1669
+ };
1670
+ export type PostSettingsSonarrResponses = {
1671
+ /**
1672
+ * New Sonarr instance created
1673
+ */
1674
+ 201: SonarrSettings;
1675
+ };
1676
+ export type PostSettingsSonarrResponse = PostSettingsSonarrResponses[keyof PostSettingsSonarrResponses];
1677
+ export type PostSettingsSonarrTestData = {
1678
+ body: {
1679
+ hostname: string;
1680
+ port: number;
1681
+ apiKey: string;
1682
+ useSsl: boolean;
1683
+ baseUrl?: string;
1684
+ };
1685
+ path?: never;
1686
+ query?: never;
1687
+ url: '/settings/sonarr/test';
1688
+ };
1689
+ export type PostSettingsSonarrTestResponses = {
1690
+ /**
1691
+ * Succesfully connected to Sonarr instance
1692
+ */
1693
+ 200: {
1694
+ profiles?: Array<ServiceProfile>;
1695
+ };
1696
+ };
1697
+ export type PostSettingsSonarrTestResponse = PostSettingsSonarrTestResponses[keyof PostSettingsSonarrTestResponses];
1698
+ export type DeleteSettingsSonarrBySonarrIdData = {
1699
+ body?: never;
1700
+ path: {
1701
+ /**
1702
+ * Sonarr instance ID
1703
+ */
1704
+ sonarrId: number;
1705
+ };
1706
+ query?: never;
1707
+ url: '/settings/sonarr/{sonarrId}';
1708
+ };
1709
+ export type DeleteSettingsSonarrBySonarrIdResponses = {
1710
+ /**
1711
+ * Sonarr instance updated
1712
+ */
1713
+ 200: SonarrSettings;
1714
+ };
1715
+ export type DeleteSettingsSonarrBySonarrIdResponse = DeleteSettingsSonarrBySonarrIdResponses[keyof DeleteSettingsSonarrBySonarrIdResponses];
1716
+ export type PutSettingsSonarrBySonarrIdData = {
1717
+ body: SonarrSettingsWritable;
1718
+ path: {
1719
+ /**
1720
+ * Sonarr instance ID
1721
+ */
1722
+ sonarrId: number;
1723
+ };
1724
+ query?: never;
1725
+ url: '/settings/sonarr/{sonarrId}';
1726
+ };
1727
+ export type PutSettingsSonarrBySonarrIdResponses = {
1728
+ /**
1729
+ * Sonarr instance updated
1730
+ */
1731
+ 200: SonarrSettings;
1732
+ };
1733
+ export type PutSettingsSonarrBySonarrIdResponse = PutSettingsSonarrBySonarrIdResponses[keyof PutSettingsSonarrBySonarrIdResponses];
1734
+ export type GetSettingsPublicData = {
1735
+ body?: never;
1736
+ path?: never;
1737
+ query?: never;
1738
+ url: '/settings/public';
1739
+ };
1740
+ export type GetSettingsPublicResponses = {
1741
+ /**
1742
+ * Public settings returned
1743
+ */
1744
+ 200: PublicSettings;
1745
+ };
1746
+ export type GetSettingsPublicResponse = GetSettingsPublicResponses[keyof GetSettingsPublicResponses];
1747
+ export type PostSettingsInitializeData = {
1748
+ body?: never;
1749
+ path?: never;
1750
+ query?: never;
1751
+ url: '/settings/initialize';
1752
+ };
1753
+ export type PostSettingsInitializeResponses = {
1754
+ /**
1755
+ * Public settings returned
1756
+ */
1757
+ 200: PublicSettings;
1758
+ };
1759
+ export type PostSettingsInitializeResponse = PostSettingsInitializeResponses[keyof PostSettingsInitializeResponses];
1760
+ export type GetSettingsJobsData = {
1761
+ body?: never;
1762
+ path?: never;
1763
+ query?: never;
1764
+ url: '/settings/jobs';
1765
+ };
1766
+ export type GetSettingsJobsResponses = {
1767
+ /**
1768
+ * Scheduled jobs returned
1769
+ */
1770
+ 200: Array<Job>;
1771
+ };
1772
+ export type GetSettingsJobsResponse = GetSettingsJobsResponses[keyof GetSettingsJobsResponses];
1773
+ export type PostSettingsJobsByJobIdRunData = {
1774
+ body?: never;
1775
+ path: {
1776
+ jobId: string;
1777
+ };
1778
+ query?: never;
1779
+ url: '/settings/jobs/{jobId}/run';
1780
+ };
1781
+ export type PostSettingsJobsByJobIdRunResponses = {
1782
+ /**
1783
+ * Invoked job returned
1784
+ */
1785
+ 200: Job;
1786
+ };
1787
+ export type PostSettingsJobsByJobIdRunResponse = PostSettingsJobsByJobIdRunResponses[keyof PostSettingsJobsByJobIdRunResponses];
1788
+ export type PostSettingsJobsByJobIdCancelData = {
1789
+ body?: never;
1790
+ path: {
1791
+ jobId: string;
1792
+ };
1793
+ query?: never;
1794
+ url: '/settings/jobs/{jobId}/cancel';
1795
+ };
1796
+ export type PostSettingsJobsByJobIdCancelResponses = {
1797
+ /**
1798
+ * Canceled job returned
1799
+ */
1800
+ 200: Job;
1801
+ };
1802
+ export type PostSettingsJobsByJobIdCancelResponse = PostSettingsJobsByJobIdCancelResponses[keyof PostSettingsJobsByJobIdCancelResponses];
1803
+ export type PostSettingsJobsByJobIdScheduleData = {
1804
+ body: {
1805
+ schedule?: string;
1806
+ };
1807
+ path: {
1808
+ jobId: string;
1809
+ };
1810
+ query?: never;
1811
+ url: '/settings/jobs/{jobId}/schedule';
1812
+ };
1813
+ export type PostSettingsJobsByJobIdScheduleResponses = {
1814
+ /**
1815
+ * Rescheduled job
1816
+ */
1817
+ 200: Job;
1818
+ };
1819
+ export type PostSettingsJobsByJobIdScheduleResponse = PostSettingsJobsByJobIdScheduleResponses[keyof PostSettingsJobsByJobIdScheduleResponses];
1820
+ export type GetSettingsCacheData = {
1821
+ body?: never;
1822
+ path?: never;
1823
+ query?: never;
1824
+ url: '/settings/cache';
1825
+ };
1826
+ export type GetSettingsCacheResponses = {
1827
+ /**
1828
+ * Caches returned
1829
+ */
1830
+ 200: {
1831
+ imageCache?: {
1832
+ tmdb?: {
1833
+ size?: number;
1834
+ imageCount?: number;
1835
+ };
1836
+ avatar?: {
1837
+ size?: number;
1838
+ imageCount?: number;
1839
+ };
1840
+ };
1841
+ dnsCache?: {
1842
+ stats?: {
1843
+ size?: number;
1844
+ maxSize?: number;
1845
+ hits?: number;
1846
+ misses?: number;
1847
+ failures?: number;
1848
+ ipv4Fallbacks?: number;
1849
+ hitRate?: number;
1850
+ };
1851
+ entries?: Array<unknown>;
1852
+ };
1853
+ apiCaches?: Array<{
1854
+ id?: string;
1855
+ name?: string;
1856
+ stats?: {
1857
+ hits?: number;
1858
+ misses?: number;
1859
+ keys?: number;
1860
+ ksize?: number;
1861
+ vsize?: number;
1862
+ };
1863
+ }>;
1864
+ };
1865
+ };
1866
+ export type GetSettingsCacheResponse = GetSettingsCacheResponses[keyof GetSettingsCacheResponses];
1867
+ export type PostSettingsCacheByCacheIdFlushData = {
1868
+ body?: never;
1869
+ path: {
1870
+ cacheId: string;
1871
+ };
1872
+ query?: never;
1873
+ url: '/settings/cache/{cacheId}/flush';
1874
+ };
1875
+ export type PostSettingsCacheByCacheIdFlushResponses = {
1876
+ /**
1877
+ * Flushed cache
1878
+ */
1879
+ 204: void;
1880
+ };
1881
+ export type PostSettingsCacheByCacheIdFlushResponse = PostSettingsCacheByCacheIdFlushResponses[keyof PostSettingsCacheByCacheIdFlushResponses];
1882
+ export type PostSettingsCacheDnsByDnsEntryFlushData = {
1883
+ body?: never;
1884
+ path: {
1885
+ dnsEntry: string;
1886
+ };
1887
+ query?: never;
1888
+ url: '/settings/cache/dns/{dnsEntry}/flush';
1889
+ };
1890
+ export type PostSettingsCacheDnsByDnsEntryFlushResponses = {
1891
+ /**
1892
+ * Flushed dns cache
1893
+ */
1894
+ 204: void;
1895
+ };
1896
+ export type PostSettingsCacheDnsByDnsEntryFlushResponse = PostSettingsCacheDnsByDnsEntryFlushResponses[keyof PostSettingsCacheDnsByDnsEntryFlushResponses];
1897
+ export type GetSettingsLogsData = {
1898
+ body?: never;
1899
+ path?: never;
1900
+ query?: {
1901
+ take?: number | null;
1902
+ skip?: number | null;
1903
+ filter?: 'debug' | 'info' | 'warn' | 'error';
1904
+ search?: string | null;
1905
+ };
1906
+ url: '/settings/logs';
1907
+ };
1908
+ export type GetSettingsLogsResponses = {
1909
+ /**
1910
+ * Server log returned
1911
+ */
1912
+ 200: Array<{
1913
+ label?: string;
1914
+ level?: string;
1915
+ message?: string;
1916
+ timestamp?: string;
1917
+ }>;
1918
+ };
1919
+ export type GetSettingsLogsResponse = GetSettingsLogsResponses[keyof GetSettingsLogsResponses];
1920
+ export type GetSettingsNotificationsEmailData = {
1921
+ body?: never;
1922
+ path?: never;
1923
+ query?: never;
1924
+ url: '/settings/notifications/email';
1925
+ };
1926
+ export type GetSettingsNotificationsEmailResponses = {
1927
+ /**
1928
+ * Returned email settings
1929
+ */
1930
+ 200: NotificationEmailSettings;
1931
+ };
1932
+ export type GetSettingsNotificationsEmailResponse = GetSettingsNotificationsEmailResponses[keyof GetSettingsNotificationsEmailResponses];
1933
+ export type PostSettingsNotificationsEmailData = {
1934
+ body: NotificationEmailSettings;
1935
+ path?: never;
1936
+ query?: never;
1937
+ url: '/settings/notifications/email';
1938
+ };
1939
+ export type PostSettingsNotificationsEmailResponses = {
1940
+ /**
1941
+ * Values were sucessfully updated
1942
+ */
1943
+ 200: NotificationEmailSettings;
1944
+ };
1945
+ export type PostSettingsNotificationsEmailResponse = PostSettingsNotificationsEmailResponses[keyof PostSettingsNotificationsEmailResponses];
1946
+ export type PostSettingsNotificationsEmailTestData = {
1947
+ body: NotificationEmailSettings;
1948
+ path?: never;
1949
+ query?: never;
1950
+ url: '/settings/notifications/email/test';
1951
+ };
1952
+ export type PostSettingsNotificationsEmailTestResponses = {
1953
+ /**
1954
+ * Test notification attempted
1955
+ */
1956
+ 204: void;
1957
+ };
1958
+ export type PostSettingsNotificationsEmailTestResponse = PostSettingsNotificationsEmailTestResponses[keyof PostSettingsNotificationsEmailTestResponses];
1959
+ export type GetSettingsNotificationsDiscordData = {
1960
+ body?: never;
1961
+ path?: never;
1962
+ query?: never;
1963
+ url: '/settings/notifications/discord';
1964
+ };
1965
+ export type GetSettingsNotificationsDiscordResponses = {
1966
+ /**
1967
+ * Returned Discord settings
1968
+ */
1969
+ 200: DiscordSettings;
1970
+ };
1971
+ export type GetSettingsNotificationsDiscordResponse = GetSettingsNotificationsDiscordResponses[keyof GetSettingsNotificationsDiscordResponses];
1972
+ export type PostSettingsNotificationsDiscordData = {
1973
+ body: DiscordSettings;
1974
+ path?: never;
1975
+ query?: never;
1976
+ url: '/settings/notifications/discord';
1977
+ };
1978
+ export type PostSettingsNotificationsDiscordResponses = {
1979
+ /**
1980
+ * Values were sucessfully updated
1981
+ */
1982
+ 200: DiscordSettings;
1983
+ };
1984
+ export type PostSettingsNotificationsDiscordResponse = PostSettingsNotificationsDiscordResponses[keyof PostSettingsNotificationsDiscordResponses];
1985
+ export type PostSettingsNotificationsDiscordTestData = {
1986
+ body: DiscordSettings;
1987
+ path?: never;
1988
+ query?: never;
1989
+ url: '/settings/notifications/discord/test';
1990
+ };
1991
+ export type PostSettingsNotificationsDiscordTestResponses = {
1992
+ /**
1993
+ * Test notification attempted
1994
+ */
1995
+ 204: void;
1996
+ };
1997
+ export type PostSettingsNotificationsDiscordTestResponse = PostSettingsNotificationsDiscordTestResponses[keyof PostSettingsNotificationsDiscordTestResponses];
1998
+ export type GetSettingsNotificationsPushbulletData = {
1999
+ body?: never;
2000
+ path?: never;
2001
+ query?: never;
2002
+ url: '/settings/notifications/pushbullet';
2003
+ };
2004
+ export type GetSettingsNotificationsPushbulletResponses = {
2005
+ /**
2006
+ * Returned Pushbullet settings
2007
+ */
2008
+ 200: PushbulletSettings;
2009
+ };
2010
+ export type GetSettingsNotificationsPushbulletResponse = GetSettingsNotificationsPushbulletResponses[keyof GetSettingsNotificationsPushbulletResponses];
2011
+ export type PostSettingsNotificationsPushbulletData = {
2012
+ body: PushbulletSettings;
2013
+ path?: never;
2014
+ query?: never;
2015
+ url: '/settings/notifications/pushbullet';
2016
+ };
2017
+ export type PostSettingsNotificationsPushbulletResponses = {
2018
+ /**
2019
+ * Values were sucessfully updated
2020
+ */
2021
+ 200: PushbulletSettings;
2022
+ };
2023
+ export type PostSettingsNotificationsPushbulletResponse = PostSettingsNotificationsPushbulletResponses[keyof PostSettingsNotificationsPushbulletResponses];
2024
+ export type PostSettingsNotificationsPushbulletTestData = {
2025
+ body: PushbulletSettings;
2026
+ path?: never;
2027
+ query?: never;
2028
+ url: '/settings/notifications/pushbullet/test';
2029
+ };
2030
+ export type PostSettingsNotificationsPushbulletTestResponses = {
2031
+ /**
2032
+ * Test notification attempted
2033
+ */
2034
+ 204: void;
2035
+ };
2036
+ export type PostSettingsNotificationsPushbulletTestResponse = PostSettingsNotificationsPushbulletTestResponses[keyof PostSettingsNotificationsPushbulletTestResponses];
2037
+ export type GetSettingsNotificationsPushoverData = {
2038
+ body?: never;
2039
+ path?: never;
2040
+ query?: never;
2041
+ url: '/settings/notifications/pushover';
2042
+ };
2043
+ export type GetSettingsNotificationsPushoverResponses = {
2044
+ /**
2045
+ * Returned Pushover settings
2046
+ */
2047
+ 200: PushoverSettings;
2048
+ };
2049
+ export type GetSettingsNotificationsPushoverResponse = GetSettingsNotificationsPushoverResponses[keyof GetSettingsNotificationsPushoverResponses];
2050
+ export type PostSettingsNotificationsPushoverData = {
2051
+ body: PushoverSettings;
2052
+ path?: never;
2053
+ query?: never;
2054
+ url: '/settings/notifications/pushover';
2055
+ };
2056
+ export type PostSettingsNotificationsPushoverResponses = {
2057
+ /**
2058
+ * Values were sucessfully updated
2059
+ */
2060
+ 200: PushoverSettings;
2061
+ };
2062
+ export type PostSettingsNotificationsPushoverResponse = PostSettingsNotificationsPushoverResponses[keyof PostSettingsNotificationsPushoverResponses];
2063
+ export type PostSettingsNotificationsPushoverTestData = {
2064
+ body: PushoverSettings;
2065
+ path?: never;
2066
+ query?: never;
2067
+ url: '/settings/notifications/pushover/test';
2068
+ };
2069
+ export type PostSettingsNotificationsPushoverTestResponses = {
2070
+ /**
2071
+ * Test notification attempted
2072
+ */
2073
+ 204: void;
2074
+ };
2075
+ export type PostSettingsNotificationsPushoverTestResponse = PostSettingsNotificationsPushoverTestResponses[keyof PostSettingsNotificationsPushoverTestResponses];
2076
+ export type GetSettingsNotificationsPushoverSoundsData = {
2077
+ body?: never;
2078
+ path?: never;
2079
+ query: {
2080
+ token: string;
2081
+ };
2082
+ url: '/settings/notifications/pushover/sounds';
2083
+ };
2084
+ export type GetSettingsNotificationsPushoverSoundsResponses = {
2085
+ /**
2086
+ * Returned Pushover settings
2087
+ */
2088
+ 200: Array<{
2089
+ name?: string;
2090
+ description?: string;
2091
+ }>;
2092
+ };
2093
+ export type GetSettingsNotificationsPushoverSoundsResponse = GetSettingsNotificationsPushoverSoundsResponses[keyof GetSettingsNotificationsPushoverSoundsResponses];
2094
+ export type GetSettingsNotificationsGotifyData = {
2095
+ body?: never;
2096
+ path?: never;
2097
+ query?: never;
2098
+ url: '/settings/notifications/gotify';
2099
+ };
2100
+ export type GetSettingsNotificationsGotifyResponses = {
2101
+ /**
2102
+ * Returned Gotify settings
2103
+ */
2104
+ 200: GotifySettings;
2105
+ };
2106
+ export type GetSettingsNotificationsGotifyResponse = GetSettingsNotificationsGotifyResponses[keyof GetSettingsNotificationsGotifyResponses];
2107
+ export type PostSettingsNotificationsGotifyData = {
2108
+ body: GotifySettings;
2109
+ path?: never;
2110
+ query?: never;
2111
+ url: '/settings/notifications/gotify';
2112
+ };
2113
+ export type PostSettingsNotificationsGotifyResponses = {
2114
+ /**
2115
+ * Values were sucessfully updated
2116
+ */
2117
+ 200: GotifySettings;
2118
+ };
2119
+ export type PostSettingsNotificationsGotifyResponse = PostSettingsNotificationsGotifyResponses[keyof PostSettingsNotificationsGotifyResponses];
2120
+ export type PostSettingsNotificationsGotifyTestData = {
2121
+ body: GotifySettings;
2122
+ path?: never;
2123
+ query?: never;
2124
+ url: '/settings/notifications/gotify/test';
2125
+ };
2126
+ export type PostSettingsNotificationsGotifyTestResponses = {
2127
+ /**
2128
+ * Test notification attempted
2129
+ */
2130
+ 204: void;
2131
+ };
2132
+ export type PostSettingsNotificationsGotifyTestResponse = PostSettingsNotificationsGotifyTestResponses[keyof PostSettingsNotificationsGotifyTestResponses];
2133
+ export type GetSettingsNotificationsNtfyData = {
2134
+ body?: never;
2135
+ path?: never;
2136
+ query?: never;
2137
+ url: '/settings/notifications/ntfy';
2138
+ };
2139
+ export type GetSettingsNotificationsNtfyResponses = {
2140
+ /**
2141
+ * Returned ntfy.sh settings
2142
+ */
2143
+ 200: NtfySettings;
2144
+ };
2145
+ export type GetSettingsNotificationsNtfyResponse = GetSettingsNotificationsNtfyResponses[keyof GetSettingsNotificationsNtfyResponses];
2146
+ export type PostSettingsNotificationsNtfyData = {
2147
+ body: NtfySettings;
2148
+ path?: never;
2149
+ query?: never;
2150
+ url: '/settings/notifications/ntfy';
2151
+ };
2152
+ export type PostSettingsNotificationsNtfyResponses = {
2153
+ /**
2154
+ * Values were sucessfully updated
2155
+ */
2156
+ 200: NtfySettings;
2157
+ };
2158
+ export type PostSettingsNotificationsNtfyResponse = PostSettingsNotificationsNtfyResponses[keyof PostSettingsNotificationsNtfyResponses];
2159
+ export type PostSettingsNotificationsNtfyTestData = {
2160
+ body: NtfySettings;
2161
+ path?: never;
2162
+ query?: never;
2163
+ url: '/settings/notifications/ntfy/test';
2164
+ };
2165
+ export type PostSettingsNotificationsNtfyTestResponses = {
2166
+ /**
2167
+ * Test notification attempted
2168
+ */
2169
+ 204: void;
2170
+ };
2171
+ export type PostSettingsNotificationsNtfyTestResponse = PostSettingsNotificationsNtfyTestResponses[keyof PostSettingsNotificationsNtfyTestResponses];
2172
+ export type GetSettingsNotificationsSlackData = {
2173
+ body?: never;
2174
+ path?: never;
2175
+ query?: never;
2176
+ url: '/settings/notifications/slack';
2177
+ };
2178
+ export type GetSettingsNotificationsSlackResponses = {
2179
+ /**
2180
+ * Returned slack settings
2181
+ */
2182
+ 200: SlackSettings;
2183
+ };
2184
+ export type GetSettingsNotificationsSlackResponse = GetSettingsNotificationsSlackResponses[keyof GetSettingsNotificationsSlackResponses];
2185
+ export type PostSettingsNotificationsSlackData = {
2186
+ body: SlackSettings;
2187
+ path?: never;
2188
+ query?: never;
2189
+ url: '/settings/notifications/slack';
2190
+ };
2191
+ export type PostSettingsNotificationsSlackResponses = {
2192
+ /**
2193
+ * Values were sucessfully updated
2194
+ */
2195
+ 200: SlackSettings;
2196
+ };
2197
+ export type PostSettingsNotificationsSlackResponse = PostSettingsNotificationsSlackResponses[keyof PostSettingsNotificationsSlackResponses];
2198
+ export type PostSettingsNotificationsSlackTestData = {
2199
+ body: SlackSettings;
2200
+ path?: never;
2201
+ query?: never;
2202
+ url: '/settings/notifications/slack/test';
2203
+ };
2204
+ export type PostSettingsNotificationsSlackTestResponses = {
2205
+ /**
2206
+ * Test notification attempted
2207
+ */
2208
+ 204: void;
2209
+ };
2210
+ export type PostSettingsNotificationsSlackTestResponse = PostSettingsNotificationsSlackTestResponses[keyof PostSettingsNotificationsSlackTestResponses];
2211
+ export type GetSettingsNotificationsTelegramData = {
2212
+ body?: never;
2213
+ path?: never;
2214
+ query?: never;
2215
+ url: '/settings/notifications/telegram';
2216
+ };
2217
+ export type GetSettingsNotificationsTelegramResponses = {
2218
+ /**
2219
+ * Returned Telegram settings
2220
+ */
2221
+ 200: TelegramSettings;
2222
+ };
2223
+ export type GetSettingsNotificationsTelegramResponse = GetSettingsNotificationsTelegramResponses[keyof GetSettingsNotificationsTelegramResponses];
2224
+ export type PostSettingsNotificationsTelegramData = {
2225
+ body: TelegramSettings;
2226
+ path?: never;
2227
+ query?: never;
2228
+ url: '/settings/notifications/telegram';
2229
+ };
2230
+ export type PostSettingsNotificationsTelegramResponses = {
2231
+ /**
2232
+ * Values were sucessfully updated
2233
+ */
2234
+ 200: TelegramSettings;
2235
+ };
2236
+ export type PostSettingsNotificationsTelegramResponse = PostSettingsNotificationsTelegramResponses[keyof PostSettingsNotificationsTelegramResponses];
2237
+ export type PostSettingsNotificationsTelegramTestData = {
2238
+ body: TelegramSettings;
2239
+ path?: never;
2240
+ query?: never;
2241
+ url: '/settings/notifications/telegram/test';
2242
+ };
2243
+ export type PostSettingsNotificationsTelegramTestResponses = {
2244
+ /**
2245
+ * Test notification attempted
2246
+ */
2247
+ 204: void;
2248
+ };
2249
+ export type PostSettingsNotificationsTelegramTestResponse = PostSettingsNotificationsTelegramTestResponses[keyof PostSettingsNotificationsTelegramTestResponses];
2250
+ export type GetSettingsNotificationsWebpushData = {
2251
+ body?: never;
2252
+ path?: never;
2253
+ query?: never;
2254
+ url: '/settings/notifications/webpush';
2255
+ };
2256
+ export type GetSettingsNotificationsWebpushResponses = {
2257
+ /**
2258
+ * Returned web push settings
2259
+ */
2260
+ 200: WebPushSettings;
2261
+ };
2262
+ export type GetSettingsNotificationsWebpushResponse = GetSettingsNotificationsWebpushResponses[keyof GetSettingsNotificationsWebpushResponses];
2263
+ export type PostSettingsNotificationsWebpushData = {
2264
+ body: WebPushSettings;
2265
+ path?: never;
2266
+ query?: never;
2267
+ url: '/settings/notifications/webpush';
2268
+ };
2269
+ export type PostSettingsNotificationsWebpushResponses = {
2270
+ /**
2271
+ * Values were sucessfully updated
2272
+ */
2273
+ 200: WebPushSettings;
2274
+ };
2275
+ export type PostSettingsNotificationsWebpushResponse = PostSettingsNotificationsWebpushResponses[keyof PostSettingsNotificationsWebpushResponses];
2276
+ export type PostSettingsNotificationsWebpushTestData = {
2277
+ body: WebPushSettings;
2278
+ path?: never;
2279
+ query?: never;
2280
+ url: '/settings/notifications/webpush/test';
2281
+ };
2282
+ export type PostSettingsNotificationsWebpushTestResponses = {
2283
+ /**
2284
+ * Test notification attempted
2285
+ */
2286
+ 204: void;
2287
+ };
2288
+ export type PostSettingsNotificationsWebpushTestResponse = PostSettingsNotificationsWebpushTestResponses[keyof PostSettingsNotificationsWebpushTestResponses];
2289
+ export type GetSettingsNotificationsWebhookData = {
2290
+ body?: never;
2291
+ path?: never;
2292
+ query?: never;
2293
+ url: '/settings/notifications/webhook';
2294
+ };
2295
+ export type GetSettingsNotificationsWebhookResponses = {
2296
+ /**
2297
+ * Returned webhook settings
2298
+ */
2299
+ 200: WebhookSettings;
2300
+ };
2301
+ export type GetSettingsNotificationsWebhookResponse = GetSettingsNotificationsWebhookResponses[keyof GetSettingsNotificationsWebhookResponses];
2302
+ export type PostSettingsNotificationsWebhookData = {
2303
+ body: WebhookSettings;
2304
+ path?: never;
2305
+ query?: never;
2306
+ url: '/settings/notifications/webhook';
2307
+ };
2308
+ export type PostSettingsNotificationsWebhookResponses = {
2309
+ /**
2310
+ * Values were sucessfully updated
2311
+ */
2312
+ 200: WebhookSettings;
2313
+ };
2314
+ export type PostSettingsNotificationsWebhookResponse = PostSettingsNotificationsWebhookResponses[keyof PostSettingsNotificationsWebhookResponses];
2315
+ export type PostSettingsNotificationsWebhookTestData = {
2316
+ body: WebhookSettings;
2317
+ path?: never;
2318
+ query?: never;
2319
+ url: '/settings/notifications/webhook/test';
2320
+ };
2321
+ export type PostSettingsNotificationsWebhookTestResponses = {
2322
+ /**
2323
+ * Test notification attempted
2324
+ */
2325
+ 204: void;
2326
+ };
2327
+ export type PostSettingsNotificationsWebhookTestResponse = PostSettingsNotificationsWebhookTestResponses[keyof PostSettingsNotificationsWebhookTestResponses];
2328
+ export type GetSettingsDiscoverData = {
2329
+ body?: never;
2330
+ path?: never;
2331
+ query?: never;
2332
+ url: '/settings/discover';
2333
+ };
2334
+ export type GetSettingsDiscoverResponses = {
2335
+ /**
2336
+ * Returned all discovery sliders
2337
+ */
2338
+ 200: Array<DiscoverSlider>;
2339
+ };
2340
+ export type GetSettingsDiscoverResponse = GetSettingsDiscoverResponses[keyof GetSettingsDiscoverResponses];
2341
+ export type PostSettingsDiscoverData = {
2342
+ body: Array<DiscoverSlider>;
2343
+ path?: never;
2344
+ query?: never;
2345
+ url: '/settings/discover';
2346
+ };
2347
+ export type PostSettingsDiscoverResponses = {
2348
+ /**
2349
+ * Returned all newly updated discovery sliders
2350
+ */
2351
+ 200: Array<DiscoverSlider>;
2352
+ };
2353
+ export type PostSettingsDiscoverResponse = PostSettingsDiscoverResponses[keyof PostSettingsDiscoverResponses];
2354
+ export type DeleteSettingsDiscoverBySliderIdData = {
2355
+ body?: never;
2356
+ path: {
2357
+ sliderId: number;
2358
+ };
2359
+ query?: never;
2360
+ url: '/settings/discover/{sliderId}';
2361
+ };
2362
+ export type DeleteSettingsDiscoverBySliderIdResponses = {
2363
+ /**
2364
+ * Slider successfully deleted
2365
+ */
2366
+ 200: DiscoverSlider;
2367
+ };
2368
+ export type DeleteSettingsDiscoverBySliderIdResponse = DeleteSettingsDiscoverBySliderIdResponses[keyof DeleteSettingsDiscoverBySliderIdResponses];
2369
+ export type PutSettingsDiscoverBySliderIdData = {
2370
+ body: {
2371
+ title?: string;
2372
+ type?: number;
2373
+ data?: string;
2374
+ };
2375
+ path: {
2376
+ sliderId: number;
2377
+ };
2378
+ query?: never;
2379
+ url: '/settings/discover/{sliderId}';
2380
+ };
2381
+ export type PutSettingsDiscoverBySliderIdResponses = {
2382
+ /**
2383
+ * Returns newly added discovery slider
2384
+ */
2385
+ 200: DiscoverSlider;
2386
+ };
2387
+ export type PutSettingsDiscoverBySliderIdResponse = PutSettingsDiscoverBySliderIdResponses[keyof PutSettingsDiscoverBySliderIdResponses];
2388
+ export type PostSettingsDiscoverAddData = {
2389
+ body: {
2390
+ title?: string;
2391
+ type?: number;
2392
+ data?: string;
2393
+ };
2394
+ path?: never;
2395
+ query?: never;
2396
+ url: '/settings/discover/add';
2397
+ };
2398
+ export type PostSettingsDiscoverAddResponses = {
2399
+ /**
2400
+ * Returns newly added discovery slider
2401
+ */
2402
+ 200: DiscoverSlider;
2403
+ };
2404
+ export type PostSettingsDiscoverAddResponse = PostSettingsDiscoverAddResponses[keyof PostSettingsDiscoverAddResponses];
2405
+ export type GetSettingsDiscoverResetData = {
2406
+ body?: never;
2407
+ path?: never;
2408
+ query?: never;
2409
+ url: '/settings/discover/reset';
2410
+ };
2411
+ export type GetSettingsDiscoverResetResponses = {
2412
+ /**
2413
+ * All sliders reset to defaults
2414
+ */
2415
+ 204: void;
2416
+ };
2417
+ export type GetSettingsDiscoverResetResponse = GetSettingsDiscoverResetResponses[keyof GetSettingsDiscoverResetResponses];
2418
+ export type GetSettingsAboutData = {
2419
+ body?: never;
2420
+ path?: never;
2421
+ query?: never;
2422
+ url: '/settings/about';
2423
+ };
2424
+ export type GetSettingsAboutResponses = {
2425
+ /**
2426
+ * Returned about settings
2427
+ */
2428
+ 200: {
2429
+ version?: string;
2430
+ totalRequests?: number;
2431
+ totalMediaItems?: number;
2432
+ tz?: string | null;
2433
+ appDataPath?: string;
2434
+ };
2435
+ };
2436
+ export type GetSettingsAboutResponse = GetSettingsAboutResponses[keyof GetSettingsAboutResponses];
2437
+ export type GetAuthMeData = {
2438
+ body?: never;
2439
+ path?: never;
2440
+ query?: never;
2441
+ url: '/auth/me';
2442
+ };
2443
+ export type GetAuthMeResponses = {
2444
+ /**
2445
+ * Object containing the logged-in user in JSON
2446
+ */
2447
+ 200: User;
2448
+ };
2449
+ export type GetAuthMeResponse = GetAuthMeResponses[keyof GetAuthMeResponses];
2450
+ export type PostAuthPlexData = {
2451
+ body: {
2452
+ authToken: string;
2453
+ };
2454
+ path?: never;
2455
+ query?: never;
2456
+ url: '/auth/plex';
2457
+ };
2458
+ export type PostAuthPlexResponses = {
2459
+ /**
2460
+ * OK
2461
+ */
2462
+ 200: User;
2463
+ };
2464
+ export type PostAuthPlexResponse = PostAuthPlexResponses[keyof PostAuthPlexResponses];
2465
+ export type PostAuthJellyfinData = {
2466
+ body: {
2467
+ username: string;
2468
+ password: string;
2469
+ hostname?: string;
2470
+ email?: string;
2471
+ serverType?: number;
2472
+ };
2473
+ path?: never;
2474
+ query?: never;
2475
+ url: '/auth/jellyfin';
2476
+ };
2477
+ export type PostAuthJellyfinResponses = {
2478
+ /**
2479
+ * OK
2480
+ */
2481
+ 200: User;
2482
+ };
2483
+ export type PostAuthJellyfinResponse = PostAuthJellyfinResponses[keyof PostAuthJellyfinResponses];
2484
+ export type PostAuthLocalData = {
2485
+ body: {
2486
+ email: string;
2487
+ password: string;
2488
+ };
2489
+ path?: never;
2490
+ query?: never;
2491
+ url: '/auth/local';
2492
+ };
2493
+ export type PostAuthLocalResponses = {
2494
+ /**
2495
+ * OK
2496
+ */
2497
+ 200: User;
2498
+ };
2499
+ export type PostAuthLocalResponse = PostAuthLocalResponses[keyof PostAuthLocalResponses];
2500
+ export type PostAuthLogoutData = {
2501
+ body?: never;
2502
+ path?: never;
2503
+ query?: never;
2504
+ url: '/auth/logout';
2505
+ };
2506
+ export type PostAuthLogoutResponses = {
2507
+ /**
2508
+ * OK
2509
+ */
2510
+ 200: {
2511
+ status?: string;
2512
+ };
2513
+ };
2514
+ export type PostAuthLogoutResponse = PostAuthLogoutResponses[keyof PostAuthLogoutResponses];
2515
+ export type PostAuthResetPasswordData = {
2516
+ body: {
2517
+ email: string;
2518
+ };
2519
+ path?: never;
2520
+ query?: never;
2521
+ url: '/auth/reset-password';
2522
+ };
2523
+ export type PostAuthResetPasswordResponses = {
2524
+ /**
2525
+ * OK
2526
+ */
2527
+ 200: {
2528
+ status?: string;
2529
+ };
2530
+ };
2531
+ export type PostAuthResetPasswordResponse = PostAuthResetPasswordResponses[keyof PostAuthResetPasswordResponses];
2532
+ export type PostAuthResetPasswordByGuidData = {
2533
+ body: {
2534
+ password: string;
2535
+ };
2536
+ path: {
2537
+ guid: string;
2538
+ };
2539
+ query?: never;
2540
+ url: '/auth/reset-password/{guid}';
2541
+ };
2542
+ export type PostAuthResetPasswordByGuidResponses = {
2543
+ /**
2544
+ * OK
2545
+ */
2546
+ 200: {
2547
+ status?: string;
2548
+ };
2549
+ };
2550
+ export type PostAuthResetPasswordByGuidResponse = PostAuthResetPasswordByGuidResponses[keyof PostAuthResetPasswordByGuidResponses];
2551
+ export type GetUserData = {
2552
+ body?: never;
2553
+ path?: never;
2554
+ query?: {
2555
+ take?: number | null;
2556
+ skip?: number | null;
2557
+ sort?: 'created' | 'updated' | 'requests' | 'displayname';
2558
+ q?: string;
2559
+ includeIds?: string;
2560
+ };
2561
+ url: '/user';
2562
+ };
2563
+ export type GetUserResponses = {
2564
+ /**
2565
+ * A JSON array of all users
2566
+ */
2567
+ 200: {
2568
+ pageInfo?: PageInfo;
2569
+ results?: Array<User>;
2570
+ };
2571
+ };
2572
+ export type GetUserResponse = GetUserResponses[keyof GetUserResponses];
2573
+ export type PostUserData = {
2574
+ body: {
2575
+ email?: string;
2576
+ username?: string;
2577
+ permissions?: number;
2578
+ };
2579
+ path?: never;
2580
+ query?: never;
2581
+ url: '/user';
2582
+ };
2583
+ export type PostUserResponses = {
2584
+ /**
2585
+ * The created user
2586
+ */
2587
+ 201: User;
2588
+ };
2589
+ export type PostUserResponse = PostUserResponses[keyof PostUserResponses];
2590
+ export type PutUserData = {
2591
+ body: {
2592
+ ids?: Array<number>;
2593
+ permissions?: number;
2594
+ };
2595
+ path?: never;
2596
+ query?: never;
2597
+ url: '/user';
2598
+ };
2599
+ export type PutUserResponses = {
2600
+ /**
2601
+ * Successfully updated user details
2602
+ */
2603
+ 200: Array<User>;
2604
+ };
2605
+ export type PutUserResponse = PutUserResponses[keyof PutUserResponses];
2606
+ export type PostUserImportFromPlexData = {
2607
+ body?: {
2608
+ plexIds?: Array<string>;
2609
+ };
2610
+ path?: never;
2611
+ query?: never;
2612
+ url: '/user/import-from-plex';
2613
+ };
2614
+ export type PostUserImportFromPlexResponses = {
2615
+ /**
2616
+ * A list of the newly created users
2617
+ */
2618
+ 201: Array<User>;
2619
+ };
2620
+ export type PostUserImportFromPlexResponse = PostUserImportFromPlexResponses[keyof PostUserImportFromPlexResponses];
2621
+ export type PostUserImportFromJellyfinData = {
2622
+ body?: {
2623
+ jellyfinUserIds?: Array<string>;
2624
+ };
2625
+ path?: never;
2626
+ query?: never;
2627
+ url: '/user/import-from-jellyfin';
2628
+ };
2629
+ export type PostUserImportFromJellyfinResponses = {
2630
+ /**
2631
+ * A list of the newly created users
2632
+ */
2633
+ 201: Array<User>;
2634
+ };
2635
+ export type PostUserImportFromJellyfinResponse = PostUserImportFromJellyfinResponses[keyof PostUserImportFromJellyfinResponses];
2636
+ export type PostUserRegisterPushSubscriptionData = {
2637
+ body: {
2638
+ endpoint: string;
2639
+ auth: string;
2640
+ p256dh: string;
2641
+ userAgent?: string;
2642
+ };
2643
+ path?: never;
2644
+ query?: never;
2645
+ url: '/user/registerPushSubscription';
2646
+ };
2647
+ export type PostUserRegisterPushSubscriptionResponses = {
2648
+ /**
2649
+ * Successfully registered push subscription
2650
+ */
2651
+ 204: void;
2652
+ };
2653
+ export type PostUserRegisterPushSubscriptionResponse = PostUserRegisterPushSubscriptionResponses[keyof PostUserRegisterPushSubscriptionResponses];
2654
+ export type GetUserByUserIdPushSubscriptionsData = {
2655
+ body?: never;
2656
+ path: {
2657
+ userId: number;
2658
+ };
2659
+ query?: never;
2660
+ url: '/user/{userId}/pushSubscriptions';
2661
+ };
2662
+ export type GetUserByUserIdPushSubscriptionsResponses = {
2663
+ /**
2664
+ * User web push notification settings in JSON
2665
+ */
2666
+ 200: {
2667
+ endpoint?: string;
2668
+ p256dh?: string;
2669
+ auth?: string;
2670
+ userAgent?: string;
2671
+ };
2672
+ };
2673
+ export type GetUserByUserIdPushSubscriptionsResponse = GetUserByUserIdPushSubscriptionsResponses[keyof GetUserByUserIdPushSubscriptionsResponses];
2674
+ export type DeleteUserByUserIdPushSubscriptionByEndpointData = {
2675
+ body?: never;
2676
+ path: {
2677
+ userId: number;
2678
+ endpoint: string;
2679
+ };
2680
+ query?: never;
2681
+ url: '/user/{userId}/pushSubscription/{endpoint}';
2682
+ };
2683
+ export type DeleteUserByUserIdPushSubscriptionByEndpointResponses = {
2684
+ /**
2685
+ * Successfully removed user push subscription
2686
+ */
2687
+ 204: void;
2688
+ };
2689
+ export type DeleteUserByUserIdPushSubscriptionByEndpointResponse = DeleteUserByUserIdPushSubscriptionByEndpointResponses[keyof DeleteUserByUserIdPushSubscriptionByEndpointResponses];
2690
+ export type GetUserByUserIdPushSubscriptionByEndpointData = {
2691
+ body?: never;
2692
+ path: {
2693
+ userId: number;
2694
+ endpoint: string;
2695
+ };
2696
+ query?: never;
2697
+ url: '/user/{userId}/pushSubscription/{endpoint}';
2698
+ };
2699
+ export type GetUserByUserIdPushSubscriptionByEndpointResponses = {
2700
+ /**
2701
+ * User web push notification settings in JSON
2702
+ */
2703
+ 200: {
2704
+ endpoint?: string;
2705
+ p256dh?: string;
2706
+ auth?: string;
2707
+ userAgent?: string;
2708
+ };
2709
+ };
2710
+ export type GetUserByUserIdPushSubscriptionByEndpointResponse = GetUserByUserIdPushSubscriptionByEndpointResponses[keyof GetUserByUserIdPushSubscriptionByEndpointResponses];
2711
+ export type DeleteUserByUserIdData = {
2712
+ body?: never;
2713
+ path: {
2714
+ userId: number;
2715
+ };
2716
+ query?: never;
2717
+ url: '/user/{userId}';
2718
+ };
2719
+ export type DeleteUserByUserIdResponses = {
2720
+ /**
2721
+ * User successfully deleted
2722
+ */
2723
+ 200: User;
2724
+ };
2725
+ export type DeleteUserByUserIdResponse = DeleteUserByUserIdResponses[keyof DeleteUserByUserIdResponses];
2726
+ export type GetUserByUserIdData = {
2727
+ body?: never;
2728
+ path: {
2729
+ userId: number;
2730
+ };
2731
+ query?: never;
2732
+ url: '/user/{userId}';
2733
+ };
2734
+ export type GetUserByUserIdResponses = {
2735
+ /**
2736
+ * Users details in JSON
2737
+ */
2738
+ 200: User;
2739
+ };
2740
+ export type GetUserByUserIdResponse = GetUserByUserIdResponses[keyof GetUserByUserIdResponses];
2741
+ export type PutUserByUserIdData = {
2742
+ body: UserWritable;
2743
+ path: {
2744
+ userId: number;
2745
+ };
2746
+ query?: never;
2747
+ url: '/user/{userId}';
2748
+ };
2749
+ export type PutUserByUserIdResponses = {
2750
+ /**
2751
+ * Successfully updated user details
2752
+ */
2753
+ 200: User;
2754
+ };
2755
+ export type PutUserByUserIdResponse = PutUserByUserIdResponses[keyof PutUserByUserIdResponses];
2756
+ export type GetUserByUserIdRequestsData = {
2757
+ body?: never;
2758
+ path: {
2759
+ userId: number;
2760
+ };
2761
+ query?: {
2762
+ take?: number | null;
2763
+ skip?: number | null;
2764
+ };
2765
+ url: '/user/{userId}/requests';
2766
+ };
2767
+ export type GetUserByUserIdRequestsResponses = {
2768
+ /**
2769
+ * User's requests returned
2770
+ */
2771
+ 200: {
2772
+ pageInfo?: PageInfo;
2773
+ results?: Array<MediaRequest>;
2774
+ };
2775
+ };
2776
+ export type GetUserByUserIdRequestsResponse = GetUserByUserIdRequestsResponses[keyof GetUserByUserIdRequestsResponses];
2777
+ export type GetUserByUserIdQuotaData = {
2778
+ body?: never;
2779
+ path: {
2780
+ userId: number;
2781
+ };
2782
+ query?: never;
2783
+ url: '/user/{userId}/quota';
2784
+ };
2785
+ export type GetUserByUserIdQuotaResponses = {
2786
+ /**
2787
+ * User quota details in JSON
2788
+ */
2789
+ 200: {
2790
+ movie?: {
2791
+ days?: number;
2792
+ limit?: number;
2793
+ used?: number;
2794
+ remaining?: number;
2795
+ restricted?: boolean;
2796
+ };
2797
+ tv?: {
2798
+ days?: number;
2799
+ limit?: number;
2800
+ used?: number;
2801
+ remaining?: number;
2802
+ restricted?: boolean;
2803
+ };
2804
+ };
2805
+ };
2806
+ export type GetUserByUserIdQuotaResponse = GetUserByUserIdQuotaResponses[keyof GetUserByUserIdQuotaResponses];
2807
+ export type GetBlocklistData = {
2808
+ body?: never;
2809
+ path?: never;
2810
+ query?: {
2811
+ take?: number | null;
2812
+ skip?: number | null;
2813
+ search?: string | null;
2814
+ filter?: 'all' | 'manual' | 'blocklistedTags';
2815
+ };
2816
+ url: '/blocklist';
2817
+ };
2818
+ export type GetBlocklistResponses = {
2819
+ /**
2820
+ * Blocklisted items returned
2821
+ */
2822
+ 200: {
2823
+ pageInfo?: PageInfo;
2824
+ results?: Array<{
2825
+ user?: User;
2826
+ createdAt?: string;
2827
+ id?: number;
2828
+ mediaType?: string;
2829
+ title?: string;
2830
+ tmdbId?: number;
2831
+ }>;
2832
+ };
2833
+ };
2834
+ export type GetBlocklistResponse = GetBlocklistResponses[keyof GetBlocklistResponses];
2835
+ export type PostBlocklistData = {
2836
+ body: BlocklistWritable;
2837
+ path?: never;
2838
+ query?: never;
2839
+ url: '/blocklist';
2840
+ };
2841
+ export type PostBlocklistErrors = {
2842
+ /**
2843
+ * Item has already been blocklisted
2844
+ */
2845
+ 412: unknown;
2846
+ };
2847
+ export type PostBlocklistResponses = {
2848
+ /**
2849
+ * Item succesfully blocklisted
2850
+ */
2851
+ 201: unknown;
2852
+ };
2853
+ export type DeleteBlocklistByTmdbIdData = {
2854
+ body?: never;
2855
+ path: {
2856
+ /**
2857
+ * tmdbId ID
2858
+ */
2859
+ tmdbId: string;
2860
+ };
2861
+ query?: never;
2862
+ url: '/blocklist/{tmdbId}';
2863
+ };
2864
+ export type DeleteBlocklistByTmdbIdResponses = {
2865
+ /**
2866
+ * Succesfully removed media item
2867
+ */
2868
+ 204: void;
2869
+ };
2870
+ export type DeleteBlocklistByTmdbIdResponse = DeleteBlocklistByTmdbIdResponses[keyof DeleteBlocklistByTmdbIdResponses];
2871
+ export type GetBlocklistByTmdbIdData = {
2872
+ body?: never;
2873
+ path: {
2874
+ /**
2875
+ * tmdbId ID
2876
+ */
2877
+ tmdbId: string;
2878
+ };
2879
+ query?: never;
2880
+ url: '/blocklist/{tmdbId}';
2881
+ };
2882
+ export type GetBlocklistByTmdbIdResponses = {
2883
+ /**
2884
+ * Blocklist details in JSON
2885
+ */
2886
+ 200: unknown;
2887
+ };
2888
+ export type GetBlacklistData = {
2889
+ body?: never;
2890
+ path?: never;
2891
+ query?: {
2892
+ take?: number | null;
2893
+ skip?: number | null;
2894
+ search?: string | null;
2895
+ filter?: 'all' | 'manual' | 'blocklistedTags';
2896
+ };
2897
+ url: '/blacklist';
2898
+ };
2899
+ export type GetBlacklistResponses = {
2900
+ /**
2901
+ * Blocklisted items returned
2902
+ */
2903
+ 200: {
2904
+ pageInfo?: PageInfo;
2905
+ results?: Array<{
2906
+ user?: User;
2907
+ createdAt?: string;
2908
+ id?: number;
2909
+ mediaType?: string;
2910
+ title?: string;
2911
+ tmdbId?: number;
2912
+ }>;
2913
+ };
2914
+ };
2915
+ export type GetBlacklistResponse = GetBlacklistResponses[keyof GetBlacklistResponses];
2916
+ export type PostBlacklistData = {
2917
+ body: BlocklistWritable;
2918
+ path?: never;
2919
+ query?: never;
2920
+ url: '/blacklist';
2921
+ };
2922
+ export type PostBlacklistErrors = {
2923
+ /**
2924
+ * Item has already been blocklisted
2925
+ */
2926
+ 412: unknown;
2927
+ };
2928
+ export type PostBlacklistResponses = {
2929
+ /**
2930
+ * Item succesfully blocklisted
2931
+ */
2932
+ 201: unknown;
2933
+ };
2934
+ export type DeleteBlacklistByTmdbIdData = {
2935
+ body?: never;
2936
+ path: {
2937
+ /**
2938
+ * tmdbId ID
2939
+ */
2940
+ tmdbId: string;
2941
+ };
2942
+ query?: never;
2943
+ url: '/blacklist/{tmdbId}';
2944
+ };
2945
+ export type DeleteBlacklistByTmdbIdResponses = {
2946
+ /**
2947
+ * Succesfully removed media item
2948
+ */
2949
+ 204: void;
2950
+ };
2951
+ export type DeleteBlacklistByTmdbIdResponse = DeleteBlacklistByTmdbIdResponses[keyof DeleteBlacklistByTmdbIdResponses];
2952
+ export type GetBlacklistByTmdbIdData = {
2953
+ body?: never;
2954
+ path: {
2955
+ /**
2956
+ * tmdbId ID
2957
+ */
2958
+ tmdbId: string;
2959
+ };
2960
+ query?: never;
2961
+ url: '/blacklist/{tmdbId}';
2962
+ };
2963
+ export type GetBlacklistByTmdbIdResponses = {
2964
+ /**
2965
+ * Blocklist details in JSON
2966
+ */
2967
+ 200: unknown;
2968
+ };
2969
+ export type PostWatchlistData = {
2970
+ body: WatchlistWritable;
2971
+ path?: never;
2972
+ query?: never;
2973
+ url: '/watchlist';
2974
+ };
2975
+ export type PostWatchlistResponses = {
2976
+ /**
2977
+ * Watchlist data returned
2978
+ */
2979
+ 200: Watchlist;
2980
+ };
2981
+ export type PostWatchlistResponse = PostWatchlistResponses[keyof PostWatchlistResponses];
2982
+ export type DeleteWatchlistByTmdbIdData = {
2983
+ body?: never;
2984
+ path: {
2985
+ /**
2986
+ * tmdbId ID
2987
+ */
2988
+ tmdbId: string;
2989
+ };
2990
+ query?: never;
2991
+ url: '/watchlist/{tmdbId}';
2992
+ };
2993
+ export type DeleteWatchlistByTmdbIdResponses = {
2994
+ /**
2995
+ * Succesfully removed watchlist item
2996
+ */
2997
+ 204: void;
2998
+ };
2999
+ export type DeleteWatchlistByTmdbIdResponse = DeleteWatchlistByTmdbIdResponses[keyof DeleteWatchlistByTmdbIdResponses];
3000
+ export type GetUserByUserIdWatchlistData = {
3001
+ body?: never;
3002
+ path: {
3003
+ userId: number;
3004
+ };
3005
+ query?: {
3006
+ page?: number;
3007
+ };
3008
+ url: '/user/{userId}/watchlist';
3009
+ };
3010
+ export type GetUserByUserIdWatchlistResponses = {
3011
+ /**
3012
+ * Watchlist data returned
3013
+ */
3014
+ 200: {
3015
+ page?: number;
3016
+ totalPages?: number;
3017
+ totalResults?: number;
3018
+ results?: Array<{
3019
+ tmdbId?: number;
3020
+ ratingKey?: string;
3021
+ type?: string;
3022
+ title?: string;
3023
+ }>;
3024
+ };
3025
+ };
3026
+ export type GetUserByUserIdWatchlistResponse = GetUserByUserIdWatchlistResponses[keyof GetUserByUserIdWatchlistResponses];
3027
+ export type GetUserByUserIdSettingsMainData = {
3028
+ body?: never;
3029
+ path: {
3030
+ userId: number;
3031
+ };
3032
+ query?: never;
3033
+ url: '/user/{userId}/settings/main';
3034
+ };
3035
+ export type GetUserByUserIdSettingsMainResponses = {
3036
+ /**
3037
+ * User general settings returned
3038
+ */
3039
+ 200: UserSettings;
3040
+ };
3041
+ export type GetUserByUserIdSettingsMainResponse = GetUserByUserIdSettingsMainResponses[keyof GetUserByUserIdSettingsMainResponses];
3042
+ export type PostUserByUserIdSettingsMainData = {
3043
+ body: UserSettings;
3044
+ path: {
3045
+ userId: number;
3046
+ };
3047
+ query?: never;
3048
+ url: '/user/{userId}/settings/main';
3049
+ };
3050
+ export type PostUserByUserIdSettingsMainResponses = {
3051
+ /**
3052
+ * Updated user general settings returned
3053
+ */
3054
+ 200: UserSettings;
3055
+ };
3056
+ export type PostUserByUserIdSettingsMainResponse = PostUserByUserIdSettingsMainResponses[keyof PostUserByUserIdSettingsMainResponses];
3057
+ export type GetUserByUserIdSettingsPasswordData = {
3058
+ body?: never;
3059
+ path: {
3060
+ userId: number;
3061
+ };
3062
+ query?: never;
3063
+ url: '/user/{userId}/settings/password';
3064
+ };
3065
+ export type GetUserByUserIdSettingsPasswordResponses = {
3066
+ /**
3067
+ * User password page information returned
3068
+ */
3069
+ 200: {
3070
+ hasPassword?: boolean;
3071
+ };
3072
+ };
3073
+ export type GetUserByUserIdSettingsPasswordResponse = GetUserByUserIdSettingsPasswordResponses[keyof GetUserByUserIdSettingsPasswordResponses];
3074
+ export type PostUserByUserIdSettingsPasswordData = {
3075
+ body: {
3076
+ currentPassword?: string | null;
3077
+ newPassword: string;
3078
+ };
3079
+ path: {
3080
+ userId: number;
3081
+ };
3082
+ query?: never;
3083
+ url: '/user/{userId}/settings/password';
3084
+ };
3085
+ export type PostUserByUserIdSettingsPasswordResponses = {
3086
+ /**
3087
+ * User password updated
3088
+ */
3089
+ 204: void;
3090
+ };
3091
+ export type PostUserByUserIdSettingsPasswordResponse = PostUserByUserIdSettingsPasswordResponses[keyof PostUserByUserIdSettingsPasswordResponses];
3092
+ export type DeleteUserByUserIdSettingsLinkedAccountsPlexData = {
3093
+ body?: never;
3094
+ path: {
3095
+ userId: number;
3096
+ };
3097
+ query?: never;
3098
+ url: '/user/{userId}/settings/linked-accounts/plex';
3099
+ };
3100
+ export type DeleteUserByUserIdSettingsLinkedAccountsPlexErrors = {
3101
+ /**
3102
+ * Unlink request invalid
3103
+ */
3104
+ 400: unknown;
3105
+ /**
3106
+ * User does not exist
3107
+ */
3108
+ 404: unknown;
3109
+ };
3110
+ export type DeleteUserByUserIdSettingsLinkedAccountsPlexResponses = {
3111
+ /**
3112
+ * Unlinking account succeeded
3113
+ */
3114
+ 204: void;
3115
+ };
3116
+ export type DeleteUserByUserIdSettingsLinkedAccountsPlexResponse = DeleteUserByUserIdSettingsLinkedAccountsPlexResponses[keyof DeleteUserByUserIdSettingsLinkedAccountsPlexResponses];
3117
+ export type PostUserByUserIdSettingsLinkedAccountsPlexData = {
3118
+ body: {
3119
+ authToken: string;
3120
+ };
3121
+ path: {
3122
+ userId: number;
3123
+ };
3124
+ query?: never;
3125
+ url: '/user/{userId}/settings/linked-accounts/plex';
3126
+ };
3127
+ export type PostUserByUserIdSettingsLinkedAccountsPlexErrors = {
3128
+ /**
3129
+ * Invalid credentials
3130
+ */
3131
+ 403: unknown;
3132
+ /**
3133
+ * Account already linked to a user
3134
+ */
3135
+ 422: unknown;
3136
+ };
3137
+ export type PostUserByUserIdSettingsLinkedAccountsPlexResponses = {
3138
+ /**
3139
+ * Linking account succeeded
3140
+ */
3141
+ 204: void;
3142
+ };
3143
+ export type PostUserByUserIdSettingsLinkedAccountsPlexResponse = PostUserByUserIdSettingsLinkedAccountsPlexResponses[keyof PostUserByUserIdSettingsLinkedAccountsPlexResponses];
3144
+ export type DeleteUserByUserIdSettingsLinkedAccountsJellyfinData = {
3145
+ body?: never;
3146
+ path: {
3147
+ userId: number;
3148
+ };
3149
+ query?: never;
3150
+ url: '/user/{userId}/settings/linked-accounts/jellyfin';
3151
+ };
3152
+ export type DeleteUserByUserIdSettingsLinkedAccountsJellyfinErrors = {
3153
+ /**
3154
+ * Unlink request invalid
3155
+ */
3156
+ 400: unknown;
3157
+ /**
3158
+ * User does not exist
3159
+ */
3160
+ 404: unknown;
3161
+ };
3162
+ export type DeleteUserByUserIdSettingsLinkedAccountsJellyfinResponses = {
3163
+ /**
3164
+ * Unlinking account succeeded
3165
+ */
3166
+ 204: void;
3167
+ };
3168
+ export type DeleteUserByUserIdSettingsLinkedAccountsJellyfinResponse = DeleteUserByUserIdSettingsLinkedAccountsJellyfinResponses[keyof DeleteUserByUserIdSettingsLinkedAccountsJellyfinResponses];
3169
+ export type PostUserByUserIdSettingsLinkedAccountsJellyfinData = {
3170
+ body: {
3171
+ username?: string;
3172
+ password?: string;
3173
+ };
3174
+ path: {
3175
+ userId: number;
3176
+ };
3177
+ query?: never;
3178
+ url: '/user/{userId}/settings/linked-accounts/jellyfin';
3179
+ };
3180
+ export type PostUserByUserIdSettingsLinkedAccountsJellyfinErrors = {
3181
+ /**
3182
+ * Invalid credentials
3183
+ */
3184
+ 403: unknown;
3185
+ /**
3186
+ * Account already linked to a user
3187
+ */
3188
+ 422: unknown;
3189
+ };
3190
+ export type PostUserByUserIdSettingsLinkedAccountsJellyfinResponses = {
3191
+ /**
3192
+ * Linking account succeeded
3193
+ */
3194
+ 204: void;
3195
+ };
3196
+ export type PostUserByUserIdSettingsLinkedAccountsJellyfinResponse = PostUserByUserIdSettingsLinkedAccountsJellyfinResponses[keyof PostUserByUserIdSettingsLinkedAccountsJellyfinResponses];
3197
+ export type GetUserByUserIdSettingsNotificationsData = {
3198
+ body?: never;
3199
+ path: {
3200
+ userId: number;
3201
+ };
3202
+ query?: never;
3203
+ url: '/user/{userId}/settings/notifications';
3204
+ };
3205
+ export type GetUserByUserIdSettingsNotificationsResponses = {
3206
+ /**
3207
+ * User notification settings returned
3208
+ */
3209
+ 200: UserSettingsNotifications;
3210
+ };
3211
+ export type GetUserByUserIdSettingsNotificationsResponse = GetUserByUserIdSettingsNotificationsResponses[keyof GetUserByUserIdSettingsNotificationsResponses];
3212
+ export type PostUserByUserIdSettingsNotificationsData = {
3213
+ body: UserSettingsNotifications;
3214
+ path: {
3215
+ userId: number;
3216
+ };
3217
+ query?: never;
3218
+ url: '/user/{userId}/settings/notifications';
3219
+ };
3220
+ export type PostUserByUserIdSettingsNotificationsResponses = {
3221
+ /**
3222
+ * Updated user notification settings returned
3223
+ */
3224
+ 200: UserSettingsNotifications;
3225
+ };
3226
+ export type PostUserByUserIdSettingsNotificationsResponse = PostUserByUserIdSettingsNotificationsResponses[keyof PostUserByUserIdSettingsNotificationsResponses];
3227
+ export type GetUserByUserIdSettingsPermissionsData = {
3228
+ body?: never;
3229
+ path: {
3230
+ userId: number;
3231
+ };
3232
+ query?: never;
3233
+ url: '/user/{userId}/settings/permissions';
3234
+ };
3235
+ export type GetUserByUserIdSettingsPermissionsResponses = {
3236
+ /**
3237
+ * User permission settings returned
3238
+ */
3239
+ 200: {
3240
+ permissions?: number;
3241
+ };
3242
+ };
3243
+ export type GetUserByUserIdSettingsPermissionsResponse = GetUserByUserIdSettingsPermissionsResponses[keyof GetUserByUserIdSettingsPermissionsResponses];
3244
+ export type PostUserByUserIdSettingsPermissionsData = {
3245
+ body: {
3246
+ permissions: number;
3247
+ };
3248
+ path: {
3249
+ userId: number;
3250
+ };
3251
+ query?: never;
3252
+ url: '/user/{userId}/settings/permissions';
3253
+ };
3254
+ export type PostUserByUserIdSettingsPermissionsResponses = {
3255
+ /**
3256
+ * Updated user general settings returned
3257
+ */
3258
+ 200: {
3259
+ permissions?: number;
3260
+ };
3261
+ };
3262
+ export type PostUserByUserIdSettingsPermissionsResponse = PostUserByUserIdSettingsPermissionsResponses[keyof PostUserByUserIdSettingsPermissionsResponses];
3263
+ export type GetUserByUserIdWatchDataData = {
3264
+ body?: never;
3265
+ path: {
3266
+ userId: number;
3267
+ };
3268
+ query?: never;
3269
+ url: '/user/{userId}/watch_data';
3270
+ };
3271
+ export type GetUserByUserIdWatchDataResponses = {
3272
+ /**
3273
+ * Users
3274
+ */
3275
+ 200: {
3276
+ recentlyWatched?: Array<MediaInfo>;
3277
+ playCount?: number;
3278
+ };
3279
+ };
3280
+ export type GetUserByUserIdWatchDataResponse = GetUserByUserIdWatchDataResponses[keyof GetUserByUserIdWatchDataResponses];
3281
+ export type GetSearchData = {
3282
+ body?: never;
3283
+ path?: never;
3284
+ query: {
3285
+ query: string;
3286
+ page?: number;
3287
+ language?: string;
3288
+ };
3289
+ url: '/search';
3290
+ };
3291
+ export type GetSearchResponses = {
3292
+ /**
3293
+ * Results
3294
+ */
3295
+ 200: {
3296
+ page?: number;
3297
+ totalPages?: number;
3298
+ totalResults?: number;
3299
+ results?: Array<MovieResult | TvResult | PersonResult>;
3300
+ };
3301
+ };
3302
+ export type GetSearchResponse = GetSearchResponses[keyof GetSearchResponses];
3303
+ export type GetSearchKeywordData = {
3304
+ body?: never;
3305
+ path?: never;
3306
+ query: {
3307
+ query: string;
3308
+ page?: number;
3309
+ };
3310
+ url: '/search/keyword';
3311
+ };
3312
+ export type GetSearchKeywordResponses = {
3313
+ /**
3314
+ * Results
3315
+ */
3316
+ 200: {
3317
+ page?: number;
3318
+ totalPages?: number;
3319
+ totalResults?: number;
3320
+ results?: Array<Keyword>;
3321
+ };
3322
+ };
3323
+ export type GetSearchKeywordResponse = GetSearchKeywordResponses[keyof GetSearchKeywordResponses];
3324
+ export type GetSearchCompanyData = {
3325
+ body?: never;
3326
+ path?: never;
3327
+ query: {
3328
+ query: string;
3329
+ page?: number;
3330
+ };
3331
+ url: '/search/company';
3332
+ };
3333
+ export type GetSearchCompanyResponses = {
3334
+ /**
3335
+ * Results
3336
+ */
3337
+ 200: {
3338
+ page?: number;
3339
+ totalPages?: number;
3340
+ totalResults?: number;
3341
+ results?: Array<Company>;
3342
+ };
3343
+ };
3344
+ export type GetSearchCompanyResponse = GetSearchCompanyResponses[keyof GetSearchCompanyResponses];
3345
+ export type GetDiscoverMoviesData = {
3346
+ body?: never;
3347
+ path?: never;
3348
+ query?: {
3349
+ page?: number;
3350
+ language?: string;
3351
+ genre?: string;
3352
+ studio?: number;
3353
+ keywords?: string;
3354
+ /**
3355
+ * Comma-separated list of keyword IDs to exclude from results
3356
+ */
3357
+ excludeKeywords?: string;
3358
+ sortBy?: string;
3359
+ primaryReleaseDateGte?: string;
3360
+ primaryReleaseDateLte?: string;
3361
+ withRuntimeGte?: number;
3362
+ withRuntimeLte?: number;
3363
+ voteAverageGte?: number;
3364
+ voteAverageLte?: number;
3365
+ voteCountGte?: number;
3366
+ voteCountLte?: number;
3367
+ watchRegion?: string;
3368
+ watchProviders?: string;
3369
+ /**
3370
+ * Exact certification to filter by (used when certificationMode is 'exact')
3371
+ */
3372
+ certification?: string;
3373
+ /**
3374
+ * Minimum certification to filter by (used when certificationMode is 'range')
3375
+ */
3376
+ certificationGte?: string;
3377
+ /**
3378
+ * Maximum certification to filter by (used when certificationMode is 'range')
3379
+ */
3380
+ certificationLte?: string;
3381
+ /**
3382
+ * Country code for the certification system (e.g., US, GB, CA)
3383
+ */
3384
+ certificationCountry?: string;
3385
+ /**
3386
+ * Determines whether to use exact certification matching or a certification range (internal use only, not sent to TMDB API)
3387
+ */
3388
+ certificationMode?: 'exact' | 'range';
3389
+ };
3390
+ url: '/discover/movies';
3391
+ };
3392
+ export type GetDiscoverMoviesResponses = {
3393
+ /**
3394
+ * Results
3395
+ */
3396
+ 200: {
3397
+ page?: number;
3398
+ totalPages?: number;
3399
+ totalResults?: number;
3400
+ results?: Array<MovieResult>;
3401
+ };
3402
+ };
3403
+ export type GetDiscoverMoviesResponse = GetDiscoverMoviesResponses[keyof GetDiscoverMoviesResponses];
3404
+ export type GetDiscoverMoviesGenreByGenreIdData = {
3405
+ body?: never;
3406
+ path: {
3407
+ genreId: string;
3408
+ };
3409
+ query?: {
3410
+ page?: number;
3411
+ language?: string;
3412
+ };
3413
+ url: '/discover/movies/genre/{genreId}';
3414
+ };
3415
+ export type GetDiscoverMoviesGenreByGenreIdResponses = {
3416
+ /**
3417
+ * Results
3418
+ */
3419
+ 200: {
3420
+ page?: number;
3421
+ totalPages?: number;
3422
+ totalResults?: number;
3423
+ genre?: Genre;
3424
+ results?: Array<MovieResult>;
3425
+ };
3426
+ };
3427
+ export type GetDiscoverMoviesGenreByGenreIdResponse = GetDiscoverMoviesGenreByGenreIdResponses[keyof GetDiscoverMoviesGenreByGenreIdResponses];
3428
+ export type GetDiscoverMoviesLanguageByLanguageData = {
3429
+ body?: never;
3430
+ path: {
3431
+ language: string;
3432
+ };
3433
+ query?: {
3434
+ page?: number;
3435
+ language?: string;
3436
+ };
3437
+ url: '/discover/movies/language/{language}';
3438
+ };
3439
+ export type GetDiscoverMoviesLanguageByLanguageResponses = {
3440
+ /**
3441
+ * Results
3442
+ */
3443
+ 200: {
3444
+ page?: number;
3445
+ totalPages?: number;
3446
+ totalResults?: number;
3447
+ language?: SpokenLanguage;
3448
+ results?: Array<MovieResult>;
3449
+ };
3450
+ };
3451
+ export type GetDiscoverMoviesLanguageByLanguageResponse = GetDiscoverMoviesLanguageByLanguageResponses[keyof GetDiscoverMoviesLanguageByLanguageResponses];
3452
+ export type GetDiscoverMoviesStudioByStudioIdData = {
3453
+ body?: never;
3454
+ path: {
3455
+ studioId: string;
3456
+ };
3457
+ query?: {
3458
+ page?: number;
3459
+ language?: string;
3460
+ };
3461
+ url: '/discover/movies/studio/{studioId}';
3462
+ };
3463
+ export type GetDiscoverMoviesStudioByStudioIdResponses = {
3464
+ /**
3465
+ * Results
3466
+ */
3467
+ 200: {
3468
+ page?: number;
3469
+ totalPages?: number;
3470
+ totalResults?: number;
3471
+ studio?: ProductionCompany;
3472
+ results?: Array<MovieResult>;
3473
+ };
3474
+ };
3475
+ export type GetDiscoverMoviesStudioByStudioIdResponse = GetDiscoverMoviesStudioByStudioIdResponses[keyof GetDiscoverMoviesStudioByStudioIdResponses];
3476
+ export type GetDiscoverMoviesUpcomingData = {
3477
+ body?: never;
3478
+ path?: never;
3479
+ query?: {
3480
+ page?: number;
3481
+ language?: string;
3482
+ };
3483
+ url: '/discover/movies/upcoming';
3484
+ };
3485
+ export type GetDiscoverMoviesUpcomingResponses = {
3486
+ /**
3487
+ * Results
3488
+ */
3489
+ 200: {
3490
+ page?: number;
3491
+ totalPages?: number;
3492
+ totalResults?: number;
3493
+ results?: Array<MovieResult>;
3494
+ };
3495
+ };
3496
+ export type GetDiscoverMoviesUpcomingResponse = GetDiscoverMoviesUpcomingResponses[keyof GetDiscoverMoviesUpcomingResponses];
3497
+ export type GetDiscoverTvData = {
3498
+ body?: never;
3499
+ path?: never;
3500
+ query?: {
3501
+ page?: number;
3502
+ language?: string;
3503
+ genre?: string;
3504
+ network?: number;
3505
+ keywords?: string;
3506
+ /**
3507
+ * Comma-separated list of keyword IDs to exclude from results
3508
+ */
3509
+ excludeKeywords?: string;
3510
+ sortBy?: string;
3511
+ firstAirDateGte?: string;
3512
+ firstAirDateLte?: string;
3513
+ withRuntimeGte?: number;
3514
+ withRuntimeLte?: number;
3515
+ voteAverageGte?: number;
3516
+ voteAverageLte?: number;
3517
+ voteCountGte?: number;
3518
+ voteCountLte?: number;
3519
+ watchRegion?: string;
3520
+ watchProviders?: string;
3521
+ status?: string;
3522
+ /**
3523
+ * Exact certification to filter by (used when certificationMode is 'exact')
3524
+ */
3525
+ certification?: string;
3526
+ /**
3527
+ * Minimum certification to filter by (used when certificationMode is 'range')
3528
+ */
3529
+ certificationGte?: string;
3530
+ /**
3531
+ * Maximum certification to filter by (used when certificationMode is 'range')
3532
+ */
3533
+ certificationLte?: string;
3534
+ /**
3535
+ * Country code for the certification system (e.g., US, GB, CA)
3536
+ */
3537
+ certificationCountry?: string;
3538
+ /**
3539
+ * Determines whether to use exact certification matching or a certification range (internal use only, not sent to TMDB API)
3540
+ */
3541
+ certificationMode?: 'exact' | 'range';
3542
+ };
3543
+ url: '/discover/tv';
3544
+ };
3545
+ export type GetDiscoverTvResponses = {
3546
+ /**
3547
+ * Results
3548
+ */
3549
+ 200: {
3550
+ page?: number;
3551
+ totalPages?: number;
3552
+ totalResults?: number;
3553
+ results?: Array<TvResult>;
3554
+ };
3555
+ };
3556
+ export type GetDiscoverTvResponse = GetDiscoverTvResponses[keyof GetDiscoverTvResponses];
3557
+ export type GetDiscoverTvLanguageByLanguageData = {
3558
+ body?: never;
3559
+ path: {
3560
+ language: string;
3561
+ };
3562
+ query?: {
3563
+ page?: number;
3564
+ language?: string;
3565
+ };
3566
+ url: '/discover/tv/language/{language}';
3567
+ };
3568
+ export type GetDiscoverTvLanguageByLanguageResponses = {
3569
+ /**
3570
+ * Results
3571
+ */
3572
+ 200: {
3573
+ page?: number;
3574
+ totalPages?: number;
3575
+ totalResults?: number;
3576
+ language?: SpokenLanguage;
3577
+ results?: Array<TvResult>;
3578
+ };
3579
+ };
3580
+ export type GetDiscoverTvLanguageByLanguageResponse = GetDiscoverTvLanguageByLanguageResponses[keyof GetDiscoverTvLanguageByLanguageResponses];
3581
+ export type GetDiscoverTvGenreByGenreIdData = {
3582
+ body?: never;
3583
+ path: {
3584
+ genreId: string;
3585
+ };
3586
+ query?: {
3587
+ page?: number;
3588
+ language?: string;
3589
+ };
3590
+ url: '/discover/tv/genre/{genreId}';
3591
+ };
3592
+ export type GetDiscoverTvGenreByGenreIdResponses = {
3593
+ /**
3594
+ * Results
3595
+ */
3596
+ 200: {
3597
+ page?: number;
3598
+ totalPages?: number;
3599
+ totalResults?: number;
3600
+ genre?: Genre;
3601
+ results?: Array<TvResult>;
3602
+ };
3603
+ };
3604
+ export type GetDiscoverTvGenreByGenreIdResponse = GetDiscoverTvGenreByGenreIdResponses[keyof GetDiscoverTvGenreByGenreIdResponses];
3605
+ export type GetDiscoverTvNetworkByNetworkIdData = {
3606
+ body?: never;
3607
+ path: {
3608
+ networkId: string;
3609
+ };
3610
+ query?: {
3611
+ page?: number;
3612
+ language?: string;
3613
+ };
3614
+ url: '/discover/tv/network/{networkId}';
3615
+ };
3616
+ export type GetDiscoverTvNetworkByNetworkIdResponses = {
3617
+ /**
3618
+ * Results
3619
+ */
3620
+ 200: {
3621
+ page?: number;
3622
+ totalPages?: number;
3623
+ totalResults?: number;
3624
+ network?: Network;
3625
+ results?: Array<TvResult>;
3626
+ };
3627
+ };
3628
+ export type GetDiscoverTvNetworkByNetworkIdResponse = GetDiscoverTvNetworkByNetworkIdResponses[keyof GetDiscoverTvNetworkByNetworkIdResponses];
3629
+ export type GetDiscoverTvUpcomingData = {
3630
+ body?: never;
3631
+ path?: never;
3632
+ query?: {
3633
+ page?: number;
3634
+ language?: string;
3635
+ };
3636
+ url: '/discover/tv/upcoming';
3637
+ };
3638
+ export type GetDiscoverTvUpcomingResponses = {
3639
+ /**
3640
+ * Results
3641
+ */
3642
+ 200: {
3643
+ page?: number;
3644
+ totalPages?: number;
3645
+ totalResults?: number;
3646
+ results?: Array<TvResult>;
3647
+ };
3648
+ };
3649
+ export type GetDiscoverTvUpcomingResponse = GetDiscoverTvUpcomingResponses[keyof GetDiscoverTvUpcomingResponses];
3650
+ export type GetDiscoverTrendingData = {
3651
+ body?: never;
3652
+ path?: never;
3653
+ query?: {
3654
+ page?: number;
3655
+ language?: string;
3656
+ };
3657
+ url: '/discover/trending';
3658
+ };
3659
+ export type GetDiscoverTrendingResponses = {
3660
+ /**
3661
+ * Results
3662
+ */
3663
+ 200: {
3664
+ page?: number;
3665
+ totalPages?: number;
3666
+ totalResults?: number;
3667
+ results?: Array<MovieResult | TvResult | PersonResult>;
3668
+ };
3669
+ };
3670
+ export type GetDiscoverTrendingResponse = GetDiscoverTrendingResponses[keyof GetDiscoverTrendingResponses];
3671
+ export type GetDiscoverKeywordByKeywordIdMoviesData = {
3672
+ body?: never;
3673
+ path: {
3674
+ keywordId: number;
3675
+ };
3676
+ query?: {
3677
+ page?: number;
3678
+ language?: string;
3679
+ };
3680
+ url: '/discover/keyword/{keywordId}/movies';
3681
+ };
3682
+ export type GetDiscoverKeywordByKeywordIdMoviesResponses = {
3683
+ /**
3684
+ * List of movies
3685
+ */
3686
+ 200: {
3687
+ page?: number;
3688
+ totalPages?: number;
3689
+ totalResults?: number;
3690
+ results?: Array<MovieResult>;
3691
+ };
3692
+ };
3693
+ export type GetDiscoverKeywordByKeywordIdMoviesResponse = GetDiscoverKeywordByKeywordIdMoviesResponses[keyof GetDiscoverKeywordByKeywordIdMoviesResponses];
3694
+ export type GetDiscoverGenresliderMovieData = {
3695
+ body?: never;
3696
+ path?: never;
3697
+ query?: {
3698
+ language?: string;
3699
+ };
3700
+ url: '/discover/genreslider/movie';
3701
+ };
3702
+ export type GetDiscoverGenresliderMovieResponses = {
3703
+ /**
3704
+ * Genre slider data returned
3705
+ */
3706
+ 200: Array<{
3707
+ id?: number;
3708
+ backdrops?: Array<string>;
3709
+ name?: string;
3710
+ }>;
3711
+ };
3712
+ export type GetDiscoverGenresliderMovieResponse = GetDiscoverGenresliderMovieResponses[keyof GetDiscoverGenresliderMovieResponses];
3713
+ export type GetDiscoverGenresliderTvData = {
3714
+ body?: never;
3715
+ path?: never;
3716
+ query?: {
3717
+ language?: string;
3718
+ };
3719
+ url: '/discover/genreslider/tv';
3720
+ };
3721
+ export type GetDiscoverGenresliderTvResponses = {
3722
+ /**
3723
+ * Genre slider data returned
3724
+ */
3725
+ 200: Array<{
3726
+ id?: number;
3727
+ backdrops?: Array<string>;
3728
+ name?: string;
3729
+ }>;
3730
+ };
3731
+ export type GetDiscoverGenresliderTvResponse = GetDiscoverGenresliderTvResponses[keyof GetDiscoverGenresliderTvResponses];
3732
+ export type GetDiscoverWatchlistData = {
3733
+ body?: never;
3734
+ path?: never;
3735
+ query?: {
3736
+ page?: number;
3737
+ };
3738
+ url: '/discover/watchlist';
3739
+ };
3740
+ export type GetDiscoverWatchlistResponses = {
3741
+ /**
3742
+ * Watchlist data returned
3743
+ */
3744
+ 200: {
3745
+ page?: number;
3746
+ totalPages?: number;
3747
+ totalResults?: number;
3748
+ results?: Array<{
3749
+ tmdbId?: number;
3750
+ ratingKey?: string;
3751
+ type?: string;
3752
+ title?: string;
3753
+ }>;
3754
+ };
3755
+ };
3756
+ export type GetDiscoverWatchlistResponse = GetDiscoverWatchlistResponses[keyof GetDiscoverWatchlistResponses];
3757
+ export type GetRequestData = {
3758
+ body?: never;
3759
+ path?: never;
3760
+ query?: {
3761
+ take?: number | null;
3762
+ skip?: number | null;
3763
+ filter?: 'all' | 'approved' | 'available' | 'pending' | 'processing' | 'unavailable' | 'failed' | 'deleted' | 'completed';
3764
+ sort?: 'added' | 'modified';
3765
+ sortDirection?: 'asc' | 'desc';
3766
+ requestedBy?: number | null;
3767
+ mediaType?: 'movie' | 'tv' | 'all';
3768
+ };
3769
+ url: '/request';
3770
+ };
3771
+ export type GetRequestResponses = {
3772
+ /**
3773
+ * Requests returned
3774
+ */
3775
+ 200: {
3776
+ pageInfo?: PageInfo;
3777
+ results?: Array<MediaRequest>;
3778
+ };
3779
+ };
3780
+ export type GetRequestResponse = GetRequestResponses[keyof GetRequestResponses];
3781
+ export type PostRequestData = {
3782
+ body: {
3783
+ mediaType: 'movie' | 'tv';
3784
+ mediaId: number;
3785
+ tvdbId?: number;
3786
+ seasons?: Array<number> | 'all';
3787
+ is4k?: boolean;
3788
+ serverId?: number;
3789
+ profileId?: number;
3790
+ rootFolder?: string;
3791
+ languageProfileId?: number;
3792
+ userId?: number | null;
3793
+ };
3794
+ path?: never;
3795
+ query?: never;
3796
+ url: '/request';
3797
+ };
3798
+ export type PostRequestResponses = {
3799
+ /**
3800
+ * Succesfully created the request
3801
+ */
3802
+ 201: MediaRequest;
3803
+ };
3804
+ export type PostRequestResponse = PostRequestResponses[keyof PostRequestResponses];
3805
+ export type GetRequestCountData = {
3806
+ body?: never;
3807
+ path?: never;
3808
+ query?: never;
3809
+ url: '/request/count';
3810
+ };
3811
+ export type GetRequestCountResponses = {
3812
+ /**
3813
+ * Request counts returned
3814
+ */
3815
+ 200: {
3816
+ total?: number;
3817
+ movie?: number;
3818
+ tv?: number;
3819
+ pending?: number;
3820
+ approved?: number;
3821
+ declined?: number;
3822
+ processing?: number;
3823
+ available?: number;
3824
+ completed?: number;
3825
+ };
3826
+ };
3827
+ export type GetRequestCountResponse = GetRequestCountResponses[keyof GetRequestCountResponses];
3828
+ export type DeleteRequestByRequestIdData = {
3829
+ body?: never;
3830
+ path: {
3831
+ /**
3832
+ * Request ID
3833
+ */
3834
+ requestId: string;
3835
+ };
3836
+ query?: never;
3837
+ url: '/request/{requestId}';
3838
+ };
3839
+ export type DeleteRequestByRequestIdResponses = {
3840
+ /**
3841
+ * Succesfully removed request
3842
+ */
3843
+ 204: void;
3844
+ };
3845
+ export type DeleteRequestByRequestIdResponse = DeleteRequestByRequestIdResponses[keyof DeleteRequestByRequestIdResponses];
3846
+ export type GetRequestByRequestIdData = {
3847
+ body?: never;
3848
+ path: {
3849
+ /**
3850
+ * Request ID
3851
+ */
3852
+ requestId: string;
3853
+ };
3854
+ query?: never;
3855
+ url: '/request/{requestId}';
3856
+ };
3857
+ export type GetRequestByRequestIdResponses = {
3858
+ /**
3859
+ * Succesfully returns request
3860
+ */
3861
+ 200: MediaRequest;
3862
+ };
3863
+ export type GetRequestByRequestIdResponse = GetRequestByRequestIdResponses[keyof GetRequestByRequestIdResponses];
3864
+ export type PutRequestByRequestIdData = {
3865
+ body: {
3866
+ mediaType: 'movie' | 'tv';
3867
+ seasons?: Array<number>;
3868
+ is4k?: boolean;
3869
+ serverId?: number;
3870
+ profileId?: number;
3871
+ rootFolder?: string;
3872
+ languageProfileId?: number;
3873
+ userId?: number | null;
3874
+ };
3875
+ path: {
3876
+ /**
3877
+ * Request ID
3878
+ */
3879
+ requestId: string;
3880
+ };
3881
+ query?: never;
3882
+ url: '/request/{requestId}';
3883
+ };
3884
+ export type PutRequestByRequestIdResponses = {
3885
+ /**
3886
+ * Succesfully updated request
3887
+ */
3888
+ 200: MediaRequest;
3889
+ };
3890
+ export type PutRequestByRequestIdResponse = PutRequestByRequestIdResponses[keyof PutRequestByRequestIdResponses];
3891
+ export type PostRequestByRequestIdRetryData = {
3892
+ body?: never;
3893
+ path: {
3894
+ /**
3895
+ * Request ID
3896
+ */
3897
+ requestId: string;
3898
+ };
3899
+ query?: never;
3900
+ url: '/request/{requestId}/retry';
3901
+ };
3902
+ export type PostRequestByRequestIdRetryResponses = {
3903
+ /**
3904
+ * Retry triggered
3905
+ */
3906
+ 200: MediaRequest;
3907
+ };
3908
+ export type PostRequestByRequestIdRetryResponse = PostRequestByRequestIdRetryResponses[keyof PostRequestByRequestIdRetryResponses];
3909
+ export type PostRequestByRequestIdByStatusData = {
3910
+ body?: never;
3911
+ path: {
3912
+ /**
3913
+ * Request ID
3914
+ */
3915
+ requestId: string;
3916
+ /**
3917
+ * New status
3918
+ */
3919
+ status: 'approve' | 'decline';
3920
+ };
3921
+ query?: never;
3922
+ url: '/request/{requestId}/{status}';
3923
+ };
3924
+ export type PostRequestByRequestIdByStatusResponses = {
3925
+ /**
3926
+ * Request status changed
3927
+ */
3928
+ 200: MediaRequest;
3929
+ };
3930
+ export type PostRequestByRequestIdByStatusResponse = PostRequestByRequestIdByStatusResponses[keyof PostRequestByRequestIdByStatusResponses];
3931
+ export type GetMovieByMovieIdData = {
3932
+ body?: never;
3933
+ path: {
3934
+ movieId: number;
3935
+ };
3936
+ query?: {
3937
+ language?: string;
3938
+ };
3939
+ url: '/movie/{movieId}';
3940
+ };
3941
+ export type GetMovieByMovieIdResponses = {
3942
+ /**
3943
+ * Movie details
3944
+ */
3945
+ 200: MovieDetails;
3946
+ };
3947
+ export type GetMovieByMovieIdResponse = GetMovieByMovieIdResponses[keyof GetMovieByMovieIdResponses];
3948
+ export type GetMovieByMovieIdRecommendationsData = {
3949
+ body?: never;
3950
+ path: {
3951
+ movieId: number;
3952
+ };
3953
+ query?: {
3954
+ page?: number;
3955
+ language?: string;
3956
+ };
3957
+ url: '/movie/{movieId}/recommendations';
3958
+ };
3959
+ export type GetMovieByMovieIdRecommendationsResponses = {
3960
+ /**
3961
+ * List of movies
3962
+ */
3963
+ 200: {
3964
+ page?: number;
3965
+ totalPages?: number;
3966
+ totalResults?: number;
3967
+ results?: Array<MovieResult>;
3968
+ };
3969
+ };
3970
+ export type GetMovieByMovieIdRecommendationsResponse = GetMovieByMovieIdRecommendationsResponses[keyof GetMovieByMovieIdRecommendationsResponses];
3971
+ export type GetMovieByMovieIdSimilarData = {
3972
+ body?: never;
3973
+ path: {
3974
+ movieId: number;
3975
+ };
3976
+ query?: {
3977
+ page?: number;
3978
+ language?: string;
3979
+ };
3980
+ url: '/movie/{movieId}/similar';
3981
+ };
3982
+ export type GetMovieByMovieIdSimilarResponses = {
3983
+ /**
3984
+ * List of movies
3985
+ */
3986
+ 200: {
3987
+ page?: number;
3988
+ totalPages?: number;
3989
+ totalResults?: number;
3990
+ results?: Array<MovieResult>;
3991
+ };
3992
+ };
3993
+ export type GetMovieByMovieIdSimilarResponse = GetMovieByMovieIdSimilarResponses[keyof GetMovieByMovieIdSimilarResponses];
3994
+ export type GetMovieByMovieIdRatingsData = {
3995
+ body?: never;
3996
+ path: {
3997
+ movieId: number;
3998
+ };
3999
+ query?: never;
4000
+ url: '/movie/{movieId}/ratings';
4001
+ };
4002
+ export type GetMovieByMovieIdRatingsResponses = {
4003
+ /**
4004
+ * Ratings returned
4005
+ */
4006
+ 200: {
4007
+ title?: string;
4008
+ year?: number;
4009
+ url?: string;
4010
+ criticsScore?: number;
4011
+ criticsRating?: 'Rotten' | 'Fresh' | 'Certified Fresh';
4012
+ audienceScore?: number;
4013
+ audienceRating?: 'Spilled' | 'Upright';
4014
+ };
4015
+ };
4016
+ export type GetMovieByMovieIdRatingsResponse = GetMovieByMovieIdRatingsResponses[keyof GetMovieByMovieIdRatingsResponses];
4017
+ export type GetMovieByMovieIdRatingscombinedData = {
4018
+ body?: never;
4019
+ path: {
4020
+ movieId: number;
4021
+ };
4022
+ query?: never;
4023
+ url: '/movie/{movieId}/ratingscombined';
4024
+ };
4025
+ export type GetMovieByMovieIdRatingscombinedResponses = {
4026
+ /**
4027
+ * Ratings returned
4028
+ */
4029
+ 200: {
4030
+ rt?: {
4031
+ title?: string;
4032
+ year?: number;
4033
+ url?: string;
4034
+ criticsScore?: number;
4035
+ criticsRating?: 'Rotten' | 'Fresh' | 'Certified Fresh';
4036
+ audienceScore?: number;
4037
+ audienceRating?: 'Spilled' | 'Upright';
4038
+ };
4039
+ imdb?: {
4040
+ title?: string;
4041
+ url?: string;
4042
+ criticsScore?: number;
4043
+ };
4044
+ };
4045
+ };
4046
+ export type GetMovieByMovieIdRatingscombinedResponse = GetMovieByMovieIdRatingscombinedResponses[keyof GetMovieByMovieIdRatingscombinedResponses];
4047
+ export type GetTvByTvIdData = {
4048
+ body?: never;
4049
+ path: {
4050
+ tvId: number;
4051
+ };
4052
+ query?: {
4053
+ language?: string;
4054
+ };
4055
+ url: '/tv/{tvId}';
4056
+ };
4057
+ export type GetTvByTvIdResponses = {
4058
+ /**
4059
+ * TV details
4060
+ */
4061
+ 200: TvDetails;
4062
+ };
4063
+ export type GetTvByTvIdResponse = GetTvByTvIdResponses[keyof GetTvByTvIdResponses];
4064
+ export type GetTvByTvIdSeasonBySeasonNumberData = {
4065
+ body?: never;
4066
+ path: {
4067
+ tvId: number;
4068
+ seasonNumber: number;
4069
+ };
4070
+ query?: {
4071
+ language?: string;
4072
+ };
4073
+ url: '/tv/{tvId}/season/{seasonNumber}';
4074
+ };
4075
+ export type GetTvByTvIdSeasonBySeasonNumberResponses = {
4076
+ /**
4077
+ * TV details
4078
+ */
4079
+ 200: Season;
4080
+ };
4081
+ export type GetTvByTvIdSeasonBySeasonNumberResponse = GetTvByTvIdSeasonBySeasonNumberResponses[keyof GetTvByTvIdSeasonBySeasonNumberResponses];
4082
+ export type GetTvByTvIdRecommendationsData = {
4083
+ body?: never;
4084
+ path: {
4085
+ tvId: number;
4086
+ };
4087
+ query?: {
4088
+ page?: number;
4089
+ language?: string;
4090
+ };
4091
+ url: '/tv/{tvId}/recommendations';
4092
+ };
4093
+ export type GetTvByTvIdRecommendationsResponses = {
4094
+ /**
4095
+ * List of TV series
4096
+ */
4097
+ 200: {
4098
+ page?: number;
4099
+ totalPages?: number;
4100
+ totalResults?: number;
4101
+ results?: Array<TvResult>;
4102
+ };
4103
+ };
4104
+ export type GetTvByTvIdRecommendationsResponse = GetTvByTvIdRecommendationsResponses[keyof GetTvByTvIdRecommendationsResponses];
4105
+ export type GetTvByTvIdSimilarData = {
4106
+ body?: never;
4107
+ path: {
4108
+ tvId: number;
4109
+ };
4110
+ query?: {
4111
+ page?: number;
4112
+ language?: string;
4113
+ };
4114
+ url: '/tv/{tvId}/similar';
4115
+ };
4116
+ export type GetTvByTvIdSimilarResponses = {
4117
+ /**
4118
+ * List of TV series
4119
+ */
4120
+ 200: {
4121
+ page?: number;
4122
+ totalPages?: number;
4123
+ totalResults?: number;
4124
+ results?: Array<TvResult>;
4125
+ };
4126
+ };
4127
+ export type GetTvByTvIdSimilarResponse = GetTvByTvIdSimilarResponses[keyof GetTvByTvIdSimilarResponses];
4128
+ export type GetTvByTvIdRatingsData = {
4129
+ body?: never;
4130
+ path: {
4131
+ tvId: number;
4132
+ };
4133
+ query?: never;
4134
+ url: '/tv/{tvId}/ratings';
4135
+ };
4136
+ export type GetTvByTvIdRatingsResponses = {
4137
+ /**
4138
+ * Ratings returned
4139
+ */
4140
+ 200: {
4141
+ title?: string;
4142
+ year?: number;
4143
+ url?: string;
4144
+ criticsScore?: number;
4145
+ criticsRating?: 'Rotten' | 'Fresh';
4146
+ };
4147
+ };
4148
+ export type GetTvByTvIdRatingsResponse = GetTvByTvIdRatingsResponses[keyof GetTvByTvIdRatingsResponses];
4149
+ export type GetPersonByPersonIdData = {
4150
+ body?: never;
4151
+ path: {
4152
+ personId: number;
4153
+ };
4154
+ query?: {
4155
+ language?: string;
4156
+ };
4157
+ url: '/person/{personId}';
4158
+ };
4159
+ export type GetPersonByPersonIdResponses = {
4160
+ /**
4161
+ * Returned person
4162
+ */
4163
+ 200: PersonDetails;
4164
+ };
4165
+ export type GetPersonByPersonIdResponse = GetPersonByPersonIdResponses[keyof GetPersonByPersonIdResponses];
4166
+ export type GetPersonByPersonIdCombinedCreditsData = {
4167
+ body?: never;
4168
+ path: {
4169
+ personId: number;
4170
+ };
4171
+ query?: {
4172
+ language?: string;
4173
+ };
4174
+ url: '/person/{personId}/combined_credits';
4175
+ };
4176
+ export type GetPersonByPersonIdCombinedCreditsResponses = {
4177
+ /**
4178
+ * Returned combined credits
4179
+ */
4180
+ 200: {
4181
+ cast?: Array<CreditCast>;
4182
+ crew?: Array<CreditCrew>;
4183
+ id?: number;
4184
+ };
4185
+ };
4186
+ export type GetPersonByPersonIdCombinedCreditsResponse = GetPersonByPersonIdCombinedCreditsResponses[keyof GetPersonByPersonIdCombinedCreditsResponses];
4187
+ export type GetMediaData = {
4188
+ body?: never;
4189
+ path?: never;
4190
+ query?: {
4191
+ take?: number | null;
4192
+ skip?: number | null;
4193
+ filter?: 'all' | 'available' | 'partial' | 'allavailable' | 'processing' | 'pending' | 'deleted';
4194
+ sort?: 'added' | 'modified' | 'mediaAdded';
4195
+ };
4196
+ url: '/media';
4197
+ };
4198
+ export type GetMediaResponses = {
4199
+ /**
4200
+ * Returned media
4201
+ */
4202
+ 200: {
4203
+ pageInfo?: PageInfo;
4204
+ results?: Array<MediaInfo>;
4205
+ };
4206
+ };
4207
+ export type GetMediaResponse = GetMediaResponses[keyof GetMediaResponses];
4208
+ export type DeleteMediaByMediaIdData = {
4209
+ body?: never;
4210
+ path: {
4211
+ /**
4212
+ * Media ID
4213
+ */
4214
+ mediaId: string;
4215
+ };
4216
+ query?: never;
4217
+ url: '/media/{mediaId}';
4218
+ };
4219
+ export type DeleteMediaByMediaIdResponses = {
4220
+ /**
4221
+ * Succesfully removed media item
4222
+ */
4223
+ 204: void;
4224
+ };
4225
+ export type DeleteMediaByMediaIdResponse = DeleteMediaByMediaIdResponses[keyof DeleteMediaByMediaIdResponses];
4226
+ export type DeleteMediaByMediaIdFileData = {
4227
+ body?: never;
4228
+ path: {
4229
+ /**
4230
+ * Media ID
4231
+ */
4232
+ mediaId: string;
4233
+ };
4234
+ query?: {
4235
+ /**
4236
+ * Whether to remove from 4K service instance (true) or regular service instance (false)
4237
+ */
4238
+ is4k?: boolean;
4239
+ };
4240
+ url: '/media/{mediaId}/file';
4241
+ };
4242
+ export type DeleteMediaByMediaIdFileResponses = {
4243
+ /**
4244
+ * Successfully removed media item
4245
+ */
4246
+ 204: void;
4247
+ };
4248
+ export type DeleteMediaByMediaIdFileResponse = DeleteMediaByMediaIdFileResponses[keyof DeleteMediaByMediaIdFileResponses];
4249
+ export type PostMediaByMediaIdByStatusData = {
4250
+ body?: {
4251
+ /**
4252
+ * When true, updates the 4K status field (status4k).
4253
+ * When false or not provided, updates the regular status field (status).
4254
+ * This applies to all status values (available, partial, processing, pending, unknown).
4255
+ *
4256
+ */
4257
+ is4k?: boolean;
4258
+ };
4259
+ path: {
4260
+ /**
4261
+ * Media ID
4262
+ */
4263
+ mediaId: string;
4264
+ /**
4265
+ * New status
4266
+ */
4267
+ status: 'available' | 'partial' | 'processing' | 'pending' | 'unknown' | 'deleted';
4268
+ };
4269
+ query?: never;
4270
+ url: '/media/{mediaId}/{status}';
4271
+ };
4272
+ export type PostMediaByMediaIdByStatusResponses = {
4273
+ /**
4274
+ * Returned media
4275
+ */
4276
+ 200: MediaInfo;
4277
+ };
4278
+ export type PostMediaByMediaIdByStatusResponse = PostMediaByMediaIdByStatusResponses[keyof PostMediaByMediaIdByStatusResponses];
4279
+ export type GetMediaByMediaIdWatchDataData = {
4280
+ body?: never;
4281
+ path: {
4282
+ /**
4283
+ * Media ID
4284
+ */
4285
+ mediaId: string;
4286
+ };
4287
+ query?: never;
4288
+ url: '/media/{mediaId}/watch_data';
4289
+ };
4290
+ export type GetMediaByMediaIdWatchDataResponses = {
4291
+ /**
4292
+ * Users
4293
+ */
4294
+ 200: {
4295
+ data?: {
4296
+ playCount7Days?: number;
4297
+ playCount30Days?: number;
4298
+ playCount?: number;
4299
+ users?: Array<User>;
4300
+ };
4301
+ data4k?: {
4302
+ playCount7Days?: number;
4303
+ playCount30Days?: number;
4304
+ playCount?: number;
4305
+ users?: Array<User>;
4306
+ };
4307
+ };
4308
+ };
4309
+ export type GetMediaByMediaIdWatchDataResponse = GetMediaByMediaIdWatchDataResponses[keyof GetMediaByMediaIdWatchDataResponses];
4310
+ export type GetCollectionByCollectionIdData = {
4311
+ body?: never;
4312
+ path: {
4313
+ collectionId: number;
4314
+ };
4315
+ query?: {
4316
+ language?: string;
4317
+ };
4318
+ url: '/collection/{collectionId}';
4319
+ };
4320
+ export type GetCollectionByCollectionIdResponses = {
4321
+ /**
4322
+ * Collection details
4323
+ */
4324
+ 200: Collection;
4325
+ };
4326
+ export type GetCollectionByCollectionIdResponse = GetCollectionByCollectionIdResponses[keyof GetCollectionByCollectionIdResponses];
4327
+ export type GetServiceRadarrData = {
4328
+ body?: never;
4329
+ path?: never;
4330
+ query?: never;
4331
+ url: '/service/radarr';
4332
+ };
4333
+ export type GetServiceRadarrResponses = {
4334
+ /**
4335
+ * Request successful
4336
+ */
4337
+ 200: Array<RadarrSettings>;
4338
+ };
4339
+ export type GetServiceRadarrResponse = GetServiceRadarrResponses[keyof GetServiceRadarrResponses];
4340
+ export type GetServiceRadarrByRadarrIdData = {
4341
+ body?: never;
4342
+ path: {
4343
+ radarrId: number;
4344
+ };
4345
+ query?: never;
4346
+ url: '/service/radarr/{radarrId}';
4347
+ };
4348
+ export type GetServiceRadarrByRadarrIdResponses = {
4349
+ /**
4350
+ * Request successful
4351
+ */
4352
+ 200: {
4353
+ server?: RadarrSettings;
4354
+ profiles?: ServiceProfile;
4355
+ };
4356
+ };
4357
+ export type GetServiceRadarrByRadarrIdResponse = GetServiceRadarrByRadarrIdResponses[keyof GetServiceRadarrByRadarrIdResponses];
4358
+ export type GetServiceSonarrData = {
4359
+ body?: never;
4360
+ path?: never;
4361
+ query?: never;
4362
+ url: '/service/sonarr';
4363
+ };
4364
+ export type GetServiceSonarrResponses = {
4365
+ /**
4366
+ * Request successful
4367
+ */
4368
+ 200: Array<SonarrSettings>;
4369
+ };
4370
+ export type GetServiceSonarrResponse = GetServiceSonarrResponses[keyof GetServiceSonarrResponses];
4371
+ export type GetServiceSonarrBySonarrIdData = {
4372
+ body?: never;
4373
+ path: {
4374
+ sonarrId: number;
4375
+ };
4376
+ query?: never;
4377
+ url: '/service/sonarr/{sonarrId}';
4378
+ };
4379
+ export type GetServiceSonarrBySonarrIdResponses = {
4380
+ /**
4381
+ * Request successful
4382
+ */
4383
+ 200: {
4384
+ server?: SonarrSettings;
4385
+ profiles?: ServiceProfile;
4386
+ };
4387
+ };
4388
+ export type GetServiceSonarrBySonarrIdResponse = GetServiceSonarrBySonarrIdResponses[keyof GetServiceSonarrBySonarrIdResponses];
4389
+ export type GetServiceSonarrLookupByTmdbIdData = {
4390
+ body?: never;
4391
+ path: {
4392
+ tmdbId: number;
4393
+ };
4394
+ query?: never;
4395
+ url: '/service/sonarr/lookup/{tmdbId}';
4396
+ };
4397
+ export type GetServiceSonarrLookupByTmdbIdResponses = {
4398
+ /**
4399
+ * Request successful
4400
+ */
4401
+ 200: Array<SonarrSeries>;
4402
+ };
4403
+ export type GetServiceSonarrLookupByTmdbIdResponse = GetServiceSonarrLookupByTmdbIdResponses[keyof GetServiceSonarrLookupByTmdbIdResponses];
4404
+ export type GetRegionsData = {
4405
+ body?: never;
4406
+ path?: never;
4407
+ query?: never;
4408
+ url: '/regions';
4409
+ };
4410
+ export type GetRegionsResponses = {
4411
+ /**
4412
+ * Results
4413
+ */
4414
+ 200: Array<{
4415
+ iso_3166_1?: string;
4416
+ english_name?: string;
4417
+ }>;
4418
+ };
4419
+ export type GetRegionsResponse = GetRegionsResponses[keyof GetRegionsResponses];
4420
+ export type GetLanguagesData = {
4421
+ body?: never;
4422
+ path?: never;
4423
+ query?: never;
4424
+ url: '/languages';
4425
+ };
4426
+ export type GetLanguagesResponses = {
4427
+ /**
4428
+ * Results
4429
+ */
4430
+ 200: Array<{
4431
+ iso_639_1?: string;
4432
+ english_name?: string;
4433
+ name?: string;
4434
+ }>;
4435
+ };
4436
+ export type GetLanguagesResponse = GetLanguagesResponses[keyof GetLanguagesResponses];
4437
+ export type GetStudioByStudioIdData = {
4438
+ body?: never;
4439
+ path: {
4440
+ studioId: number;
4441
+ };
4442
+ query?: never;
4443
+ url: '/studio/{studioId}';
4444
+ };
4445
+ export type GetStudioByStudioIdResponses = {
4446
+ /**
4447
+ * Movie studio details
4448
+ */
4449
+ 200: ProductionCompany;
4450
+ };
4451
+ export type GetStudioByStudioIdResponse = GetStudioByStudioIdResponses[keyof GetStudioByStudioIdResponses];
4452
+ export type GetNetworkByNetworkIdData = {
4453
+ body?: never;
4454
+ path: {
4455
+ networkId: number;
4456
+ };
4457
+ query?: never;
4458
+ url: '/network/{networkId}';
4459
+ };
4460
+ export type GetNetworkByNetworkIdResponses = {
4461
+ /**
4462
+ * TV network details
4463
+ */
4464
+ 200: ProductionCompany;
4465
+ };
4466
+ export type GetNetworkByNetworkIdResponse = GetNetworkByNetworkIdResponses[keyof GetNetworkByNetworkIdResponses];
4467
+ export type GetGenresMovieData = {
4468
+ body?: never;
4469
+ path?: never;
4470
+ query?: {
4471
+ language?: string;
4472
+ };
4473
+ url: '/genres/movie';
4474
+ };
4475
+ export type GetGenresMovieResponses = {
4476
+ /**
4477
+ * Results
4478
+ */
4479
+ 200: Array<{
4480
+ id?: number;
4481
+ name?: string;
4482
+ }>;
4483
+ };
4484
+ export type GetGenresMovieResponse = GetGenresMovieResponses[keyof GetGenresMovieResponses];
4485
+ export type GetGenresTvData = {
4486
+ body?: never;
4487
+ path?: never;
4488
+ query?: {
4489
+ language?: string;
4490
+ };
4491
+ url: '/genres/tv';
4492
+ };
4493
+ export type GetGenresTvResponses = {
4494
+ /**
4495
+ * Results
4496
+ */
4497
+ 200: Array<{
4498
+ id?: number;
4499
+ name?: string;
4500
+ }>;
4501
+ };
4502
+ export type GetGenresTvResponse = GetGenresTvResponses[keyof GetGenresTvResponses];
4503
+ export type GetBackdropsData = {
4504
+ body?: never;
4505
+ path?: never;
4506
+ query?: never;
4507
+ url: '/backdrops';
4508
+ };
4509
+ export type GetBackdropsResponses = {
4510
+ /**
4511
+ * Results
4512
+ */
4513
+ 200: Array<string>;
4514
+ };
4515
+ export type GetBackdropsResponse = GetBackdropsResponses[keyof GetBackdropsResponses];
4516
+ export type GetIssueData = {
4517
+ body?: never;
4518
+ path?: never;
4519
+ query?: {
4520
+ take?: number | null;
4521
+ skip?: number | null;
4522
+ sort?: 'added' | 'modified';
4523
+ filter?: 'all' | 'open' | 'resolved';
4524
+ requestedBy?: number | null;
4525
+ };
4526
+ url: '/issue';
4527
+ };
4528
+ export type GetIssueResponses = {
4529
+ /**
4530
+ * Issues returned
4531
+ */
4532
+ 200: {
4533
+ pageInfo?: PageInfo;
4534
+ results?: Array<Issue>;
4535
+ };
4536
+ };
4537
+ export type GetIssueResponse = GetIssueResponses[keyof GetIssueResponses];
4538
+ export type PostIssueData = {
4539
+ body: {
4540
+ issueType?: number;
4541
+ message?: string;
4542
+ mediaId?: number;
4543
+ };
4544
+ path?: never;
4545
+ query?: never;
4546
+ url: '/issue';
4547
+ };
4548
+ export type PostIssueResponses = {
4549
+ /**
4550
+ * Succesfully created the issue
4551
+ */
4552
+ 201: Issue;
4553
+ };
4554
+ export type PostIssueResponse = PostIssueResponses[keyof PostIssueResponses];
4555
+ export type GetIssueCountData = {
4556
+ body?: never;
4557
+ path?: never;
4558
+ query?: never;
4559
+ url: '/issue/count';
4560
+ };
4561
+ export type GetIssueCountResponses = {
4562
+ /**
4563
+ * Issue counts returned
4564
+ */
4565
+ 200: {
4566
+ total?: number;
4567
+ video?: number;
4568
+ audio?: number;
4569
+ subtitles?: number;
4570
+ others?: number;
4571
+ open?: number;
4572
+ closed?: number;
4573
+ };
4574
+ };
4575
+ export type GetIssueCountResponse = GetIssueCountResponses[keyof GetIssueCountResponses];
4576
+ export type DeleteIssueByIssueIdData = {
4577
+ body?: never;
4578
+ path: {
4579
+ /**
4580
+ * Issue ID
4581
+ */
4582
+ issueId: string;
4583
+ };
4584
+ query?: never;
4585
+ url: '/issue/{issueId}';
4586
+ };
4587
+ export type DeleteIssueByIssueIdResponses = {
4588
+ /**
4589
+ * Succesfully removed issue
4590
+ */
4591
+ 204: void;
4592
+ };
4593
+ export type DeleteIssueByIssueIdResponse = DeleteIssueByIssueIdResponses[keyof DeleteIssueByIssueIdResponses];
4594
+ export type GetIssueByIssueIdData = {
4595
+ body?: never;
4596
+ path: {
4597
+ issueId: number;
4598
+ };
4599
+ query?: never;
4600
+ url: '/issue/{issueId}';
4601
+ };
4602
+ export type GetIssueByIssueIdResponses = {
4603
+ /**
4604
+ * Issues returned
4605
+ */
4606
+ 200: Issue;
4607
+ };
4608
+ export type GetIssueByIssueIdResponse = GetIssueByIssueIdResponses[keyof GetIssueByIssueIdResponses];
4609
+ export type PostIssueByIssueIdCommentData = {
4610
+ body: {
4611
+ message: string;
4612
+ };
4613
+ path: {
4614
+ issueId: number;
4615
+ };
4616
+ query?: never;
4617
+ url: '/issue/{issueId}/comment';
4618
+ };
4619
+ export type PostIssueByIssueIdCommentResponses = {
4620
+ /**
4621
+ * Issue returned with new comment
4622
+ */
4623
+ 200: Issue;
4624
+ };
4625
+ export type PostIssueByIssueIdCommentResponse = PostIssueByIssueIdCommentResponses[keyof PostIssueByIssueIdCommentResponses];
4626
+ export type DeleteIssueCommentByCommentIdData = {
4627
+ body?: never;
4628
+ path: {
4629
+ /**
4630
+ * Issue Comment ID
4631
+ */
4632
+ commentId: string;
4633
+ };
4634
+ query?: never;
4635
+ url: '/issueComment/{commentId}';
4636
+ };
4637
+ export type DeleteIssueCommentByCommentIdResponses = {
4638
+ /**
4639
+ * Succesfully removed issue comment
4640
+ */
4641
+ 204: void;
4642
+ };
4643
+ export type DeleteIssueCommentByCommentIdResponse = DeleteIssueCommentByCommentIdResponses[keyof DeleteIssueCommentByCommentIdResponses];
4644
+ export type GetIssueCommentByCommentIdData = {
4645
+ body?: never;
4646
+ path: {
4647
+ commentId: string;
4648
+ };
4649
+ query?: never;
4650
+ url: '/issueComment/{commentId}';
4651
+ };
4652
+ export type GetIssueCommentByCommentIdResponses = {
4653
+ /**
4654
+ * Comment returned
4655
+ */
4656
+ 200: IssueComment;
4657
+ };
4658
+ export type GetIssueCommentByCommentIdResponse = GetIssueCommentByCommentIdResponses[keyof GetIssueCommentByCommentIdResponses];
4659
+ export type PutIssueCommentByCommentIdData = {
4660
+ body: {
4661
+ message?: string;
4662
+ };
4663
+ path: {
4664
+ commentId: string;
4665
+ };
4666
+ query?: never;
4667
+ url: '/issueComment/{commentId}';
4668
+ };
4669
+ export type PutIssueCommentByCommentIdResponses = {
4670
+ /**
4671
+ * Comment updated
4672
+ */
4673
+ 200: IssueComment;
4674
+ };
4675
+ export type PutIssueCommentByCommentIdResponse = PutIssueCommentByCommentIdResponses[keyof PutIssueCommentByCommentIdResponses];
4676
+ export type PostIssueByIssueIdByStatusData = {
4677
+ body?: never;
4678
+ path: {
4679
+ /**
4680
+ * Issue ID
4681
+ */
4682
+ issueId: string;
4683
+ /**
4684
+ * New status
4685
+ */
4686
+ status: 'open' | 'resolved';
4687
+ };
4688
+ query?: never;
4689
+ url: '/issue/{issueId}/{status}';
4690
+ };
4691
+ export type PostIssueByIssueIdByStatusResponses = {
4692
+ /**
4693
+ * Issue status changed
4694
+ */
4695
+ 200: Issue;
4696
+ };
4697
+ export type PostIssueByIssueIdByStatusResponse = PostIssueByIssueIdByStatusResponses[keyof PostIssueByIssueIdByStatusResponses];
4698
+ export type GetKeywordByKeywordIdData = {
4699
+ body?: never;
4700
+ path: {
4701
+ keywordId: number;
4702
+ };
4703
+ query?: never;
4704
+ url: '/keyword/{keywordId}';
4705
+ };
4706
+ export type GetKeywordByKeywordIdErrors = {
4707
+ /**
4708
+ * Internal server error
4709
+ */
4710
+ 500: {
4711
+ message?: string;
4712
+ };
4713
+ };
4714
+ export type GetKeywordByKeywordIdError = GetKeywordByKeywordIdErrors[keyof GetKeywordByKeywordIdErrors];
4715
+ export type GetKeywordByKeywordIdResponses = {
4716
+ /**
4717
+ * Keyword returned (null if not found)
4718
+ */
4719
+ 200: Keyword;
4720
+ };
4721
+ export type GetKeywordByKeywordIdResponse = GetKeywordByKeywordIdResponses[keyof GetKeywordByKeywordIdResponses];
4722
+ export type GetWatchprovidersRegionsData = {
4723
+ body?: never;
4724
+ path?: never;
4725
+ query?: never;
4726
+ url: '/watchproviders/regions';
4727
+ };
4728
+ export type GetWatchprovidersRegionsResponses = {
4729
+ /**
4730
+ * Watch provider regions returned
4731
+ */
4732
+ 200: Array<WatchProviderRegion>;
4733
+ };
4734
+ export type GetWatchprovidersRegionsResponse = GetWatchprovidersRegionsResponses[keyof GetWatchprovidersRegionsResponses];
4735
+ export type GetWatchprovidersMoviesData = {
4736
+ body?: never;
4737
+ path?: never;
4738
+ query: {
4739
+ watchRegion: string;
4740
+ };
4741
+ url: '/watchproviders/movies';
4742
+ };
4743
+ export type GetWatchprovidersMoviesResponses = {
4744
+ /**
4745
+ * Watch providers for movies returned
4746
+ */
4747
+ 200: Array<WatchProviderDetails>;
4748
+ };
4749
+ export type GetWatchprovidersMoviesResponse = GetWatchprovidersMoviesResponses[keyof GetWatchprovidersMoviesResponses];
4750
+ export type GetWatchprovidersTvData = {
4751
+ body?: never;
4752
+ path?: never;
4753
+ query: {
4754
+ watchRegion: string;
4755
+ };
4756
+ url: '/watchproviders/tv';
4757
+ };
4758
+ export type GetWatchprovidersTvResponses = {
4759
+ /**
4760
+ * Watch providers for series returned
4761
+ */
4762
+ 200: Array<WatchProviderDetails>;
4763
+ };
4764
+ export type GetWatchprovidersTvResponse = GetWatchprovidersTvResponses[keyof GetWatchprovidersTvResponses];
4765
+ export type GetCertificationsMovieData = {
4766
+ body?: never;
4767
+ path?: never;
4768
+ query?: never;
4769
+ url: '/certifications/movie';
4770
+ };
4771
+ export type GetCertificationsMovieErrors = {
4772
+ /**
4773
+ * Unable to retrieve movie certifications
4774
+ */
4775
+ 500: {
4776
+ status?: number;
4777
+ message?: string;
4778
+ };
4779
+ };
4780
+ export type GetCertificationsMovieError = GetCertificationsMovieErrors[keyof GetCertificationsMovieErrors];
4781
+ export type GetCertificationsMovieResponses = {
4782
+ /**
4783
+ * Movie certifications returned
4784
+ */
4785
+ 200: CertificationResponse;
4786
+ };
4787
+ export type GetCertificationsMovieResponse = GetCertificationsMovieResponses[keyof GetCertificationsMovieResponses];
4788
+ export type GetCertificationsTvData = {
4789
+ body?: never;
4790
+ path?: never;
4791
+ query?: never;
4792
+ url: '/certifications/tv';
4793
+ };
4794
+ export type GetCertificationsTvErrors = {
4795
+ /**
4796
+ * Unable to retrieve TV certifications
4797
+ */
4798
+ 500: {
4799
+ status?: number;
4800
+ message?: string;
4801
+ };
4802
+ };
4803
+ export type GetCertificationsTvError = GetCertificationsTvErrors[keyof GetCertificationsTvErrors];
4804
+ export type GetCertificationsTvResponses = {
4805
+ /**
4806
+ * TV certifications returned
4807
+ */
4808
+ 200: CertificationResponse;
4809
+ };
4810
+ export type GetCertificationsTvResponse = GetCertificationsTvResponses[keyof GetCertificationsTvResponses];
4811
+ export type GetOverrideRuleData = {
4812
+ body?: never;
4813
+ path?: never;
4814
+ query?: never;
4815
+ url: '/overrideRule';
4816
+ };
4817
+ export type GetOverrideRuleResponses = {
4818
+ /**
4819
+ * Override rules returned
4820
+ */
4821
+ 200: Array<OverrideRule>;
4822
+ };
4823
+ export type GetOverrideRuleResponse = GetOverrideRuleResponses[keyof GetOverrideRuleResponses];
4824
+ export type PostOverrideRuleData = {
4825
+ body?: never;
4826
+ path?: never;
4827
+ query?: never;
4828
+ url: '/overrideRule';
4829
+ };
4830
+ export type PostOverrideRuleResponses = {
4831
+ /**
4832
+ * Values were successfully created
4833
+ */
4834
+ 200: Array<OverrideRule>;
4835
+ };
4836
+ export type PostOverrideRuleResponse = PostOverrideRuleResponses[keyof PostOverrideRuleResponses];
4837
+ export type DeleteOverrideRuleByRuleIdData = {
4838
+ body?: never;
4839
+ path: {
4840
+ ruleId: number;
4841
+ };
4842
+ query?: never;
4843
+ url: '/overrideRule/{ruleId}';
4844
+ };
4845
+ export type DeleteOverrideRuleByRuleIdResponses = {
4846
+ /**
4847
+ * Override rule successfully deleted
4848
+ */
4849
+ 200: OverrideRule;
4850
+ };
4851
+ export type DeleteOverrideRuleByRuleIdResponse = DeleteOverrideRuleByRuleIdResponses[keyof DeleteOverrideRuleByRuleIdResponses];
4852
+ export type PutOverrideRuleByRuleIdData = {
4853
+ body?: never;
4854
+ path: {
4855
+ ruleId: number;
4856
+ };
4857
+ query?: never;
4858
+ url: '/overrideRule/{ruleId}';
4859
+ };
4860
+ export type PutOverrideRuleByRuleIdResponses = {
4861
+ /**
4862
+ * Values were successfully updated
4863
+ */
4864
+ 200: Array<OverrideRule>;
4865
+ };
4866
+ export type PutOverrideRuleByRuleIdResponse = PutOverrideRuleByRuleIdResponses[keyof PutOverrideRuleByRuleIdResponses];
4867
+ //# sourceMappingURL=types.gen.d.ts.map